Optymalizacja lokalna i globalna w twoim projekcie

Udostępnij

Jakiś czas temu miałem rozmowę z jednym z czytelników bloga na temat jego problemów w zarządzaniu projektem. Stwierdził, że ma drobne problemy w zarządzaniu projektami takie jak przedłużające się zadania etc – jako lek na zbiór mikro problemów chciał użyć Scrum. Skłoniło mnie to do refleksji, którą chcę się z wami podzielić.

Teoria ograniczeń

Na początek trochę teorii, która zmieniła moje podejście do rozwiązywania problemów (nie tylko w IT). Warto sobie uświadomić, że przed rozwojem ogranicza nas zawsze jeden czynnik (w jednym momencie) – mimo, że czasami wydaję nam się, że jest ich więcej. Spróbuję wyjaśnić to na pewnym przykrym przykładzie. Wyobraźmy sobie starszą schorowaną osobę, która przeżywa swoje ostatnie dni z powodu zapalenia płuc. Czynnikiem ograniczającym zdrowie (w założeniu) w pierwszej kolejności może być np zbyt wysoka temperatura ciała, która w tym wieku może zagrażać życiu – gdyby udało nam się ją unormować, stan osoby prawdopodobnie by się polepszył. Natomiast mimo gorączki, pacjent cierpi również na problemy z oddychaniem, które nie zagrażają bezpośrednio życiu, jednak są sporym utrudnieniem dla pacjenta. Wyobraźmy sobie sytuację, w której chory ma bardzo wysoką temperaturę ciała zagrażającą życiu. W ograniczeniu zdrowia występuje zawsze jeden czynnik w jednym momencie – w naszym przykładzie jest to zbyt wysoka temperatura. Dopiero po jej unormowaniu czynnikiem ograniczającym staną się problemy z oddychaniem.

Jeżeli gorączka jest na tyle wysoka, że zagraża życiu, a lekarz skupiłby się na problemach z oddychaniem – prawdopodobnie pacjent mógłby tego nie przeżyć. Analogiczne przykłady dzieją się notorycznie na codzień w projektach IT. Skupiamy się na problemach, które nie są tzw “wąskim gardłem” – przez to nie optymalizujemy naszych czynności tylko skupiamy się na rzeczach mniej istotnych.

  • Co z tego, że lekarz udrożni nos pacjenta (rozwiąże problem z oddychaniem), jeśli pacjent umrze z powodu gorączki?
  • Co z tego, że organizacja będzie realizowała projekty na czas jeśli nie będzie wystarczająco dużo klientów by móc utrzymać działalność?
  • Co z tego, że zoptymalizujemy wydajność modułu A o 50%, skoro 90% zawieszeń systemu wywołuje moduł B?

Te i wiele innych pytań powinien zadać sobie każdy zarządzający – czy to firmą, czy projektem. BTW, podałem przykład bazujący na zdrowiu – nie jestem specjalistą w tym temacie, mechanizmy, które opisałem mogą faktycznie funkcjonować inaczej. Chodziło mi natomiast o przekazanie pewnej idei – mam nadzieję, że mi się udało 🙂

Optymalizacja lokalna i globalna

Jak to mówią “dobra optymalizacja nie jest zła” – zgodzę się z tym. Należy jedynie dodać, że nie każda optymalizacja jest potrzebna. Wcześniej przytoczyłem przykład firmy IT, która ma (drobny) problem z realizacją projektów na czas oraz z pozyskiwaniem nowych klientów. Jeśli zarządzajacy firmą zajmą się rozwiązywaniem problemu terminowości projektów (będą chcieli skrócić czas realizacji) – będzie to optymalizacja lokalna. Faktycznie uda nam się poprawić pewne parametry, ale nie zajmiemy się tzw “wąskim gardłem”. Natomiast, gdyby osoby odpowiedzialne za firmę zajęły by się rozwiązaniem problemu pozyskiwaniem nowych klientów – byłaby to optymalizacja globalna. Mając nowych klientów – problem terminowości projektów jest już mniej istotny. Stanie się on “wąskim gardłem” dopiero w momencie rozwiązania wszystkich ważniejszych problemów. Firma z klientami i opóźnionymi projektami może funkcjonować (mamy tego wiele przykładów), natomiast firma z projektami na czas i zbyt małą liczbą klientów już średnio ;).

Wdrożenie Scrum…

Spotkałem się ze stwierdzeniem, że “nie ma nic bardziej nieefektywnego niż robienie efektywnie czegoś, co nie powinno być robione wcale”. Podobnie jest z wdrożeniem Scrum przez mojego czytelnika ponieważ ma problem m.in. z terminowością zadań. Prawdopodobnie po przeczytaniu akapitu o teorii ograniczeń i optymalizacjach wcześniejsze zdanie wydaje ci się absurdalne – jednak nie było takie w momencie stawianej tezy.

Kiedyś podobny problem z terminowością zadań udało mi się rozwiązać w zupełnie inny sposób – u źródeł. Poprzez poprawienie relacji z klientem – łatwiej i chętniej można było zebrać wymagania projektowe. To z kolei przyczyniło się do tworzenia dokładniejszych analiz przedwykonawczych. Skutkiem wcześniejszych akcji była terminowość programistów – dokładniej wiedzieli co mają zrobić. W mojej sytuacji wdrożenie Scrum lub jakiejkolwiek innej metodologii nic by nie zmieniło. Problem leżał zupełnie w innym miejscu. Nie twierdzę, że nie ma takich środowisk, w których wdrożenie metodologii nie rozwiązałoby problemów bo właśnie w tym celu zostały zaprojektowane. Jednak wdrożenie konkretnej metodologii nie jest łatwe – zespół musi być nauczony etosu pracy, który narzuca konkretna metodologia.

Według mnie Scrum jest szczególnie trudną metodologią do wdrożenia. Często kierownicy projektu nie rozumieją, że zespoły musza być samo organizujące się. Kierownicy projektu mają problemy, żeby sami być agile, podczas gdy chcą prowadzić projekt tą metodologią. Problemy istnieją też wśród programistów, którzy często niechętnie dają się przekonać do stand up’ów nie widząc w nich większego sensu. Więcej błędów podczas wdrożenia tej metodologii opisałem w wpisie, gdzie poruszyłem kwestię dlaczego większość projektów prowadzonych jest w Scrum. Tak więc decydując się na wdrożenie metodologii nie znając faktycznej przyczyny naszych problemów może nas tylko pogrążyć. Będziemy mieć więcej problemów związanych z wdrożeniem nowej metodologii. Nie jest łatwo stać się agile z dnia na dzień.

Podsumowanie

Jeśli masz mnóstwo “małych” problemów podczas zarządzania projektem i uważasz, że wdrożenie metodologii je rozwiąże – zastanów się nad tym dwa razy. Bardzo często jest to zamiatanie problemów pod dywan i tworzenie nowych z powodu trudnych wdrożeń metodologii (często na nieprzygotowanym zespole). Staraj się odnaleźć wąskie gardło w swoich procesach i spróbować ją optymalizować.


Jeśli wpis ci się spodobał, udostępnij go lub śledź mnie na facebooku, twitterze, LinkedIn lub subskrybuj mój kanał na YouTube – twoja interakcja motywuje do dalszego pisania! Jeśli interesują cię podobne treści, dopisz się do newslettera (na górze strony) :).


Udostępnij

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *