niedziela, 16 września 2007

Poziomy planowania

Dzisiaj krótko o poziomach planowania. Ostatnio musiałem tą koncepcję kilka razy tłumaczyć, co znaczy jest zapotrzebowanie na ten temat. Od razu mówię, że nie jest to kompletne omówienie tematu a raczej jego zasygnalizowanie. Kompletne omówienie zajmuje całą książkę :-)

Z bliżej nieznanych przyczyn część osób, które gdzieś tam tylko usłyszały o "agile" uważa, że w zwinnym zarządzaniu całe planowanie polega tylko i wyłącznie na zaplanowaniu tego co zostanie zrealizowane w następnej iteracji. Z tego powodu pojawia się od razu zarzut, że jest to planowanie zbyt mało dokładne i nie nadające się do "poważnych" zastosowań. Nic bardziej błędnego. Planowanie w technikach zwinnych odbywa się na kilku poziomach, z których poziom iteracji jest owszem najczęściej opisywany, ale na pewno nie jest jedyny. Poniżej skrótowy opis wybranych poziomów planowania, które muszą być zastosowane w każdym projekcie prowadzonym technikami zwinnymi (są jeszcze dwa poziomy nazwijmy je "opcjonalne").

1. Poziom produktu
Podobno chińskie przysłowie mówi, że jak nie wiesz dokąd chcesz iść to nigdy tam nie dojdziesz. Tak samo jest z projektami. Planowanie na poziomie produktu pozwala określić co tak naprawdę projekt ma przynieść. Jakie cele mają być zrealizowane. W odróżnieniu od technik tradycyjnych w technikach zwinnych na tym poziomie nie stosuje się dokładnego planowania a raczej pojęcie i koncepcję wizji produktu końcowego. Wizja ta jest realizowana w sposób zwinny - stąd nie może istnieć dokładny plan na tym poziomie. Jeżeli by istniał, to po co nam zwinność? Istnieją specjalne narzędzia wspomagające planowanie na tym poziomie.

2. Poziom wersji
Po angielsku "release". Jak już wiadomo jest co ma być oczekiwanym rezultatem końcowym produktu/projektu trzeba zaplanować kiedy kolejna wersja produktu trafi na rynek. Wersja jest to coś co jest sprzedawane komercyjnie. I tu uwaga, bo można się pomylić z iteracją. Produktem iteracji też jest działający produkt, ale niekoniecznie jest to wersja do komercyjnej sprzedaży. Natomiast produktem wersji jest zawsze produkt (wersja produktu) idący do sprzedaży i komercyjnego wdrożenia. Na etapie planowania wersji identyfikuje się funkcjonalności, które powinny się w niej znaleźć oraz określa się ile iteracji będzie potrzebnych do wyprodukowania wersji produktu zawierającego zakładane funkcjonalności. Zwykle powinno być to przynajmniej kilka (5-10) iteracji. Można, choć nie trzeba, na tym etapie przypisać wstępnie która funkcjonalność jest do zrealizowania w której iteracji - z założeniem, że to się może pozmieniać. Choć powyższe może brzmi banalnie trzeba mieć świadomość, że aby choć wstępnie określić jakie funkcjonalności przypisać do których iteracji, trzeba mieć wstępną wycenę pracochłonności poszczególnych funkcjonalności. Co czyni planowanie na tym poziomie wcale nie takim prostym jak to się wydaje na pierwszy rzut oka.

3. Poziom iteracji
Najczęściej wspominany w literaturze. Na tym poziomie należy podjąć decyzję na dwóch pod-poziomach. Zespół musi się zobowiązać które funkcjonalności zrealizuje w ramach danej iteracji oraz rozbić te funkcjonalności na zadania do wykonania. Te decyzje zwykle podejmuje sie iteracyjnie, gdyż często aby się zobowiązać do zrobienia czegoś trzeba to lepiej poznać przez rozbicie na zadania. Z drugiej strony powinno się rozbijać na zadania tylko te funkcjonalności, które mają szanse znaleźć się w najbliższej iteracji. Oczywiście przy podejmowaniu decyzji o wyborze funkcjonalności należy kierować się ogólnie przyjętymi zasadami wyboru funkcjonalności, co w praktyce często oznacza, że będzie w to zaangażowany klient lub właściciel produktu. Pamiętać należy, że plan iteracji z punktu widzenia obserwatora spoza zespołu, zgodnie z duchem zarządzania zwinnego powinien być oparty i jasno pokazywać wartość dodaną, która zostanie wytworzona w danej iteracji. Z drugiej strony na tym poziomie planowania poprzez rozbicie na zadania powstaje plan operacyjny dla zespołu pracującego nad projektem. Plan operacyjny oznacza zidentyfikowane zadania do wykonania.

4. Poziom dnia
Na poziomie dnia planuje się i kontroluje operacyjnie działanie grupy. Najgłośniejszą metodą są tu dzienne spotkania zespołu podczas których tak naprawdę jest kontrolowany status poszczególnych zadań. To pozwala porównywać wykonywane zadania z zadeklarowanymi na poziomie planowania iteracji. Daje to kierownikowi projektu natychmiastową informację zwrotną jeżeli tylko cokolwiek idzie nie tak, są odstępstwa od planu. Podkreślenia wymaga fakt, że dziennie również odbywa się planowanie. Jak to się bowiem zwykle dzieje w środowisku projektowym plan traci aktualność z chwilą jego wytworzenia. Planowanie codzienne pozwala mieć bardzo częste aktualizacje informacji o stanie rzeczywistym wykonywanych działań. W przypadku kiedy stan rzeczywisty nie odzwierciedla planu (wcześniejszego przewidywania) należy podjąć działania. W "tradycyjnej" książce czy szkoleniu byłoby w tym miejscu napisane, że działania mają mieć na celu przywrócenie projektu do zgodności z planem. Ponieważ tekst dotyczy metod zwinnych to trzeba przyjąć inną strategię: podjęte działania mają zmaksymalizować ilość dostarczanej wartości dodanej dla klienta przy zachowaniu wartości związanych ze zwinnym zarządzaniem projektami. Mówiąc po ludzku: projekt trzeba zaadoptować do zaistniałej sytuacji.

Brak komentarzy: