agile development zwinne tworzenie systemów
DESCRIPTION
Agile Development Zwinne tworzenie systemów. Szymon Bohdanowicz. Świat systemów IT ŚWIAT SPEKTAKULARNYCH PORAŻEK. 30 - 40% systemów odnosi porażkę zanim uda się je ukończyć Połowa systemów przekracza swój budżet ponad dwukrotnie - PowerPoint PPT PresentationTRANSCRIPT
Agile DevelopmentZwinne tworzenie systemów
Szymon Bohdanowicz
Świat systemów ITŚWIAT SPEKTAKULARNYCH PORAŻEK
• 30 - 40% systemów odnosi porażkę zanim uda się je ukończyć
• Połowa systemów przekracza swój budżet ponad dwukrotnie
• Zawalone projekty softwarowe kosztują corocznie ponad 100 miliardów USD(tylko w USA)
• 67% projektów mających na celu zarządzane kontaktami pomiędzy deweloperami i klientami kończy się klapą
Przykład
• NHS National Programme for IT – system dla służby zdrowia w Wielkiej Brytanii
• Początkowy budżet 6 miliardów funtów – zawieszony gdy pochłonął 12,7 miliarda
• W momencie zawieszenia opóźniony o ok. 5 lat
• Spotkał się z powszechną krytyką wszystkich grup użytkowników
• Na końcu oceniony jako niepotrzebny
Data ukończenia
Change!•Nasza wstępna analiza była błędna•W czasie projektowania nauczyliśmy się nowych rzeczy•Chcemy poprawionego systemu
Granger – wielki szef Edwards - Klient
Nie zdarzają się sytuację , których wymogi dla systemu nie ulegają zmianie w czasie jego tworzenia
Typowy system wymaga przynajmniej 25% zmiany względem początkowych wymagań
Duże i średnie projekty wymagają 25-35% zmiany względem początkowych wymagań
Krzy
wa ucz
enia
się
Wycofanie się ze wstępnej specyfikacji
Nauka powoduje zmianę
Metodologie Agile
• są nastawione na radzenia sobie ze ZMIANAMI
• Umiejętność tą uzyskują dzięki iteratywności i inkrementalności
6 zasad Agile Development1. Klient sporządza listę wymagań i określa ich
priorytety2. Regularne dostarczanie działających
modułów według ustalonego planu3. Klient może wdrożyć software w każdym
momencie
6 zasad Agile Development cd…
4. Klient może usunąć, dodać bądź zmienić wymagania w dowolnym momencie
5. Należy dotrzymywać zobowiązań niezależnie od zmian
6. Można zatrzymać rozwój w dowolnym momencie przy jednoczesnym korzystaniu z dotychczasowych osiągnięć
Tradycyjny model - waterfall
Analiza
Specyfikacja
Projekt
Implementacja
Testowanie i wdrożenia
Działanie i serwis
Tradycyjny model - waterfall
Krzywa kosztu zmiany Boehma
Wymagania Analiza Projekt Implementacja Testy
1. Próba zapobiegania zmianom
2. Poznajemy własne błędy w trakcie trwania projektu
3. Poprawki są wprowadzane w najdroższym momencie
4. Okres testów nieznany, koszty rosną
5. Konieczna zmiana terminów bądź opóźnienia
6. Zamiast testów poprawki
Zaleta Agile nr 1: Wiele zmian jest za darmo
Wszystkie
wymagania
mają swoje priorytety
Backlog
W momencie gdy pracujemy nad tym inkrementem
…można bezkosztowo zmieniać wymagania pozostałym
1. Tradycyjna specyfikacja wymagań jest zgadywanką… jest błędna1. Wiele funkcjonalności jest
niepotrzebnych ale wciąż implementowanych
2. Te bezwartościowe funkcjonalności na dole backlogu ale i tak są implementowane wg metody waterfall
3. Metodyka zwinna daje lepsze rezultaty
2. YAGNI1. Twórz na potrzeby obecne a
nie na przyszłość
Zaleta Agile nr 2: Uniknięcie nadprodukcji
Czasem używane
Used16%
Often Used13%
Always Used7%
Nigdy nie używane
45%
Rzadko używane
19%
Średni koszt zmiany
Increment 1 Increment 2 Increment 3 Increment 4 Increment 5
Bard
zo m
ała
ilo
ść z
mia
n k
ryty
cznyc
hWiększość zmian
1. Metodyka zwinna wymusza pojawienie się zmian krytycznych na początku2. Lepiej zawalić projekt na początku zanim pieniądze zostaną wydane3. Większość zmian nie jest kosztowna
Zaleta Agile nr 3: Zmiany krytyczne można przetrwać
Wszystkie
wymagania
mają swoje priorytety
Backlog
Im wcześniej wykryjemy błąd tym łatwiej i taniej go naprawić
Zapobieganie błędom najtańsze i najlepsze ale …
1. Klient jest niemalże zawsze dostępny2. Stworzenie i zautomatyzowanie testowania przed kodowanie3. Testy automatyczne pozwalają na szybkie wykrywanie błędów
wstecznych4. Ciągła integracja oprogramowania przyczynia się do szybszego
wykrywania błędów5. Programowanie w parach pozwala na szybsze wykrywanie błędów
Zaleta Agile nr 4:Zapobieganie i przyśpieszanie poprawek
Wszystkie
wymagania
mają swoje priorytety
Backlog
Wszystkie
wymagania
mają swoje priorytety
1. Zwinna metodyka tworzy działające oprogramowanie na innym działającym oprogramowaniu, które jest zbudowane na innym działającym oprogramowaniu, które…
2. Każdy inkrement jesta) Wolny od błędów– możliwy do wdrożeniab) Dobrze zaprojektowany
3. Refactoring czyni kod czystym4. Testy automatyczne działają jak lina bezpieczeństwa
Dobry projekt= łatwy do zmiany= tani do zmiany
Zaleta Agile nr 5:Projekt może być łatwo zmieniony
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
-£14,000,000.00
-£9,000,000.00
-£4,000,000.00
£1,000,000.00
£6,000,000.00
£11,000,000.00
£16,000,000.00
£
Zysk Agile vs Zysk Waterfall