PiszeO.IT

Jak przekształcić chaos w sukces: Lekcje zarządzania projektami

Wyobraźcie sobie projekt w firmie X na skraju upadku. Zespół programistów, którzy mieli stworzyć aplikację do zarządzania czasem, sami nie potrafią dotrzymać terminów. Ironia losu? Zdecydowanie. Ale to, co wydarzyło się później, zmieniło nie tylko los tego projektu, ale może zmienić także sposób, w jaki Wy podchodzicie do zarządzania projektami.

Kryzys w firmie X

W małym, wypełnionym pustymi kubkami po kawie biurze, Marek (team leader) i Ania (project managerka) siedzą nad wydrukowanym harmonogramem projektu. Jest piątek, późne popołudnie. Reszta zespołu dawno poszła do domów, ale oni nie mogą. „Jeśli nie dostarczymy tego w ciągu miesiąca, możemy się pakować,” wzdycha Ania. „Zespół biznesowy nie da nam więcej czasu.” Marek patrzy na harmonogram. Według ich szacunków potrzebują jeszcze co najmniej dwóch miesięcy. Każde zadanie ma swój „bezpieczny” bufor, a i tak regularnie przekraczają terminy.

Nieoczekiwany mentor

W tym momencie kryzysu, do biura wchodzi ktoś, kto ma zmienić wszystko. To Tomek – starszy programista, którego Marek zna z poprzedniej pracy. Gdy słyszy o ich problemach, mówi coś, co brzmi jak zaklęcie: „Słyszeliście kiedyś o metodzie łańcucha krytycznego?”

Tomek wprowadza zespół w tajniki metody, podkreślając kluczową zasadę: „Zapamiętajcie, nieprzewidywalność to norma, nie wyjątek. Wasza metoda planowania musi to uwzględniać.” Zespół zaczyna od nowa planować projekt:

  • Analiza wymagań: z 5 dni skracają do 3.
  • Projektowanie architektury: z 7 dni do 4.
  • Implementacja backendu: z 15 dni do 10.
  • Implementacja frontendu: z 12 dni do 8.
  • Integracja i testy: z 10 dni do 6.

„Teraz dodajcie bufor na końcu projektu – 50% czasu łańcucha krytycznego,” instruuje Tomek. „I pamiętajcie – najpierw najtrudniejsze zadania i niewiadome.” Nagle ich dwumiesięczny projekt kurczy się do 31 dni plus 15 dni bufora. Brzmi jak magia? Ale to dopiero początek.

Wdrożenie i pierwsze wyzwania

Poniedziałkowy poranek, gdy zespół słyszy o nowym planie. Sceptycyzm wisi w powietrzu. Tomek patrzy na nich i mówi: „Znacie syndrom studenta? Większość z nas odkłada pracę na ostatnią chwilę. W metodzie łańcucha krytycznego musimy dać z siebie wszystko od samego początku.” To była trudna lekcja. Pierwszego dnia, zamiast powolnego rozruchu, rzucili się na najtrudniejsze zadania. Ich zdziwienie było ogromne, gdy odkryli, że rozwiązywanie problemów na początku projektu, gdy mają jeszcze dużo energii i świeże spojrzenie, jest o wiele efektywniejsze.

Nieoczekiwane korzyści

Po dwóch tygodniach zauważyli coś niesamowitego. Nie tylko trzymali się harmonogramu, ale ich aplikacja stawała się… lepsza. Paweł, backend developer, wpada do biura z nowym pomysłem: „Słuchajcie, zamiast pisać własny system raportowania, możemy użyć tego gotowego narzędzia. Zaoszczędzimy masę czasu i będzie bardziej niezawodne.” Ania dodaje: „A może zamiast rozbudowanego dashboardu na start, zrobimy coś prostszego? Użytkownicy i tak korzystają głównie z kilku podstawowych funkcji.” Presja czasu i skupienie na trudnych zadaniach od początku zmusiły ich do myślenia poza schematami. Co więcej, gdy pojawił się nieoczekiwany problem z integracją API, mieli już rozwiązane najtrudniejsze kwestie i mogli elastycznie przesunąć zasoby.

Zarządzanie zależnościami

Kolejnym wyzwaniem było zarządzanie zależnościami od innych zespołów. Marek i Ania zdali sobie sprawę, że muszą skoordynować swoje działania z działem marketingu i zespołem UX. „Musimy uwzględnić ich wkład w naszym harmonogramie,” zauważył Marek.

Oto kilka kluczowych kroków, które podjęli, aby zarządzać tymi zależnościami efektywnie:

  1. Mapowanie Zależności: Najpierw zidentyfikowali wszystkie zadania, które wymagały współpracy z innymi zespołami. Określili, które etapy projektu były najbardziej krytyczne i wymagały dostarczenia zasobów lub informacji od zewnętrznych zespołów.
  2. Spotkania Synchronizacyjne: Regularne spotkania synchronizacyjne z liderami innych zespołów, aby upewnić się, że wszyscy są na tej samej stronie i mogą szybko reagować na wszelkie zmiany w planie.
  3. Bufory na Zależności: Wprowadzenie buforów czasowych specyficznych dla zadań zależnych od innych zespołów. Dzięki temu mogli lepiej zarządzać ryzykiem opóźnień wynikających z problemów niezależnych od ich zespołu.

Przykład zastosowania

