Proces iteracyjny to jeden z terminów, który, podobnie jak Agile, od razu przywołuje na myśl zespoły inżynieryjne. W rzeczywistości jednak większość zespołów używa procesu iteracyjnego w takiej czy innej formie. Umożliwia to ograniczenie ryzyka, zarządzanie wydajnością oraz dynamiczne rozwiązywanie problemów.
Jeśli chcesz zacząć pracę z procesami iteracyjnymi ten artykuł Ci w tym pomoże. Opowiemy w nim, jak zdefiniować proces iteracyjny oraz jak wdrożyć go w swoim zespole.
Proces iteracyjny to metoda budowania, określania i udoskonalania projektu, produktu czy inicjatywy. Zespoły, które korzystają z iteracyjnego procesu rozwoju zyskują możliwość tworzenia, testowania i wprowadzania poprawek, aż będą zadowolone z końcowego rezultatu. Wyobraź sobie, że proces iteracyjny to metoda prób i błędów, która pozwala zbliżyć się do osiągnięcia końcowego celu projektu.
Procesy iteracyjne są podstawowym elementem metodologii „lean” i zwinnego zarządzania projektami (ang. agile project management), ale mogą z nich korzystać wszystkie zespoły. Umożliwiają one ciągłe udoskonalanie designu, produktu lub projektu, aż wszyscy członkowie zespołu będą zadowoleni z ostatecznej wersji produktu końcowego projektu.
W ramach procesu nieiteracyjnego członkowie zespołu współpracują ze sobą nad opracowaniem produktu końcowego, ale niekoniecznie testują po drodze nowe pomysły. Takie procesy zajmują zazwyczaj więcej czasu na etapie konceptualizacji i tworzenia, aby upewnić się, że wszystko będzie poprawnie działać w fazie testowania.
Model kaskadowy (ang. waterfall model) to najpopularniejszy przykład procesu nieiteracyjnego. Przed rozpoczęciem go określa się fazy projektu, z których każda zaczyna się po zakończeniu poprzedniej. Wymagania i zasoby zazwyczaj również ustalane są przed rozpoczęciem projektu, a podczas jego realizacji zespół stara się jak najmniej modyfikować plan projektu.
Załóżmy, że tworzysz e-book we współpracy z agencją projektową. Najpierw musisz przygotować treść, później agencja wykona dla niej projekt, a na koniec zespół wewnętrzny w Twojej organizacji przejrzy zaprojektowanego e-booka, aby upewnić się, że wszystko wygląda właściwie. Jest to przykład metody kaskadowej, ponieważ wykonanie każdego etapu uzależnione jest od poprzedniego (nie można przecież sprawdzić e-booka zanim zostanie on zaprojektowany).
W zależności od Twojego zespołu oraz realizowanych przez Was projektów procesy nieiteracyjne mogą stanowić wyzwanie, ponieważ nie ma w nich czasu na wprowadzanie iteracji i ciągłe doskonalenie. Proces programowania jest szczególnie nieprzewidywalny, dlatego też zespoły inżynieryjne częściej korzystają z procesów iteracyjnych, ale nie oznacza to, że nie mogą z nich korzystać inne działy.
Większość zespołów stosuje realizację przyrostową i procesy iteracyjne naprzemiennie, ponieważ często są one do siebie podobne. Istnieje jednak kilka różnic pomiędzy tymi dwoma terminami.
W ramach procesu iteracyjnego zespół stara się udoskonalić projekt w oparciu o informacje zwrotne lub nowe dane. Kluczem do pomyślnej realizacji procesu iteracyjnego jest metoda prób i błędów, ponieważ w rezultacie projekt staje się coraz lepszy.
Realizacja przyrostowa natomiast, czasem zwana również modelem przyrostowym, polega na dodawaniu nowych funkcji i ulepszeń do pierwotnie dostarczonego produktu. W ramach modelu przyrostowego zespoły celowo dostarczają produkt w wersji podstawowej, aby wprowadzić go na rynek tak szybko, jak to możliwe (w myśl poprzedniego motto Facebooka „Działaj szybko i psuj rzeczy”). Następnie pierwotna wersja jest stopniowo udoskonalana poprzez dodawanie do niej nowych elementów. Dzieje się tak, aż utworzona zostanie ostateczna wersja produktu końcowego wyposażona we wszystkie funkcje.
Większość zespołów, które korzystają z procesów iteracyjnych używa również modelu przyrostowego i odwrotnie. Właściwie wdrożone procesy iteracyjne również opierają się na stopniowym udoskonalaniu pierwotnego produktu, a poprawnie wprowadzony model przyrostowy jest także iteracyjny, ponieważ umożliwia on reagowanie na informacje zwrotne od klientów i dostosowywanie planów w razie potrzeby.
Wypróbuj Asanę do zarządzania projektamiWiele zespołów inżynieryjnych korzysta z procesów iteracyjnych, aby wprowadzić nowe funkcje, naprawić usterki lub przetestować nowe strategie. Często zdarza się, że inżynierowie wprowadzają kilka obiecujących iteracji równocześnie, a następnie testują je z pomocą użytkowników. W ten sposób sprawdza się, jakie są mocne i słabe strony danego produktu, a dalsze prace wykonuje się tylko dla tych, które uzyskały najlepsze wyniki.
Zaskakujące może być to, że większość procesów dotyczących tworzenia produktów jest iteracyjna. Pomyśl na przykład o dowolnym urządzeniu, jakie posiadasz. Z pewnością miało ono wcześniejszą wersję, a może nawet późniejszą. To samo dotyczy telefonów komórkowych, głośników, które stają się coraz mniejsze i łatwiejsze do przenoszenia, a nawet lodówek, które są stopniowo modyfikowane, aby dostosować się do potrzeb nowoczesnych rodzin. Każdy z tych procesów można nazwać iteracyjnym.
Niektóre zespoły marketingowe chwalą sobie procesy iteracyjne, a inne nie, jednak marketing jest tak naprawdę bardzo iteracyjny. Przykładowo, niektóre zespoły mogą testować różne treści reklamowe, aby sprawdzić, które z nich generują większe zaangażowanie albo wysyłać dwie wersje newslettera, żeby porównać liczbę kliknięć. Zespół ds. marketingu marki również mógłby korzystać z iteracyjnego procesu projektowania, aby dowiedzieć się, jakie obrazy najlepiej przemawiają do odbiorców.
Chociaż większość pracy w działach sprzedaży nie jest iteracyjna, istnieją zadania, do realizacji których można użyć procesów iteracyjnych. Przykładowo, zespół sprzedaży może iteracyjnie wysyłać e-maile z ofertami, na przykład wysyłając wiadomości o różnych tematach i analizować rezultaty, aby wybrać ten o największej skuteczności.
Proces iteracyjny może być pomocny w trakcie cyklu życia projektu. Podczas realizacji poszczególnych kroków punktem rozpoczęcia będą cele oraz wymagania. Następnie członkowie zespołu mogą wykorzystać metodę testowania, tworzenia prototypów i iteracji, aby uzyskać jak najlepsze rezultaty.
Podczas tego etapu należy przygotować plan projektu i uzgodnić ogólne cele projektu. Jest to również właściwy moment na określenie wymagań, czyli kryteriów sukcesu projektu. Pominięcie tego kroku może doprowadzić do tworzenia kolejnych iteracji, ale bez rezultatów w postaci osiągniętych celów.
Ten etap umożliwia Twojemu zespołowi skoncentrowanie się na potrzebach biznesowych i wymaganiach technicznych projektu. Pierwszy krok polegał na określeniu celów, natomiast krok drugi pozwala na przeprowadzenie burzy mózgów i znalezienie projektu, który umożliwi ich osiągnięcie.
Trzeci krok to czas na stworzenie pierwszej iteracji produktu końcowego projektu. Zostanie ona przygotowana w oparciu o analizę oraz projekt i powinna spełniać cele projektu. To, ile szczegółów powinna obejmować ta wersja oraz czas przeznaczony na jej utworzenie zależy od projektu.
Kiedy iteracja jest już gotowa, należy ją przetestować. Jeśli chcesz na przykład udoskonalić stronę internetową, korzystne może być porównanie jej z bieżącą wersją. Jeśli tworzysz nowy produkt lub funkcję, rozważ przeprowadzenie testów użyteczności, angażując do nich potencjalnych klientów.
Poza przeprowadzeniem testów należy również skonsultować się z interesariuszami projektu. Zapytaj, co sądzą oni na temat danej iteracji i poproś o podzielenie się informacjami zwrotnymi.
[Przeczytaj] Czym jest cykl PDCA?Po zakończeniu testów, Twój zespół oceni sukces iteracji i uzgodni jakie zmiany należy wprowadzić. Czy dana iteracja pozwala osiągnąć cel projektu? Dlaczego? Jeśli trzeba coś zmienić, przeprowadź proces iteracyjny ponownie, poczynając od kroku nr 2. Pamiętaj, że plan początkowy i cele powinny być takie same dla wszystkich iteracji. Powtarzaj proces, aż do uzyskania produktu końcowego, który spełnia wszystkie wymagania.
Jeśli rozpoczynasz proces iteracyjny od początku upewnij się, że wszyscy znają jego założenia i cele. Proces ten może zająć tygodnie, a nawet miesiące, więc przypominanie jakie są jego główne cele na początku każdej iteracji pomoże Ci utrzymać działania na właściwych torach.
Model iteracyjny nie jest odpowiedni dla każdego zespołu ani dla każdego projektu. Poniżej przedstawiamy jego główne wady i zalety.
Zalety:
Większa wydajność: ponieważ proces iteracyjny opiera się na metodzie prób i błędów często prowadzi on do szybszego osiągnięcia pożądanych rezultatów.
Lepsza współpraca: zamiast pracować w oparciu o wcześniej ustalony plan i specyfikacje (których utworzenie pochłania również sporo czasu), członkowie Twojego zespołu aktywnie ze sobą współpracują.
Większa elastyczność: podczas procesu wdrażania i testowania można dostosowywać iterację w zależności od otrzymywanych wyników, co umożliwia łatwiejszą realizację celów nawet, jeśli wykonywane działania znacznie odbiegają od początkowych oczekiwań.
Niższy koszt: nawet, jeśli okaże się, że zakres projektu należy zmienić, to iteracja wymaga minimalnego nakładu pracy.
Możliwość prowadzenia działań równolegle: w przeciwieństwie do innych metod, na przykład kaskadowej, iteracje nie zawsze są zależne od ukończenia poprzedzających je zadań. Członkowie zespołu mogą równolegle pracować nad realizacją kilku elementów, co skraca czas trwania projektu.
Ograniczenie ryzyka w projekcie: w ramach tego procesu zagrożenia są identyfikowane i eliminowane podczas każdej iteracji. Dzięki temu, zamiast przygotowywać plan na wypadek pojawienia się poważnych zagrożeń na początku lub pod koniec projektu, zespół systematycznie pracuje nad rozwiązywaniem mniejszych zagrożeń.
Konkretniejsze informacje zwrotne od użytkowników: jeśli użytkownicy mają szansę zobaczyć daną iterację lub używać jej, otrzymane od nich informacje zwrotne będą konkretniejsze i bardziej przydatne.
Wady:
Większe ryzyko wystąpienia pełzania zakresu: ze względu na to, że proces iteracyjny opiera się na metodzie prób i błędów, Twój projekt może rozwinąć się w nieprzewidziany sposób, wykraczając poza swój pierwotny zakres.
Restrykcyjne planowanie i ścisłe wymagania: pierwszym krokiem procesu iteracyjnego jest określenie wymagań projektu. Ich zmiana w trakcie projektu może zakłócić przepływ pracy i spowodować tworzenie iteracji, które nie przyczyniają się do realizacji celów projektu.
Brak przejrzystych terminów: harmonogramu pracy nie można dokładnie przewidzieć, ponieważ zadaniem członków zespołu jest tworzenie, testowanie i ponowne sprawdzanie iteracji, aż do uzyskania odpowiedniego efektu końcowego. Co więcej, długość testowania może różnić się w zależności od iteracji, co również wpływa na czas trwania projektu.
Kilka elementów zaczerpniętych z procesu iteracyjnego może przydać się w każdym zespole. Na przykład podchodzenie do pracy na zasadzie metody prób i błędów czy większa elastyczność i współpraca przy rozwiązywaniu problemów. Niezależnie od tego czy zdecydujesz się na stałe wprowadzić korzystanie z procesów iteracyjnych w swoim zespole czy nie, idea ciągłego doskonalenia może zawsze Ci towarzyszyć.
Jeśli chcesz uzyskać więcej wskazówek, zapoznaj się z naszym artykułem na temat 25 niezbędnych umiejętności do zarządzania projektami.
Wypróbuj Asanę za darmo