niedziela, 2 sierpnia 2015

Metodyka a cel projektu.

Marcin Żmigrodzki z Octigo napisał post nt podejścia do realizacji projektu w różnych metodykach. Łatwo się czyta, ale też daje dużo do myślenia. Pierwsza myśl: kierownik opisanego tam projektu sztafety nie potrafi dobrać metodyki zarządzania do problemu, który przed nim stoi. Próba używania narzędzi w innym celu, niż zostały stworzone jest oczywiście możliwa, ale po co? Co oczywiście prowadzi do pytania: do jakich celów projektowych nadają się poszczególne metodyki? Jakim celom biznesowym najlepiej odpowiadają poszczególne metodyki? Poniżej kilka uwag, razem z obserwacją na koniec. Czy naprawdę czegoś nam brakuje?

Podejście kaskadowe
W metody tradycyjne skupiają się na tym, aby dostarczyć określony zakres w określonym czasie przy wykorzystaniu określonych zasobów. W przypadku biegu sztafetowego przekłada się to na postawienie celu "4 biegaczy ma przebiec 3000 metrów w 3 minuty". Nie ma co się rozpisywać, może poza stwierdzeniem, że żaden plan nie wygrywa starcia z rzeczywistością.

Agile
Jak to słusznie zauważył Marcin w swoim pierwszym poście, szeroko rozumiane metody agile a w tym SCRUM są metodami, w których zakres projektu nie sztywno określony. Innymi słowy w metodach agile mamy przy wykorzystaniu określonych zasobów, w określonym czasie dostarczyć zakres możliwie najlepiej realizujący cel projektu. Przekładając to na bieg oznaczałoby to postawienie celu "4 biegaczy ma w ciągu 3 minut dobiec jak najdalej".

Przy takim postawieniu celu metody agile nagle mają potężny sens. Jeżeli mam w 3 minuty dobiec jak najdalej to naturalnym sposobem postępowania jest patrzenie co 30 sekund gdzie jestem i zastanawianie się co zrobić, aby w kolejnych 30 sekundach przebiec dystans większy niż w poprzednich. Sensowne staje się też pytanie o to w którą w ogóle stronę biegniemy. Jeżeli celem jest tylko dobiec jak najdalej to jeżeli droga w prawo jest pod górkę a w lewo z górki to po co biec w prawo?

Może się jeszcze zdarzyć, że metody agile są używane w środowisku niepewności technologicznej. Wówczas cel byłby zdefiniowany w stylu "4 biegaczy ma w ciągu 3 minut znaleźć się jak najbliżej mety, przy czym nigdzie w okolicy nie widać toru biegowego". W takiej sytuacji zakładamy, że nie znamy drogi pomiędzy startem a metą (nie znamy technologicznego sposobu realizacji projektu). Wówczas równiej jak najbardziej sensowne jest podejście, w którym co 30 sekund stajemy, patrzymy się wokoło i wybieramy drogę, która w ciągu następnych 30 sekund doprowadzi nas najbliżej rzeczonego markera.

Łańcuch krytyczny
Metoda łańcucha krytycznego została stworzona aby zapewnić realizację projektu na czas i/lub w czasie możliwie najkrótszym. "Stosowanie metody łańcucha krytycznego ma sens tylko i wyłącznie kiedy istnieje realna korzyść biznesowa ze skrócenia czasu realizacji projektu" (cytat za Marek Kowalczyk). Czyli metodę łańcucha krytycznego stosujemy tam, gdzie mamy określony zakres, określone zasoby i potrzebujemy dostarczyć projekt jak najszybciej. Przekładając to na bieg sztafetowy "4 biegaczy ma przebiec 3000 metrów jak najszybciej".

Kontrola realizacji projektu w metodzie łańcucha krytycznego oparta o analizę bufora w tym wypadku też rewelacyjnie się sprawdzi. Jeżeli mamy jakikolwiek bieg czy wyścig to naturalnym jest, ze co pewien czas sprawdzamy jak nam idzie w porównaniu do innych w stawce. Jeżeli jesteśmy X sekund/minut z przodu - bufor zielony, jest ok. Jeżeli jesteśmy mniej więcej tak samo jak pierwszy poza nami to strefa żółta - tragedii nie ma, ale trzeba mieć plan co z tym zrobić. Jak do najlepszego brakuje nam X sekund/minut - strefa czerwona, sprężamy się.

Jeżeli akurat nie są to zawody tylko trening to nie porównujemy czasu z przeciwnikiem tylko z ustalonym przez nas celem. Który ma być agresywny (bo inaczej to nie jest wyzwanie). Przy czym agresywny wcale nie oznacza 50% estymacji wykonawcy. Agresywny oznacza po prostu agresywny. Na pewnym poziomie urwanie 1 sekundy to już bardzo agresywne podejście :)

Dygresja czyli metodyka XXX
Do napisania tego postu skłoniło mnie to, że po przemyśleniu tego co napisałem powyżej rzuciło się w oczy, że czegoś tu brakuje. Mamy w zarządzaniu projektami klasyczny trójkąt: zakres, czas, zasoby (plus czasami dodawana jakość). Patrząc się na powyżej opisane metodyki mamy metodykę skupiającą się na próbie wypełnienia wszystkich trzech parametrów (kaskadowa). Mamy metodykę skupiającą się na optymalizacji (maksymalizacji) zakresu przy stałym czasie i zasobach (agile). Mamy metodykę skupiającą się na optymalizacji (minimalizacji) czasu przy stałym zakresie i zasobach (łańcuch krytyczny). A co z metodą, która przy stałym zakresie i czasie zoptymalizuje nam zasoby? Innymi słowy: chcę jak najtaniej dostać dany zakres w danym czasie? Na usta cisną się metodyki Lean. Problem tylko w tym, że one nadają się bardziej do powtarzalnych procesów produkcyjnych a nie konkretnego, innowacyjnego projektu. Czeka nas za jakiś czas moda na kolejną,  nową super-metodykę optymalizującą zasoby?