Szukasz kursu specjalistycznego z BHP, SEP lub kursu na spawcza? Kurs edukacyjny!

Kontrola zmian

W programowaniu jest potrzebna metoda stosowania czerwonego przewodu, a jeszcze bardziej ścisła kontrola całego procesu oraz głęboki szacunek do papieru, który w końcu będzie produktem. Zasadnicze elementy takiej metody to rejestrowanie w dzienniku wszystkich zmian oraz wyraźne rozróżnianie w kodzie źródłowym szybkiego łatania dziur i przemyślanych, sprawdzonych i udokumentowanych poprawek.

Dodawanie za każdym razem jednej części po drugiej. Ta wskazówka również jest oczywista, ale optymizm i lenistwo skłaniają nas do ignorowania jej. Ze stosowaniem się do niej wiąże się tworzenie programów próbnych i innych konstrukq’i pomocniczych, a co za tym idzie dodatkowa praca. A może w końcu wszystko to jest niepotrzebne? A może nie ma w programach żadnych błędów?

Nie! Nie dajmy się temu zwieść! W systematycznym testowaniu systemu właśnie o to chodzi. Trzeba założyć, że będzie mnóstwo błędów, i zaplanować uporządkowaną procedurę ich wykrywania. Zauważmy, że potrzebne są wyczerpujące przykłady testowe do sprawdzenia części składowych systemu po dodaniu jednej po drugiej. Trzeba też jeszcze raz uruchomić poprzednie części, dobrze działające przy ostatnim połączeniu. Chodzi o to, żeby sprawdzić system wstecz.

Kontrola zmian. W miarę powstawania systemu od czasu do czasu dają o sobie znać twórcy części składowych, dostarczając udoskonalone wersje swoich fragmentów systemu – szybsze, mniejsze, pełniejsze albo podobno mniej „zapluskwione”. Zastąpienie działającej już części nową jej wersją wymaga takiej samej systematycznej procedury testowania jak wprowadzenie w jej miejsce zupełnie nowej – choć rzeczywiście potrzeba na to na ogół mniej czasu, bo są już wyczerpujące i sprawne przykłady testowe.

Każdy zespół tworzący kolejną część składową systemu do uruchomienia swojego kawałka korzysta z najnowszej sprawdzonej już wersji zintegrowanego systemu – tak zwanego łoża testowego. Pracę tę utrudnia wprowadzanie w nim zmian, choć oczywiście nie da się tego uniknąć. Zmiany trzeba jednak kwantować. Dopiero wtedy każdy użytkownik może się cieszyć okresem wydajnej stabilności, zakłócanej nagłymi zmianami w łożu testowym. Wydaje się to jednak znacznie mniej dokuczliwe niż te ciągłe wahania i niepewność.

Lehman i Belady przedstawiają dowody na to, że zmiany powinny być albo bardzo duże i nieczęste, albo też bardzo małe i częste14. Według ich modelu, przy tej drugiej strategii daje o sobie znać większa niestabilność procesu testowania. Moje doświadczenie to potwierdza: nigdy nie zaryzykowałbym stosowania jej w praktyce.

Kwantowanie zmian odpowiada metodzie stosowania czerwonego przewodu. Szybkie łatanie dziur odbywa się do czasu następnego przepisowego wypuszczenia części składowej, które powinno obejmować wyszukiwanie i usuwanie błędów w sprawdzonej i udokumentowanej formie.

Gdy słyszymy o katastrofalnym opóźnieniu w realizacji danego przedsięwzięcia, to sądzimy, że musiały je dotknąć liczne poważne klęski. Zazwyczaj jednak katastrofę powodują termity, a nie tornada: opóźnienia następują niedostrzegalnie, ale i nieuchronnie. W istocie łatwiej sobie poradzić z wielkimi klęskami: reaguje się na nie większą siłą, gruntowną reorganizacją, wynalezieniem nowych sposobów postępowania. Cały zespół mobilizuje się do działania.

Trudniej natomiast dostrzec jednodniowe poślizgi, trudniej im zapobiec, a jeszcze trudniej je nadrobić. Wczoraj zachorował jeden z bardzo ważnych ludzi i narada nie mogła się odbyć. Dzisiaj nie pracują wszystkie maszyny, bo piorun strzelił w transformator. Jutro nie rozpocznie się sprawdzanie procedur dyskowych, bo o tydzień opóźniła się dostawa pierwszego dysku z fabryki. Śnieg, obowiązek uczestniczenia w ławie przysięgłych, problemy rodzinne, awaryjne spotkania z klientami, kontrola kierownicza – listę taką można przedłużać w nieskończoność. Każda przyczyna opóźnia jakieś działanie jedynie o pół dnia lub o dzień. A tymczasem w harmonogramie następuje poślizg – za każdym razem tylko o jeden dzień.

Podobne Artykuły

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany.