agile development zwinne tworzenie systemów

15
Agile Development Zwinne tworzenie systemów Szymon Bohdanowicz

Upload: hyatt-jensen

Post on 02-Jan-2016

37 views

Category:

Documents


4 download

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 Presentation

TRANSCRIPT

Page 1: Agile Development Zwinne tworzenie systemów

Agile DevelopmentZwinne tworzenie systemów

Szymon Bohdanowicz

Page 2: Agile Development Zwinne tworzenie systemów

Ś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ą

Page 3: Agile Development Zwinne tworzenie systemów

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

Page 4: Agile Development Zwinne tworzenie systemów

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ę

Page 5: Agile Development Zwinne tworzenie systemów

Metodologie Agile

• są nastawione na radzenia sobie ze ZMIANAMI

• Umiejętność tą uzyskują dzięki iteratywności i inkrementalności

Page 6: Agile Development Zwinne tworzenie systemów

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

Page 7: Agile Development Zwinne tworzenie systemów

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ęć

Page 8: Agile Development Zwinne tworzenie systemów

Tradycyjny model - waterfall

Analiza

Specyfikacja

Projekt

Implementacja

Testowanie i wdrożenia

Działanie i serwis

Page 9: Agile Development Zwinne tworzenie systemów

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

Page 10: Agile Development Zwinne tworzenie systemów

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

Page 11: Agile Development Zwinne tworzenie systemów

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%

Page 12: Agile Development Zwinne tworzenie systemów

Ś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ć

Page 13: Agile Development Zwinne tworzenie systemów

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

Page 14: Agile Development Zwinne tworzenie systemów

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

Page 15: Agile Development Zwinne tworzenie systemów

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