Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.1
Modeleprocesuwytwarzaniaoprogramowania39
Problemyzwiązanezwytwarzaniemprzyrostowym
Choćwytwarzanieprzyrostowemawielezalet,niejestwolneodproblemów.Podstawowymźródłem
trudnościjestfakt,żewielkiefirmymająprocedurybiurokratyczne,któreewoluowałyprzezlata.Mię-
dzytymiproceduramiabardziejnieformalnymprocesemiteracyjnymlubzwinnymmogąwystępować
niezgodności.
Niekiedyprocedurytakiestosowanezdobrychpowodów.Naprzykładmożemymiećprocedury
gwarantujące,żeoprogramowaniepoprawnieimplementujezewnętrznewymaganiaprawne(np.prze-
pisyksięgoweSarbanesOxleywStanachZjednoczonych).Zmianatychprocedurmożeniebyćmożliwa,
konfiktmiędzyprocesamibędziezatemnieunikniony.
https://iansommerville0com/software-engineering-book/static/web/incremental-development/
jakimirozwiązujemyproblemy.Rzadkoudajesięwypracowaćodrazupełnerozwią-
zanieproblemu.Zamiasttegozmierzamywstronęrozwiązaniawwielukrokach,wy-
cofującsię,gdyzauważymy,żezrobiliśmybłąd.Dziękiprzyrostowemuwytwarzaniu
oprogramowaniawprowadzaniezmianwtrakciejegobudowyjesttańszeiłatwiejsze.
Każdyprzyrost(wersja)systemuzawierajakąśfunkcjonalnośćpotrzebnąklien-
towi.Wogólnościwczesnewersjesystemuzawierająnajważniejszelubnajpilniejpo-
trzebnefunkcjonalności.Oznaczato,żeklientlubużytkownikmożewypróbować
systemwewczesnejfaziepowstawania,abyocenić,czydostarczatejfunkcjonalności,
którajestwymagana.Jeślinie,zmienićtrzebatylkobieżącyprzyrostibyćmożenowe
funkcjonalnościzdefiniowanedorealizacjiwpóźniejszychprzyrostach.
Wytwarzanieprzyrostowematrzygłówneprzewaginadmodelemkaskadowym:
1.Zmniejszonyjestkosztimplementowaniazmianwymagań.Liczbaanalizido-
kumentacji,któremuszązostaćwykonaneponownie,jestznaczącomniejszaniż
wprzypadkumodelukaskadowego.
2.Łatwiejszejestuzyskiwanieinformacjizwrotnychodklientanatematwykona-
nejpracy.Kliencimogąkomentowaćdemonstrowaneimoprogramowanieiwi-
dzieć,jakdużozostałojużzaimplementowane.Kliencizazwyczajmająkłopot
zocenianiempostępównapodstawiedokumentówprojektuoprogramowania.
3.Możliwejestwczesnedostarczanieiwdrażanieużytecznegooprogramowa-
niauklienta,nawetjeśliniezawieraonojeszczecałejfunkcjonalności.Klienci
wstanieużywaćoprogramowaniaiczerpaćzniegokorzyściwcześniej,niż
byłobytomożliwewprzypadkuprocesukaskadowego.
Zperspektywyzarządzaniapodejścieprzyrostowewiążesięzdwomaproblemami:
1.Procesniejestwidoczny.Kierownictwopotrzebujeregularniedostarczanychpro-
duktów(lubichczęści),abymócmierzyćpostępy.Jeślisystemywytwarzaneszyb-
ko,tworzeniedokumentówodzwierciedlającekażdąwersjębyłobyrozrzutnością.
2.Strukturasystemumaskłonnośćdopsuciasię(komplikowania)wmiarędo-
dawanianowychprzyrostów.Regularnezmianyprowadządopowstawania
mętnegokodu,gdynowefunkcjonalnościdodawanewdowolnymożliwy
sposób.Zczasemdodawanienowychfunkcjonalnościstajesięcoraztrudniejsze