Jeśli zespół developerski zależy od zespołu UX, który ma dostarczyć gotowe projekty graficzne do implementacji, w harmonogramie umieszczają bufor czasowy. Jeśli zespół UX ma dostarczyć projekty graficzne w ciągu 10 dni, zespół developerski zakłada, że projekty muszą być gotowe w ciągu 5 dni (50% wcześniejszy termin). W ten sposób, nawet jeśli zespół UX napotka niewielkie opóźnienia, zespół developerski ma dodatkowy czas na dostosowanie się bez wpływu na cały harmonogram projektu.

  1. Priorytetyzacja Komunikacji: Wyznaczenie odpowiedzialnych osób do zarządzania komunikacją z każdym z zespołów zewnętrznych. Każda taka osoba była odpowiedzialna za monitorowanie postępów i szybkie rozwiązywanie problemów.
  2. Elastyczność w Planowaniu: Przygotowanie alternatywnych planów na wypadek opóźnień w dostarczeniu zasobów przez inne zespoły, co pozwalało na elastyczne zarządzanie harmonogramem i minimalizowanie wpływu opóźnień na cały projekt.

Zarządzanie realizacją zadań indywidualnych

Ważnym aspektem efektywnego zarządzania projektem jest również umiejętne zarządzanie czasem własnych zadań. Zespół wprowadził następujące kroki, aby lepiej zarządzać czasem:

  1. Tworzenie listy priorytetów: Każdy członek zespołu tworzył listę zadań do wykonania, ustalając ich priorytety zgodnie z ważnością i terminem wykonania.
  2. Monitorowanie postępów: Regularne monitorowanie postępów w realizacji zadań i dostosowywanie planów w miarę potrzeb.
  3. Praca w blokach czasowych: Praca w blokach czasowych z przerwami, co pozwalało na lepszą koncentrację i efektywność.
  4. Unikanie multitaskingu: Skupianie się na jednym zadaniu naraz, aby zminimalizować ryzyko błędów i zwiększyć produktywność.
  5. Zakres można zmienić: Warto pochodzić do realizacji zadań kreatywnie, szukać alternatyw i uproszczeń

Sukces i refleksje

Miesiąc później. Aplikacja jest gotowa, przeszła testy i czeka na deploy. Co więcej, zespół ma jeszcze 5 dni bufora na dopracowanie szczegółów przed prezentacją dla zespołu biznesowego. Marek patrzy na Anię i mówi: „Wiesz, co jest najlepsze? Nie tylko zdążyliśmy na czas. Stworzyliśmy coś lepszego niż planowaliśmy na początku.” Ania kiwa głową: „I nauczyliśmy się, jak radzić sobie z niepewnością i zmiennością w projektach. To bezcenne.”

Lekcje na przyszłość

Ta przygoda nauczyła zespół firmy X kilku ważnych rzeczy:

  • Agresywne estymacje zmuszają do szukania innowacyjnych rozwiązań.
  • Wspólny bufor projektu daje większą elastyczność niż indywidualne bufory zadań.
  • Koncentracja na łańcuchu krytycznym pomaga skupić się na tym, co naprawdę ważne.
  • Presja czasu może być katalizatorem kreatywności i efektywności.
  • Regularne monitorowanie zużycia bufora daje realny obraz postępu projektu.
  • Nieprzewidywalność jest normą – metoda planowania musi to uwzględniać.
  • Rozpoczynanie od najtrudniejszych zadań i niewiadomych redukuje ryzyko projektu.
  • Unikanie syndromu studenta i dawanie z siebie wszystkiego od początku projektu prowadzi do lepszych rezultatów.
  • Zarządzanie zależnościami między zespołami jest kluczowe dla sukcesu całego projektu.

Feedback od zespołu

Po zakończeniu projektu, zespół zebrał feedback od wszystkich zaangażowanych stron, który podkreślił kluczowe aspekty sukcesu:

Zespół Developerski:

  • Marek (Lead Developer): „Dzięki wprowadzeniu metody łańcucha krytycznego, nauczyliśmy się lepiej zarządzać czasem i priorytetami. Praca nad najtrudniejszymi zadaniami na początku naprawdę zmieniła nasze podejście.”
  • Ania (Project Managerka): „Bufory czasowe na końcu projektu oraz dla zależności między zespołami pozwoliły nam na większą elastyczność i lepsze zarządzanie niepewnością.”
  • Paweł (Backend Developer): „Nowe podejście zmusiło nas do myślenia poza schematami i szukania innowacyjnych rozwiązań. To była ciężka praca, ale opłaciła się.”

Zespoły Zależne:

  • Kasia (Marketing): „Regularne spotkania synchronizacyjne i jasne komunikowanie priorytetów pomogły nam lepiej zrozumieć potrzeby zespołu developerskiego i dostarczyć potrzebne elementy na czas.”
  • Tomek (UX Designer): „Współpraca z zespołem developerskim była bardziej efektywna dzięki wprowadzeniu buforów czasowych na zadania zależne. Wiedzieliśmy, kiedy nasze interakcje będą krytyczne dla sukcesu projektu.”

Epilog

Po pół roku aplikacja firmy X zdobyła tysiące zadowolonych użytkowników, a projekt zakończył się sukcesem. Najważniejszą zmianą była jednak przemiana w sposobie pracy zespołu, co zaowocowało lepszą organizacją i skuteczniejszym zarządzaniem kolejnymi projektami.

#ProjectManagement #CriticalChain #SoftwareDevelopment #ProductivityHacks

P.S. Jeśli ta historia Was zainspirowała, polecam książkę „Critical Chain” Eliyahu M. Goldratta. Wyobraźcie sobie, jak mogłaby zmienić sposób, w jaki pracujecie nad swoimi projektami!

Miłosz Karolczyk

Nazywam się Miłosz Karolczyk i tworzenie oprogramowania jest moją pasją.

Jestem gorącym zwolennikiem architektury ewolucyjnej, podejścia Domain Driven Design, Event Stormingu oraz modularyzacji. Uwielbiam proste rozwiązania i szczupłe podejście do zarządzania oraz tworzenia produktów.