Ja przecież tylko...

Wyruszamy odebrać samochód z warsztatu. No, może liczba mnoga nie jest tu całkiem uzasadniona, bo ja pełnię zaledwie rolę "przyczepki" i tylko towarzyszę właścicielowi. A towarzyszę, bo to niedaleko i zaraz stamtąd mamy jechać gdzieś dalej.

Samochód jest z "wyższej półki średniej", warsztat chlubi się autoryzacją, a zrobić mieli rzecz trywialną, acz kłopotliwą ze względu na trudny dostęp: wymienić na sprawne żarówki podświetlenia trzech pokręteł klimatyzacji.

Przychodzimy, samochód już czeka na placu, płacimy, bierzemy klucze i wsiadamy. Dziwi trochę otwarta popielniczka poniżej wspomnianych pokręteł. Próbujemy ją zamykać, a ona wyskakuje z powrotem. Właściciel mówi, że przedtem otwierała się powoli i płynnie, jak kiedyś kasety w co lepszych magnetofonach, a teraz z trzaskiem wyskakuje i zamknąć nijak się nie daje...

Wracamy do warsztatowego biura, każą wjechać do hali napraw, ktoś przychodzi, sprawdza, każą pół godziny czekać. Gdy siedzimy w poczekalni dobrą już godzinę przychodzi pan z biura i - skoro, jak słyszał, mieliśmy gdzieś jechać - oferuje samochód zastępczy. Popielniczka i samochód zastępczy - brzmi całkiem złowrogo. Ponieważ nasz wyjazd już i tak stracił sens, decydujemy się czekać. Po kolejnej godzinie okazuje się, że naprawić tego dziś się nie da, bo mechanik z poprzedniej zmiany, który wymieniał żarówki, rozbierając obudowę konsoli uszkodził mechanizm popielniczki i teraz trzeba go sprowadzić od zagranicznego producenta, co potrwa do dwóch tygodni, bo to się w zasadzie nigdy nie psuje i nie ma tego w żadnym magazynie części. Koszty, oczywiście, warsztat bierze na siebie, co oznacza zapewne, że zapłaci za to ten, który zepsuł, a który przecież "tylko wymieniał żarówki".

Ileż razy podobne "ja przecież tylko..." słyszałem od autorów programów komputerowych, które nagle zaczęły działać źle, albo przestały działać w ogóle. Każdy taki "ja przecież tylko....", to tylko wprowadził jakąś drobną zmianę: a to przemieścił na ekranie, w lewo lub w prawo, kolumnę z liczbami, a to powiększył pole na drukowanym zestawieniu, a to zmienił, na bardziej elegancki, komunikat o rozpoczęciu czy zakończeniu pracy programu.

A że zmiana była trywialna, zawierała się często w jednej linijce kodu, wszystko odbyło się drogą na skróty: bez udokumentowania i bez fanaberii w postaci jakichś testów regresyjnych mających dowieść, że program po - choćby i trywialnej, ale jednak zmianie - przynajmniej poprawnie robi to, co dotąd robił.

Potem okazywało się, że komuś omsknęła się ręka na klawiaturze i zmiana trafiła zupełnie nie tam, gdzie miała, albo w pośpiechu poprawiło się jeszcze (samo!) coś, co zmiany nie potrzebowało, a kompilatorowi jakoś akurat wszystko się zgadzało...

Przypadki takie zdarzały się 30, 20 i 10 lat temu, i zdarzają się dziś. Stąd też te, tak nielubiane rygory związane z testami, kontrolą wersji i innymi takimi. I - wracając do naszego nieszczęsnego pojazdu mechanicznego - nie chodzi wcale o to, by po wymianie żarówki sprawdzać działanie hamulców, kierownicy i zamka w drzwiach.

A swoją drogą, do myślenia daje, co by to było, gdyby ów mechanik, w autoryzowanym warsztacie, wyważał np. koło, nie dokręcił potem jego nakrętek i w takim stanie zwrócił samochód właścicielowi.

I tu docieramy do sedna obu spraw - informatycznej i samochodowej. I tu, i tam, po każdej zmianie potrzebna jest kontrola jej wykonania, nawet jeżeli zmiana sprawia wrażenie banalnej. Inżynierowie-konstruktorzy wszelakich branż mają to we krwi od stuleci i do rutyny należy tam wzajemne, wnikliwe sprawdzanie rysunków i schematów. Informatyka dopiero do tego dojrzewa.

A warsztaty? No cóż - warsztaty mają tylko autoryzację...

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200