niedziela, 22 lipca 2007

"Pożyczanie" ludzi... tylko na 2 godzinki

W nawiązaniu do ostatniego wpisu na temat przerywania iteracji tym razem sprawa powiązana. Występująca w praktyce nawet częściej niż dylematy z tamtego wpisu. Sytuacja najczęściej zdarza się w środku iteracji i w skrócie polega na tym, że do kierownika projektu przychodzi inny kierownik i prosi (żąda?), żeby jedna z osób zaangażowanych w nasz projekt "na chwilę" pomogła/poprawiła coś w projekcie tego człowieka, bo tam "się pali". Zwykle taka prośba jest dodatkowo okraszona zapewnieniami, że to tylko na chwilkę, maksymalnie dwie godziny.

I co zrobić w takiej sytuacji? Nie zgadzać się. Powodów jest kilka. Po pierwsze logika wskazuje, że takie sprawy nigdy nie kończą się na dwóch godzinach. Osoba z naszego zespołu musi przerwać pracę, przypomnieć sobie co robiła wtedy, dotrzeć do dokumentów czy też plików na których wtedy pracowała, intelektualnie "wdrożyć" się w problem, rozwiązać go i wytłumaczyć drugiemu zespołowi co się stało, jakie było rozwiązanie i dlaczego tak. Później musi pozamykać tamte sprawy i po raz kolejny mentalnie przestawić się na nasz projekt. W dwie godziny to jest niewykonalne. Zajmuje minimum jeden dzień roboczy, a w większości przypadków dwa: pierwszy dzień na przestawienie się na tamten projekt i wykonanie zadania, drugi dzień na odpowiadanie na pytania tamtego zespołu i intelektualny powrót do naszego projektu. Dwa dni mentalnej nieobecności członka zespołu w czasie iteracji to 10% jej efektywnego czasu pracy (zakładając, że iteracja trwa 4 tygodnie). Takich strat się zwykle nie odrobi. Jak przyjdzie to Was jakiś kierownik z taką prośbą to grzecznie spytajcie się go czy on pożyczyłby Wam jedną z jego osób na 10% czasu trwania projektu. Aby kogoś zrozumieć należy bowiem często najpierw wejść w jego buty.

Powyższe uzasadnienie jest czysto praktyczne i zdroworozsądkowe. Jest też uzasadnienie z punktu widzenia metodyki. Otóż zespół pracujący nad projektem zwinnym powinien być widziany z zewnątrz jako jedna jednostka. Zespół pracujący w środowisku samoorganizujacym się nie może być dzielony na mniejsze kawałki. To zespół zobowiązuje się przed klientem do wykonania pewnego zakresu prac, zespół je realizuje i zespół jest z tego rozliczany. Nie można wyjąć kawałka tego zespołu i oczekiwać że reszta dostarczy to co obiecała. To tak jakby facetowi grającemu na pianinie powiedzieć, że lewą ręką ma robić coś innego (np. liczyć na kalkulatorze) i nadal oczekiwać, że będzie grał tak samo dobrze. Nie da rady. W takich przypadkach rolą kierownika projektu zwinnego jest aby po pierwsze jasno komunikować na zewnątrz, że zespół ma być widziany jako całość a po drugie jak tylko można chronić zespół przed pomysłami typu wypożyczanie ludzi "na chwilkę".

Mając oba powyższe na uwadze co w związku z tym zrobić jeżeli faktycznie okazuje się, że osoba pracująca w naszym zespole ma tak unikalne umiejętności, że "musi" popracować przy innym projekcie? Cóż, w takim razie należy odwołać się do wyższego kierownictwa. Na tyle wysokiego, aby miało zwierzchnictwo i nad Waszym projektem i nad tymi aktywnościami, które tak nagle potrzebują Waszych zasobów. Niech ona/on zadecyduje co z biznesowego punktu widzenia jest ważniejsze. Jeżeli naprawdę inne aktywności są biznesowo ważniejsze od Waszego projektu to należy się z tym pogodzić, oddać osoby i wygasić aktualną iterację waszego projektu. Wygasić dlatego, że na podstawie decyzji zewnętrznych czynników (odpowiednio wysoko postawiony menedżer) dostaliście informację, że z punktu widzenia firmy znikło uzasadnienie biznesowe Waszej iteracji - coś innego jest ważniejsze. Wygasić trzeba również dlatego, że zespół który zobowiązał się dostarczyć coś nie jest już tym samym zespołem, który miałby dokończyć pracę. Od decyzji sponsorów będzie też zależało co z Waszym projektem dalej będzie: kończymy zupełnie czy rozpoczynamy nową iterację ze zmienionym zespołem.

Czy to oznacza, że nigdy nie należy pomagać? Owszem jak najbardziej należy. Pomoc można zaplanować na czas następnej iteracji. A w przypadku "malutkich" próśb o pomoc moja zasada brzmi: jeżeli można to załatwić przez telefon w czasie mniejszym niż 15 minut to ok, w innych przypadkach niestety nie.



PS. Dla lubiących myśleć: przeanalizujcie sytuację, gdy nagle okazuje się, że jeden z Waszych ludzi "musi" się znaleźć gdzie indziej aby tam ratować sytuację z punktu widzenia Celu nr 2

2 komentarze:

Kuba pisze...

Hmmm.. wygaszanie iteracji z powodu decyzji wysokiego kierownictwa to trochę radykalne podejście. Gdy jedna z osób pójdzie na chorobowe, to także należy wygasić projekt? Zima to zła pora dla projektów :)

Waldemar Tomasz pisze...

Też mi to tutaj trochę dziwnie wygląda. Takie generalizowanie. To wszystko zależy od konkretnego przypadku. Ja bym raczej powiedział, że "nie zgodzić się" jeżeli będzie to miało ewidentny wpływ na rezultat naszej iteracji.