Lekkie metodyki programowania: Szansa czy zagrożenie? Innowacje w realizacji przedsięwzięć informatycznych Lekkie metodyki programowania: Szansa czy zagrożenie? Jerzy Nawrocki Politechnika Poznańska Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/ Copyright, 2003 © Jerzy R. Nawrocki
Syndrom LOOP Loop L ate (późno) O ver budget (przekroczony budżet) P vertime (nadgodziny) oor quality (kiepska jakość)
Plan wystąpienia ISO 9001 CMM Manifest zwinności Programowanie Ekstremalne Studio Rozwoju Oprogramowania
Plan wystąpienia ISO 9001 CMM Manifest zwinności Programowanie Ekstremalne Studio Rozwoju Oprogramowania
ISO 9001 Kryte- ria Dobrzy Źli Audytor
ISO 9001 Kryte- ria Dobrzy Źli Audytor
Dokumentacja w ISO 9001 Polityka jakości i cele jakości Księga jakości Udokumentowane procedury wymagane przez standard Plany jakości, udokumentowane procedury, instrukcje pracy Zapisy
Problemy z ISO 9001 ISO ISO Zabieg marketingowy Brak elastyczności działania ISO Udokumentowane = lepsze Zbyt dużo dokumentacji Zbyt ogólne
Plan wystąpienia CMM ISO 9001 Manifest zwinności Programowanie Ekstremalne Studio Rozwoju Oprogramowania
CMM: Capability Maturity Model Organizacje programistyczne SEI, Pittsburg, USA 1989-1993 5. Optymalizujący 4. Zarządzany ilościowo 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy
CMM: Capability Maturity Model ~ 1% Motorola, Kraków 5. Optymalizujący 4. Zarządzany ilościowo ~ 30% 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy
CMM: Capability Maturity Model Cele Praktyki Zarządzanie wymaganiami Planowanie przedsięwzięcia Śledzenie postępów Zarządzanie podzleceniami Zapewnienie jakości Zarządzanie konfiguracją Pomiary i analiza 5. Optymalizujący 4. Zarządzany ilościowo 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy
Procedury dla CMM Poziom 2 przeglądy zobowiązań zewnętrznych opracowywanie planu przedsięwzięcia szacowanie rozmiaru, pracochłonności, kosztu, krytycznych zasobów obliczeniowych i harmonogramu dokonywanie zmian w planie przeglądy przedsięwzięcia przy kamieniach milowych planowanie zapewnienia jakości . . . x 13
CMM: Capability Maturity Model 5. Optymalizujący 4. Zarządzany ilościowo ISO = CMM 2.5 3. Zdefiniowany 2. Zarządzany (powtarzalny) 1. Początkowy
Problemy z ISO i CMM Za dużo papierów! Za dużo zebrań!
Plan wystąpienia Manifest zwinności ISO 9001 CMM Programowanie Ekstremalne Studio Rozwoju Oprogramowania
ISO i CMM
Potrzeba czegoś lżejszego ...
Manifest zwinności (Agile Manifesto) Luty 2001, Snowbird, Utah, 17 osób Kent Beck (karty CRC, xUnit, XP) Alistair Cockburn (rodzina metodyk Crystal) Marin Fowler (refaktoryzacja, UML Distilled) Jim Highsmith (Adaptive Software Development)
Manifest zwinności Ważniejsze: Jednostki i interakcje niż procesy i narzędzia Działające oprogramowanie niż obszerna dokumentacja Współpraca klienta niż negocjacja kontraktu Nadążanie za zmianami niż trzymanie się planu
Programowanie Ekstremalne Plan wystąpienia ISO 9001 CMM Manifest zwinności Programowanie Ekstremalne Studio Rozwoju Oprogramowania
Programowanie Ekstremalne Programowanie Ekstremalne (XP) = lekka (zwinna) metodyka tworzenia oprogramowania Tom DeMarco „XP jest dzisiaj najważniejszym ruchem w IO."
Programowanie Ekstremalne XP Zbawca Zawsze to mówiłem! Najważniejsza komunikacja ustna. Jedyne artefakty: kod + testy IEEE/ANSI standard 830/1993? Zbędny! Inspekcje Fagana? Zbędne! Punkty funkcyjne? Zbędne! Żadnych nadgodzin!
Programowanie Ekstremalne Wybrane praktyki XP: Klient na miejscu Krótkie przyrosty i wydania Najpierw przypadki testowe potem kod Automatyzacja wykonywania testów Ciągła integracja Programowanie parami
Programowanie Ekstremalne Słabości XP: brak dokumentacji klient „na miejscu” i tylko jeden zbyt krótka perspektywa planowania Jak rozwiązać te problemy i zachować zwinność?
Liczba zaangażowanych osób Matryca projektów Krytyczność Defekty skutkują utratą L6 L20 L40 L100 L200 L500 E6 E20 E40 E100 E200 E500 D6 D20 D40 D100 D200 D500 C6 C20 C40 C100 C200 C500 1-6 -20 -40 -100 -200 -500 Życia (L) Dużych pieniędzy (E) Małych pieniędzy (D) Komfortu (C) Liczba zaangażowanych osób
Rodzina metodyk Cristal Clear Yellow Orange Red Alistair Cockburn
Studio Rozwoju Oprogramowania Plan wystąpienia ISO 9001 CMM Manifest zwinności Programowanie Ekstremalne Studio Rozwoju Oprogramowania
Studio Rozwoju Oprogramowania Od 1998 Część programu Master in Software Engineering Corocznie 11 przedsięwzięć realizowanych w zespołach 8-osobowych (III + IV + V rok) OK
Metoda PRINCE 2 PRINCE = PRojects IN Controlled Environments CCTA = the Central Computer and Telecommunications Agency, UK PRINCE 2 wspiera ISO 9001.
Łączenie XP z PRINCE 2 PRINCE 2 Programowanie Ekstremalne Kierownik Zespołu Zarząd Przedsięwzięcia Reprezentant użytkowników Dyrektor Reprezentant dostawcy Kier.Przeds. = Trener Kontrola Przedsięwzięcia Programiści Pomocnik = Tropiciel Kier.Prod. = Klient + Tester PRINCE 2 Programowanie Ekstremalne
Studio Rozwoju Oprogramowania Bartek Adam Zarząd Przedsięwzięcia Reprezentant użytkowników Dyrektor Reprezentant dostawcy V rok Kontrola Przedsięwzięcia IV rok Kierownik Przedsięwzięcia IV rok Kierownik Produktu Pomocnik Kierownika III rok (praca inż.) Kierownik Zespołu Programiści Kierownik Zespołu
Pytania? ?