Między biurokracją a chaosem

ASDP od środka

Patrząc na spis zagadnień poruszanych przez ASDP, nie widzi się na pierwszy rzut oka jej rewolucyjnego charakteru. Istota siły ASDP tkwi jednak nie w efekciarskim stawianiu na głowie faktu, że informatyczne przedsięwzięcia składają się w rzeczywistości z takich a nie innych faz czy etapów, lecz na sposobie ich modelowania, pomiaru oraz realizacji procesów udoskonalania, radykalnie realistycznym i zorientowanym przede wszystkim na praktyczną skuteczność, a nie na ideologiczną czystość. Spójrzmy, jak ASDP określa swoje cele.

Zadowoleni ludzie

Dotąd sprawy psychologii, ludzkiego zadowolenia, motywacji i kreatywności musiały wdzierać się do inżynierii oprogramowania albo chyłkiem, w aurze lekkiego skandalu, albo traktowane instrumentalnie jako "dowody" na wyższość metod lekkich. Kto ośmieliłby się postawić pytanie, czy wdrożenie np. ITIL zwiększa radość życia zatrudnionych?! Kto, z drugiej strony, sprzeciwiłby się gołosłownemu, co nie znaczy, że koniecznie nieprawdziwemu, twierdzeniu, że OOP jest w jakiś mistyczny sposób lepsze i bardziej odpowiada ludzkim potrzebom niż programowanie strukturalne? Tylko nieliczni. ASDP zdołało wpisać czynnik ludzki w samą metodę, nie tylko jako ozdobnik.

Zasady ASDP

Stworzenie infrastruktury jednoczącej ludzi i technologię

Metody takie jak CMMI mówią wiele o tym, co należy zrobić, ale niewiele o tym, jak. Nie podają szczegółowych wskazówek wspomagających przełożenie zacnych założeń w konkretną praktykę i projektowe korzyści. ASDP przeciwnie - określa, jak za pomocą narzędzi ułatwić i usprawnić rzeczywiste wdrożenie zaleceń.

Określenie i zastosowanie dobrych praktyk

To normatywna część ASDP, a więc podobna nieco do metodyk i modeli tradycyjnych. Tym, w czym ASDP korzystnie się wyróżnia, jest uznanie istnienia dobrych praktyk na wielu różnych poziomach, od ogólnych zasad SQA po szczegółowe wskazówki dotyczące implementacji kodu.

Dostosowanie dobrych praktyk

Nie istnieje uniwersalny zbiór dobrych praktyk; każda firma, dziedzina i projekt powinny ogólne dobre praktyki modyfikować i uzupełniać, gromadząc własne, szczególne doświadczenia. A więc model czy metodę nie tyle się wdraża według z góry założonego skryptu, co projektuje, buduje i wdraża jednocześnie.

Pomiary i monitorowanie statusu projektu

Automatyczny system gromadzenia i analizy stanu projektu pozwala zarówno na sprawne określenie jego statusu, jak i na identyfikację jego słabych stron i możliwych usprawnień. Stosowanie tej zasady pozwala, posługując się terminologią CMMI, wdrożyć elementy poziomu piątego CMMI nawet w organizacjach niespełniających wszystkich formalnych jego wymogów!

Automatyzacja

Weźmy do ręki strukturę dowolnego dużego modelu, np. COBIT; przecież niemożliwe, narażone na liczne pomyłki i porażająco - nie bójmy się tego słowa! - nudne byłoby jego wdrożenie bez zakrojonej na szeroką skalę automatyzacji przestrzegania jego wytycznych! ASDP kładzie ogromny nacisk na automatyzację procedur, przez co ich przestrzeganie staje się możliwe bez narażania ludzi na konieczność mozolnego, uciążliwego ręcznego przestrzegania reguł, odciąża ich od frustrujących, rutynowych zadań, ogranicza zagrożenie pomyłkami.

Przyrostowe wdrożenie praktyk ASDP

To zupełna nowość - dotąd nawet metodyki zalecające przyrostowe tworzenie oprogramowania nie przewidywały przyrostowego wdrażania samych siebie! Istnieje wiele czynników psychologicznych powodujących opór przed zmianami. Liczne kursy "miękkie" usiłują nas nauczyć, jak z tym oporem sobie radzić rozmaitymi psycho- i socjotechnikami, ale nikt jakoś dotąd nie zaproponował oczywistego rozwiązania (dobrze skądinąd znanego politykom podwyższającym podatki) - stopniowo i krok po kroku!

Wysoka jakość produktu

Ten podstawowy cel metodyk ginie w nawale szczegółów samej metody. ASDP stawia go na drugim miejscu.

Organizacja: wyższa produktywność i sprawność w działaniu

Nareszcie nie chodzi o to, abyśmy się stali dojrzalsi (choćby kosztem skuteczności i sprawności), ani o to, abyśmy potrafili umieścić etykietki na każdej procedurze i każdym artefakcie naszej organizacji, tylko o produktywność i sprawność. Jak je osiągnąć, zależy od produktu, charakterystyki projektu, ludzkich kwalifikacji i preferencji, a ASDP ułatwia ich określenie oraz pomiar stopnia realizacji. W tym sensie ASDP jest nie tyle metodyką, co metametodyką: nie receptą, lecz receptą jak wybrać właściwą receptę, od lat bezskutecznie poszukiwaną przez praktyków.

Proces nadzorowany, udoskonalany i dający się utrzymać

CMMI poziom 5 czy lepiej poziom 2? Formalne modelowanie wymagań czy nieprecyzyjny opis słowny? Nie ma na te pytania jedynej słusznej odpowiedzi, natomiast niezależnie od tego, jak brzmi w konkretnym przypadku, opłaca się wiedzieć, co robimy (proces nadzorowany), umieć jeśli trzeba poprawić procedury (proces udoskonalany) oraz zachować zdolność do przestrzegania w rzeczywistości tych praktyk, które uznajemy za dla nas najlepsze (proces dający się utrzymać). Oto sens ASDP.

Przedsięwzięcie zarządzane poprzez podejmowanie decyzji

Podejmowanie decyzji, zarządzanie zmianami i ryzykiem to kolejny klucz do powodzenia przedsięwzięć informatycznych. Aby móc jednak podejmować dobre decyzje, niezbędna jest informacja, niezależnie od tego, czy proces decyzyjny jest sformalizowany i racjonalny, czy intuicyjny i podświadomy. ASDP kładzie nacisk na gromadzenie i analizę danych projektowych oraz na automatyzację tego procesu.

Zapobieganie pomyłkom i błędom

Oprogramowanie jest substancją pozwalającą względnie łatwo usuwać defekty w zbudowanych z niej produktach, nawet wtedy gdy produkt jest w pełni ukończony. Ta cenna właściwość ma jednak ogromnie niekorzystne skutki uboczne, promuje bowiem myślenie krótkowzroczne, usuwanie defektów zamiast ich przyczyn, co powoduje chroniczną zawodność produktów informatycznych. ASDP zaleca podejście przeciwne: analizę przyczyn pomyłek i błędów (root cause analysis) oraz ich systematyczne usuwanie, wsparte automatycznymi narzędziami.

Bogdan Bereza-Jarociński ( mailto:[email protected] ) jest założycielem i właścicielem European Test Centre bettersoftware.eu (http://www.bettersoftware.eu ), a także inicjatorem i założycielem polskiej sieci SPIN (spin-pl.org).


TOP 200