Zapewnienie jakości w projekcie informatycznym w oparciu o iteracyjne modele wytwórcze Risk Driven Developing



Podobne dokumenty
Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Wstęp do zarządzania projektami

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Wstęp do zarządzania projektami

Wstęp do zarządzania projektami

Opis metodyki i procesu produkcji oprogramowania

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Agile vs PRINCE /2015 I rok st. magisterskie Informatyka

Projektowanie systemów informatycznych. wykład 6

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

RUP. Rational Unified Process

Szkolenie 1. Zarządzanie projektami

Agile Project Management

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Programowanie zespołowe

Rozpoczęcie, inicjacja (ang. inception

Zarządzanie Projektami zgodnie z PRINCE2

Komputerowe wspomaganie zarządzania projektami innowacyjnymi realizowanymi w oparciu o podejście. Rozdział pochodzi z książki:

STUDIA PODYPLOMOWE ZARZĄDZANIE PROJEKTAMI INFORMATYCZNYMI

Usługa: Audyt kodu źródłowego

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Optymalizacja Automatycznych Testów Regresywnych

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Feature Driven Development

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

RAPORT Z POLSKIEGO BADANIA PROJEKTÓW IT 2010

Cykle życia systemu informatycznego

Maciej Oleksy Zenon Matuszyk

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

Testowanie i walidacja oprogramowania

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

Inżynieria oprogramowania (Software Engineering)

WPROWADZENIE DO UML-a

Testowanie oprogramowania

Wszystkie problemy leżą w testach. ForProgress spółka z ograniczoną odpowiedzialnością sp.k.

Zarządzanie projektami. Porównanie podstawowych metodyk

Zarządzanie projektami w NGO

Zarządzanie projektami a zarządzanie ryzykiem

PRZEWODNIK PO PRZEDMIOCIE

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

Metodyki zwinne wytwarzania oprogramowania

Zarządzanie budowlanym projektem inwestycyjnym dla inwestycji publicznych i komercyjnych

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

Wykład 1 Inżynieria Oprogramowania

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Akredytowane szkolenie i egzamin. Zarządzanie projektami w oparciu o metodykę PRINCE2 Fundation

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA

ŚCIEŻKA: Zarządzanie projektami

Zarządzanie Projektami Plan kursu

Wytwarzanie oprogramowania

Zarządzanie projektem prawnym w praktyce

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Zarządzanie projektem prawnym w praktyce

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Zakres wykładu. Podstawy InŜynierii Oprogramowania

Wprowadzenie do systemów informacyjnych

Szkolenie: Zarządzanie cyklem projektu w Jednostkach Samorządu Terytorialnego

Narzędzia Informatyki w biznesie

Zasady organizacji projektów informatycznych

Skuteczne zarządzanie projektami IT w otoczeniu uczelnianym. Piotr Ogonowski

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Podstawy Zarządzania Projektami w Organizacjach

Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA

PRINCE2 Foundation - szkolenie z egzaminem certyfikacyjnym

Zarządzanie projektami - narzędzia, software, dokumentacja, metodyka PMBOK

Programowanie zwinne

PRINCE2 Foundation & Practitioner - szkolenie z egzaminem certyfikacyjnym

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Testujemy dedykowanymi zasobami (ang. agile testers)

Jak być agile w projekcie utrzymaniowym? JOANNA SIEMIŃSKA

Harmonogramowanie projektów Wprowadzenie

MSF. Microsoft Solution Framework

INSTRUKCJA ZARZĄDZANIA RYZYKIEM W PROJEKTACH I PROGRAMACH STRATEGICZNYCH

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Zarządzanie jakością w logistyce ćw. Artur Olejniczak

Wprowadzenie do Behaviordriven

Agile Project Management WHITEPAPER

1/ Nazwa zadania: Dostawa, wdrożenie i serwis informatycznego systemu zarządzania projektami dla Urzędu Miejskiego Wrocławia wraz ze szkoleniem.

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

STUDIA PODYPLOMOWE Zarządzanie Projektami

Narzędzia CASE dla.net. Łukasz Popiel

Zarządzanie projektami IT

Programowanie obiektowe

Ryzyko i zarządzanie ryzykiem w projektach

Podstawy zarządzania projektami

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. 1. Cel szkolenia

Prowadzący: Bartosz Górczyński, CTPartners S.A, itsmf Polska. Miedzeszyn, wrzesień 2010

SYSTEM ZARZĄDZANIA RYZYKIEM W DZIAŁALNOŚCI POLITECHNIKI WARSZAWSKIEJ FILII w PŁOCKU

Jak patrzymy na testy czyli Jak punkt widzenia zależy od punktu siedzenia. Click Piotr Kałuski to edit Master subtitle style

Program kształcenia i plan studiów podyplomowych: Zarządzanie projektami

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Transkrypt:

Zapewnienie jakości w projekcie informatycznym w oparciu o iteracyjne modele wytwórcze Risk Driven Developing Autor: Rafał Dobrosielski O autorze: Absolwent Politechniki Gdaoskiej, wydziału Elektroniki Telekomunikacji i Informatyki, ukooczył również studia podyplomowe z zakresu Inżynierii Oprogramowania i Zarządzania Projektami. Zawodowo, na co dzieo, zajmuje się czynnie planowaniem, zapewnianiem i sprawdzaniem jakości w projektach informatycznych. Jest autorem szkoleo i warsztatów z zakresu zarządzania projektem informatycznym, zarządzania i zapewniania jakości produktów informatycznych oraz modeli procesów inżynierii oprogramowania. Interesuje się analizą i modelowaniem procesów biznesowych w organizacjach jak również psychologią biznesu. Email: rdobrosielski@paop.com.pl Intermediate Level 4 Magazine Number Testowanie oprogramowania Section in the magazine Każdy biznes może byd lepszy! Najbardziej zadowolony klient może byd bardziej zadowolony! Dążmy do perfekcji!

Cel prezentacji Celem prezentacji było przedstawienie mechanizmów zapewniania jakości w projekcie informatycznym realizowanym przy wykorzystaniu iteracyjnych modeli wytwarzania oprogramowania. Temat przedstawiono poprzez pryzmat zarządzania ryzykiem projektowym. Wstęp Sprzęt: XXX warrants to you as an end-user purchaser all XXX hardware products against defects in material and workmanship for a period of one/two year(s) Oprogramowanie: You expressly acknowledge and agree that use of the XXX software is at your sole risk. The XXX software and related documentation are provided AS IS and without warranty of any kind......when the XXX software prove defective, you (and not XXX) assume the entire cost of all necessary servicing, repair, or documentation. Powyższe stwierdzenia często spotykane wśród punktów umowy gwarancyjnej podczas zakupu sprzętu komputerowego czy AGD oraz podczas instalacji oprogramowania nadal skłaniają do głębokiej refleksji. Producenci sprzętu, hardware'u, mimo jego rosnącej złożoności, wciąż zapewniają nas, że w momencie sprzedaży jest on bez wad i jest dla nas bezpieczny. Co więcej, biorą za niego pełną odpowiedzialnośd przez najbliższy rok czy nawet dwa. Z oprogramowaniem jest wciąż troszeczkę inaczej. Producenci oprogramowania, zamiast zapewniad nas o jego niezawodności i nieszkodliwości, starają się zabezpieczyd na okolicznośd poniesienia strat przez kupującego po użyciu ich dzieła. Jeden z programów antywirusowych poinformował mnie podczas instalacji, że robię to na własną odpowiedzialnośd i ryzyko - jako użytkownik poniosę całkowity koszt związany z ewentualnymi stratami, które mogą powstad na skutek używania oprogramowania, którego zadaniem jest mnie zabezpieczad. Oczywiście zgodziłem się z tymi jasno postawionymi warunkami i używam tego oprogramowania do dziś. Producenci oprogramowania zdają sobie sprawę, że ich produkty, jak również cały projekt informatyczny, są obarczone wysokim ryzykiem. Nawet tzw. dojrzałe organizacje wciąż nie potrafią tego ryzyka dokładnie oszacowad a następnie zneutralizowad podczas realizacji projektu do dostatecznie niskiego poziomu zanim produkt zostanie przekazany na rynek.

Ryzyko Ryzyko popularne definicje: Możliwość poniesienia straty [Software Engineering Institute] Ryzyko to niepewne wydarzenie, które jeśli zajdzie może mieć negatywny albo pozytywny wpływ na projekt [Project Management Institute] Ryzyko to niepewność rezultatu (wyniku) [The Office of Government Commerce, PRINCE2] Mówiąc dalej o ryzyku, chciałby przypomnied, że organizacje definiują ryzyko często jako możliwośd poniesienia straty, czy też jako poziom niepewności przy osiąganiu oczekiwanego rezultatu. Źródła ryzyka w projekcie informatycznym Źródła ryzyka w projekcie informatycznym związane są najczęściej z wykorzystywaną technologią. Aby utrzymad się na rynku i tworzyd oprogramowanie oparte na nowoczesnych rozwiązaniach wciąż używamy nowych technologii, których wydajnośd, skutecznośd czy efektywnośd nie jest nam znana. Procesy wytwórcze dla projektu informatycznego, mimo ciągłych prób formalizacji (czy też skrajnych uproszczeo), są skomplikowane nie są sekwencyjne. Jeśli ta skomplikowana sied działao zostanie chod trochę zaniedbana, zamiast do sukcesu poprowadzi nas prosto do porażki. Do ponoszenia zwiększonego ryzyka motywuje nas również sam rynek i jego wysoki poziom konkurencyjności. W projekcie informatycznym jesteśmy mocno uzależnieni od tzw. czynnika ludzkiego i zasady propagacji błędów to głównie w naszej branży mały błąd powoduje tak duże, katastrofalne skutki. Obszary ryzyka w projekcie informatycznym Projekt informatyczny może stad się projektem bardzo wysokiego ryzyka, jeśli już na początku cele projektowe zostaną nadmiernie rozdmuchane, będą niemierzalne a korzyści, które projekt ma przynieśd, zostaną rozmyte. Podczas realizacji projektu, poziom ryzyka zależy od dynamiki informatyzowanej dziedziny od częstości zmian usług, strategii biznesowej czy polityki u naszego klienta. Inaczej wygląda ryzyko w projekcie dla amerykaoskiej armii, gdzie plany i wymagania są stałe i określone na najbliższych klika lat a inaczej dla dynamicznej instytucji finansowej na rynku o dużej konkurencji. Zwykle wprowadzona dzięki informatyzacji zmiana biznesowa pociąga za sobą kolejne zmiany. Patrzmy zatem szeroko na otoczenie projektu, gdyż nie tylko od możliwości adaptacyjnych klienta, ale i od spójności naszego produktu z resztą procesów w informatyzowanej organizacji może zależed to, jak nasz produkt zostanie ostatecznie przyjęty przez odbiorcę, czy koocowych użytkowników. Kolejnym źródłowym obszarem zagrożeo, na który (wbrew pozorom) mamy duży wpływ, jest fakt, że klient na początku projektu nie wie, czego chce nie potrafi zdefiniowad swoich oczekiwao. Iteracyjne modele

wytwórcze pozwalają nam skutecznie tym zagrożeniem zarządzad. W branży informatycznej projektowanie jest fazą projektu. Na początku zdefiniowany jest zwykle jedynie czas i budżet projektu zakres i jakośd są, niestety, tylko ich wypadkową! Rozpoczynając projekt informatyczny nie wolno nam też nie zdefiniowad precyzyjnych, mierzalnych wymagao jakościowych, przejśd do realizacji projektu bez ustalenia określonego poziomu np. wydajności, standardu interfejsu, profilu użytkowników itd. Sukces projektu informatycznego Sukces projektu informatycznego jest pojęciem wielowymiarowym; oczywiście inaczej może byd rozumiany z punktu widzenia kierownika projektu (np. nie przekroczyd zaplanowanego budżetu i czasu), użytkownika (np. otrzymad oprogramowanie wyręczające go w powtarzalnej, trudnej pracy), testera (wysoka stopa wykrytych błędów w stosunku do błędów zgłoszonych po wdrożeniu) każda z tych grup może odnieśd swój własny sukces a mimo to produkt będzie nadawał się jedynie do kosza. Otóż sukces projektu, nie tylko informatycznego, polega na tym, aby klient, zamawiający czy sponsor odniósł określone, zaplanowane korzyści biznesowe. Oczywiście jest to weryfikowalne dopiero po pewnym czasie od wdrożenia oprogramowania, ale jest to najbardziej obiektywna miara sukcesu i dojrzałości firmy informatycznej. Cel biznesowy zleceniodawcy musi byd mierzalny, jednakowo rozumiany przez wszystkich interesariuszy projektu jest to według mnie krytyczny czynnik sukcesu. Zarządzanie ryzykiem a model wytwórczy Zarządzanie ryzykiem, dostępne mechanizmy, które możemy zastosowad w celu jego neutralizacji zależą od zastosowanego modelu procesu. Model procesów: Model procesu jest usystematyzowanym zbiorem praktyk, które opisują cechy efektywnego procesu a ich efektywność została potwierdzona przez doświadczenie. Wszystkie modele procesów są złe ale niektóre są użyteczne (George Box, Quality and statistics engineer) Wszystkie modele procesów są złe, a przynajmniej niedoskonałe. Dojrzałe organizacje zwykle narzekają, że są one zbyt mało elastyczne, nie pozwalają rozwijad skrzydeł. Mniej dojrzałe mówią, że są zbyt mało sformalizowane, nie zawierają wszystkich potrzebnych wskazówek i dlatego tak łatwo się zgubid, czy popełnid błąd.

Zakładając, że realizujemy projekt najprostszym, intuicyjnym modelem kaskadowym, krzywa ryzyka osiągnięcia sukcesu w projekcie, wg mojej oceny, ciągle rośnie. Wciąż rośnie ryzyko, że przyjęte na początku założenia oraz zaproponowane i zaimplementowane rozwiązania (w przypadku braku ich wczesnej, cyklicznej, dostatecznie częstej weryfikacji) okażą się niezgodne z oczekiwaniami projektantów i klienta. Naszym zadaniem jest - jak najwcześniej, zanim zainwestujemy duże pieniądze w projekt - uzyskad pewnośd, iż posiadamy wykonywalną i przetestowaną architekturę oczekiwanego rozwiązania, która z dużym prawdopodobieostwem jest w stanie sprostad sprecyzowanym wymaganiom jakościowym. Zapewnienia jakości Chciałbym bardzo mocno podkreślid, że wysoką jakośd produktów w projekcie informatycznym osiągniemy wyłącznie dzięki ścisłej, częstej współpracy zamawiającego i wykonawcy oraz wewnętrznej współpracy poszczególnych zespołów projektowych. Osiąganie jakości musi byd zintegrowane ze wszystkimi zadaniami, czynnościami procesów zachodzących w projekcie zapewnianie jakości nie powinno stanowid osobnej dyscypliny inżynierii oprogramowania. Coraz częściej słyszymy o tworzeniu przez dojrzałe organizacje interdyscyplinarnych zespołów zapewniania jakości (QA), złożonych nie tylko z testerów, ale także z analityków, projektantów, developerów.... To ich wspólnej ocenie podlega wówczas każdy ważny, wyjściowy artefakt projektu. Każdy, indywidualnie, w projekcie musi czud, iż odpowiada za jakośd wytwarzanych w nim produktów i, co ważniejsze, że ma na nią wpływ. Zadania procesu zapewniania jakości (QA) Do najważniejszych zadao procesu zapewniania jakości powinno należed: zidentyfikowad i zdefiniowad wskaźniki (mierzalne) akceptowalnej jakości, zidentyfikowad i zaplanowad odpowiednie pomiary jakości (min. plany i harmonogram testów) zidentyfikowad i odpowiednio rozwiązad zagadnienia i problemy jakościowe (tym samym poszczególne ryzyka projektu) tak szybko i efektywnie, jak to możliwe.

Najlepsze praktyki wytwarzanie oprogramowania Chciałbym przedstawid kilka najważniejszych, tzw. najlepszych praktyk wytwarzania oprogramowania, które stały się podwaliną opracowywania iteracyjnych modeli wytwórczych, jak również tzw. metodyk zwinnych. Dobre praktyki to sprawdzone, komercyjne metody tworzenia oprogramowania, które używane razem i dobrze skoordynowane skutecznie radzą sobie z podstawowymi problemami tworzenia systemów informatycznych. Do najważniejszych z nich należą: atakuj ryzyko najwcześniej, jak to możliwe co oznacza: testuj najwcześniej, jak to możliwe oraz tak często, jak to możliwe czyli tak często, jak tylko potrafisz tym procesem efektywnie zarządzad; buduj produkt cenny dla klienta oznacza to, że należy zbierad wymagania nie tylko funkcjonalne, ale również dotyczące użyteczności, wydajności, pielęgnowalności poprzez pryzmat uzgodnionego sukcesu projektu; oznacza to również, aby zebrane wymagania i wysokopoziomowe projekty systemu dokumentowad w sposób zrozumiały dla klienta dzięki temu będą one mogły byd poddane wcześniejszej (przed implementacją) i pełniejszej ocenie przez klienta; koncentruj się na częstym uzyskiwaniu wykonywalnego oprogramowania dokumenty i projekty są ważne, ale nie są one najlepszym wskaźnikiem postępu projektu; najlepszym, najbardziej obiektywnym wskaźnikiem postępu jest wykonywalne oprogramowanie, które pomyślnie przeszło zaplanowany (nawet cząstkowy) zbiór i rodzaj testów; zaakceptuj fakt i miej pewnośd, że zmiany wystąpią możliwośd wprowadzania zmian potraktuj jako szanse na dokonywanie korzystnych zmian w projekcie; zaprojektuj i zaimplementuj architekturę systemu tak wcześnie, jak to możliwe i przetestuj ją! zbuduj swój system z komponentów. Model kaskadowy a model iteracyjny Model klasyczny: Ponownie, nie negując użyteczności modelu kaskadowego dla pewnego typu projektów, chciałbym podkreślid, że często to on prowadzi nas prosto do porażki, gdyż:

wymagao nie można zamrozid; nie jest możliwe jednorazowe poprawne zaprojektowanie systemu; nie jesteśmy w stanie przewidzied wszystkich zagrożeo w fazie planowania i projektowania; projekty informatyczne działają na zbyt dynamicznym rynku zmiany prawa, technologii, usług; wprowadzanie zmian w koocowej fazie projektu w takim podejściu wiele kosztuje a każda zmiana pociąga zmiany następne i dodatkowe koszty. Model iteracyjny: Znając wady modelu klasycznego, chciałbym pokrótce przypomnied cechy modelu iteracyjnego, mianowicie: proces iteracyjny składa się z ciągu kroków przyrostowych; każda iteracja obejmuje większośd dyscyplin (często wszystkie); do każdej iteracji przypisany jest wyraźnie określony zbiór jasnych, mierzalnych celów; wynikiem iteracji jest działająca implementacja systemu koocowego; każda iteracja opiera się na wynikach iteracji poprzedniej; występuje zmiana zaangażowania poszczególnych dyscyplin w różnych fazach projektu - w początkowych iteracjach duży nacisk kładzie się na analizę i projektowanie, w koocowych na implementację i testowanie. Jak zjeść słonia? Kęsami? W tym miejscu chciałbym stanowczo podkreślid, że poszczególna iteracja nie jest tym samym, co pojedyncze podejście kaskadowe.

Niekaskadowe uszeregowanie czynności w ramach iteracji zależy od: indywidualnych okoliczności, w jakich prowadzony jest projekt chwilowych uwarunkowao wewnętrznych i zewnętrznych; wyników iteracji poprzednich; strategii; naszej taktyki; możliwości adaptacji; ale głównie od zidentyfikowanych ryzyk i zagrożeo. Realizując projekt modelem iteracyjnym musimy zadad sobie następujące pytania: W jaki sposób te działania (iteracja po iteracji) poprowadzą nas w sposób systematyczny do uzyskania koocowego produktu? Jak uniknąd tego, by w każdej iteracji nie zaczynad wszystkiego od początku? Iteracyjne modele procesów dostarczaną nam na te pytania szczegółowej odpowiedzi. Rational Unified Process jako przykład modelu iteracyjnego

Na poniższym rysunku widzimy tzw. wykres wielogarbny przedstawiający istotę procesu RUP jako przykład modelu iteracyjnego. Do najważniejszych cech tego modelu należy to, iż proces iteracyjny w RUP jest podzielony na etapy/fazy i iteracje. Proszę zauważyd, że poszczególne fazy i iteracje nie są tworzone poprzez tradycyjną sekwencję dyscyplin inżynierii oprogramowania (planowanie analiza, projektowanie, implementowanie, scalanie) ale są do nich całkowicie ortogonalne. Aby skutecznie kierowad pracami i postępami w projekcie realizowanym modelem iteracyjnym, trzeba wyznaczyd tzw. punkty kontrolne dla poszczególnych etapów/faz projektu z jasno określonymi kryteriami osiągnięcia poszczególnych kamieni milowych. Są to tzw. cele długoterminowe. Natomiast sekwencje czynności w ramach pojedynczej iteracji trzeba podzielid i zorganizowad tak, aby móc podporządkowad je konkretnym, krótkoterminowym celom. Wykres wielogarbny wyraźnie podkreśla, że w mniejszym lub większym stopniu, niemal wszystkie grupy projektowe uczestniczą w pracach projektu poprzez wszystkie jego fazy. Często zwraca uwagę również fakt, że proces testowania rozpoczyna się jeszcze przed implementacją a analiza trwa również wtedy, gdy produkt jest wdrażany. Ustanawiane w poszczególnych etapach i iteracjach kamienie milowe są efektem współpracy zespołów projektowych (ze szczególnym wkładem zespołu QA) i wynikiem wspólnego, ciągłego szacowania ryzyka. Autorem zidentyfikowanego ryzyka może byd każdy interesariusz projektu! Wszyscy powinni mied dostęp do tzw. rejestru ryzyka. W przedsięwzięciu iteracyjnym, miarą postępu prac jest łącznie: lista rozważonych przypadków użycia, czy zrealizowanych właściwości użytkowych systemu, lista przebytych wariantów testów (wraz z wynikami), lista spełnionych wymagao eksploatacyjnych, (przede wszystkim) lista wyeliminowanych zagrożeo!

Korzyści płynące ze stosowania modeli iteracyjnych Ścisła współpraca zespołów projektowych i klienta przy wykorzystaniu możliwości i zalet iteracyjnego podejścia do wytwarzania oprogramowania zapewni, że największe zagrożenia będą wykrywane i neutralizowane podczas początkowych operacji scalania testowanie architektury (już po kilku tygodniach), pozwali określid, które z przewidywanych zagrożeo są rzeczywiste (narzędzia lub ich brak, umiejętności, możliwości technologiczne, zakupione komponenty), odkryd nowe, niespodziewane zagrożenia a zapobieganie nim stanie się mniej kosztowne i łatwiejsze. Zespół twórców zmuszony będzie do koncentrowania się na sprawach najbardziej istotnych małe przyrosty, lepiej zdefiniowane zadania, mierzalne wyniki. Dzięki temu jest on chroniony przed sprawami, które odwracają jego uwagę od rzeczywistych zagrożeo przedsięwzięcia. W takim przedsięwzięciu jest możliwośd reagowania na zmieniające się wymagania wczesne wykrywanie niezgodności pomiędzy wymaganiami, wynikami projektowania i wynikami implementacji. Weryfikacja wymagao z ich źródłem jest prostsza. Staje się możliwe przedstawianie klientowi przyrostowych wyników pracy w postaci wykonywalnego oprogramowania, a to sprzyja szybszemu dochodzeniu do wymagao rzeczywistych. Scalanie nie jest już wielkim wybuchem, który następuje na koniec przedsięwzięcia, gdyż każda iteracja kooczy się scalaniem, co minimalizuje późniejsze przeróbki (często około 40% wysiłku marnowano właśnie na koocowe scalanie). Proces testowy w modelu iteracyjnym Na poniższym rysunku pokazano przykładowy proces testowy (na podstawie RUP) w iteracyjnym modelu inżynierii oprogramowania w ramach jednej iteracji.

Jak wykazałem wcześniej (za pomocą wykresu wielogarbnego), w modelu iteracyjnym testy są projektowane i wykonywane tak szybko/wcześnie, jak to możliwe jeszcze przed rozpoczęciem implementacji. W procesie tym większośd użytecznych przypadków testowych (szczególnie zautomatyzowanych) jest akumulowanych jako testy regresji. Rezultaty testowania mogą byd przedstawiane interesariuszom bardzo wcześnie, kiedy poprawki są tanie. Dzięki małym, iteracyjnym przyrostom, testerzy lepiej rozumieją obiekt testowania. Plan testów i przypadki testowe rozwijają się wówczas razem z produktem, gdyż poszczególne przypadki testowe są projektowane na podstawie planu zgrubnego planu testów dla przedsięwzięcia (częśd Planu jakości) oraz Planu testów dla iteracji i są rozwijane razem z kodem oprogramowania. Zwiększa to szanse na automatyzację testów. Z rysunku można odczytad, iż każda iteracja ( a tym samym Plan (zgrubny) testów ) powinna zawierad tzw. główne zadanie testowe dla iteracji. Zadanie testowe dla iteracji jest to kluczowy aspekt planowania, krótka deklaracja na poziomie zarządzania, oparta na oszacowaniu ryzyka, pozwalająca zrozumied testerom cel iteracji, który powinien pokrywad się z aktualnym kontekstem projektu i przyświecad zespołom testowym w ramach całej iteracji, oprócz normalnego testowania postępów funkcjonalnych. Podsumowanie W swojej prezentacji starałem się wykazad, że modele iteracyjne pozwalają na skuteczne zarządzanie projektem informatycznym. Dostarczają one wielu narzędzi neutralizowania ryzyka, powodując jego obniżenie na początku projektu i skuteczne nim zarządzanie w dalszej jego części. Dzięki modelom iteracyjnym w naturalny sposób następuje zacieśnienie współpracy pomiędzy zespołami projektowymi a zapewnianie jakości w projekcie staje się odpowiedzialnością każdego. Poszczególne artefakty projektu są częściej testowane, podlegają wspólnym przeglądom a wcześnie wykrywane błędy są taosze do naprawienia. Iteracje dają możliwości adaptacji przebiegu i zakresu projektu do zmieniających się czynników zewnętrznych, zidentyfikowanych zagrożeo i napotkanych trudności. Modele iteracyjne pozwalają na automatyzację procesu testowego skrypty testowe są rozwijane wraz z rozwojem oprogramowania. Wszystkie powyższe korzyści pozwalają nam na łatwiejsze i bardziej skuteczne zapewnianie wysokiej jakości produktów przedsięwzięcia informatycznego.