W projekcie jest wiele zadań: jeśli nie są one ustrukturyzowane, projekt staje się bałaganem z zadań i podzadań. Developerzy pracują w kilku obszarach jednocześnie, wszystkie zadania są rozpoczęte, a żadne z nich nie udaje się ukończyć na czas. W rezultacie developerzy spędzają 70% swojego czasu robiąc wszystko i nic w tym samym czasie.
Aby uniknąć chaosu, ważne jest nie tylko zapisywanie, ale i ustalanie priorytetów. Wtedy ludzie nadążają pracować, a kierownik zespołu może monitorować wykonanie i ogólnie rozumieć, co się dzieje. Ważne jest też pozbycie się zbędnych zadań o niskiej wartości.
Jeśli nie zajmujesz się tym, prawdopodobnie piątą część pracy wykonujesz absolutnie po nic, można było tego nie robić, i status projektu nie zawsze będzie odpowiadał temu, co widzisz w Jira i statusach zadań.
Trzy ważne punkty, które pomogą uporządkować postępy w projekcie to strukturyzacja, sortowanie i usuwanie zbędnych zadań.
Ustrukturyzuj pracę
Klienci i technicy potrzebują różnych poziomów wyjaśnienia zadań. Jeśli pokażesz biznesowi zadanie dotyczące urządzenia API, prawdopodobnie nie zostaniesz zrozumiany. Dlatego rozdziel poziomy zadań dla biznesu i dla zespołu. Wygodne narzędzie do tego, które działa w większości przypadków, to – user story.
Staraj się nie robić całego projektu „jednym ciastem”, tylko dostarczać go po kawałku – iteracyjnie. Ukierunkuj siły na uzyskanie działającego produktu przy każdej dostawie.
Przeprowadź lokalne planowanie sprintów na podstawie zadań technicznych. Jeśli już pojawiło się zamieszanie z zadań, lepiej przeplanować sprinty i przerobić zadania tak, aby można było je kontrolować.
I oczywiście osobną rzeczą, która pomaga radzić sobie z procesami w prawie wszystkich projektach są praktyki sortowania.
Sortuj zadania
Ten etap jest konieczny, aby uniknąć zbędnej pracy, zawsze wnosić do projektu maksymalną wartość. Aby ułatwić pracę z zadaniami i osiągnąć wymierne rezultaty ważne są trzy czynniki: sprecyzowanie zadań, podział/łączenie i ranking.
Sprecyzowanie
Często zdarza się, i myślę, że wielu kierowników projektu przekonało się o tym w praktyce, że w trakcie pracy nad projektem zmieniają się zadania i potrzeby. Ludzie mogli myśleć o jednej rzeczy, a potem pomyśleć o niej głębiej lub spojrzeć na nią w inny sposób.
Zdarza się też, że zadania zmieniają się nie w momencie omawiania wymagań, a miesiąc po stworzeniu dizajn makietu. Ludzie mogli po raz pierwszy naprawdę uchwycić istotę projektu dopiero na tym etapie. To właśnie wtedy do głowy klienta przychodzą dodatkowe, naprawdę ważne, myśli.
Więc nie jest faktem, że wymagania, które istnieją od dłuższego czasu są tym, co jest potrzebne. Jeśli kierownik projektu nie będzie systematycznie precyzował zadań, może się później okazać, że klient powie: „Chciałem czegoś innego”, a ty będziesz obiektywnie nieświadomy i zakłopotany, jak do tego doszło.
Podział/łączenie
Nielogicznie posortowane zawsze można połączyć, podzielić, ponownie posortować. Istnieją zadania zrozumiałe, jak np. opracować stronę autoryzacyjną. Takie zadanie można po prostu podzielić na elementy techniczne i nietechniczne, łatwo je wykonać i zamknąć.
Ale są zadania trudne do zrozumienia, jak np. zrobić system przetargów. Połowa strony – system przetargów, i nie jest jasne, jak rozwiązać takie zadanie. Dlatego taka praca musi być wcześniej podzielona na mniejsze części.
Ogólnie rzecz biorąc, doświadczenie pokazuje, że prawie wszystko można podzielić. Ważne jest, aby zrozumieć, dlaczego dzielimy i co zamierzamy zrobić z tymi częściami.
Ranking
Po sprecyzowaniu i ustrukturyzowaniu, pozostaje tylko ranking. Aby to zrobić, oceń każde zadanie według dwóch parametrów: „korzyść” i „ilość wysiłku”. Celem rankingu jest wyrażenie, w jakichś jednostkach miary, jak wiele korzyści zadanie wnosi do projektu i ile wysiłku potrzeba, aby je wykonać. Nie ma znaczenia, jakich jednostek użyć, czy będą to godziny, czy story points, tak samo jak każdemu wyrażać priorytet od 1 do 5.
Następnie umieść po kolei:
- zadania nieskomplikowane, o najwyższej wartości, zajmują pierwsze miejsce;
- trudniejsze, ale o tej samej wartości, nieco niżej;
- zadania najtrudniejsze, czasochłonne i najmniej wartościowe trafiają na koniec listy.
Najłatwiej będzie ułożyć listę w kolejności malejącej, jeśli „wartość-priorytet” zostanie podzielona przez „ocenę-pracochłonność”.
Ustalanie priorytetów najlepiej przeprowadzić wspólnie z klientem: skontaktować się, zasugerować opcję, omówić, uzgodnić.
Jeśli masz żywy scrum i klient lub właściciel produktu jest obecny w sprintach, to jest większe prawdopodobieństwo, że w zadaniach będzie porządek, bo w scrumie klient często sam zarządza projektem. Sytuacje niekontrolowane są bardziej prawdopodobne tam, gdzie jest jakiś Fixed Price i niezbyt znaczące kwoty.
Nie rób nic zbędnego
Zadaniem kierownika projektu jest uporządkowanie projektu w dowolny, wygodny sposób. Jeśli praca jest źle zaplanowana i prowadzi to do marnotrawstwa, niepotrzebnej komunikacji, przestojów, restartów, to może warto przerobić projekt.
Niezależnie od tego, co mówi klient lub jaką presję psychologiczną wywiera na kierownika i firmę wykonawcy, zawsze jest kilka rzeczy, które można zrobić prawie bez konsekwencji:
- Zabierz jedną piątą nakładu pracy w projekcie. Zawsze są zadania, które tak naprawdę nie są potrzebne, a coś można zrobić mniejszym nakładem pracy lub wrócić do zadania już po MVP w pierwszej wersji.
- Sformatować cały projekt: na nowo posortować etapy, iteracje, milestone, kolejność prac, zwłaszcza jeśli są one nieuwzględnione. Możliwe, że wykonanie takiego zabiegu jest bezużyteczne w projekcie Fixed Price na 100 tysięcy lat pracy specjalistów. W innych przypadkach należy próbować zrobić porządek.
- Stworzyć dług techniczny jest rozwiązaniem dla oszczędności czasu, a później trzeba go usunąć.
- Jeśli coś trzeba zrobić pilnie, można na nowo podzielić zadania i wyrzucić część niekrytycznych. Na przykład masz system autoryzacji, a w nim – login, hasło, prawa dostępu, form-walidator. System praw dostępu można tymczasowo zredukować i zaoszczędzić czas.
Jak to wygląda na prawdziwym przykładzie:
Jest właściciel produktu, który mniej więcej raz na dwa tygodnie pojawia się na czacie kierownika projektu i mówi: „Dzisiaj mamy nowy biznes i potrzebuje on nowej cechy oprogramowania. Trzeba ją wdrożyć do poniedziałku rano, bo mam z nimi spotkanie w poniedziałek o 9.00. Jeśli będzie gotowa, to wszystko jest w porządku, biznes ją kupuje, jeśli nie, to nie będę zadowolony”.
Kierownik rozumie, że zadanie zajmie 2 tygodnie, a nowa cecha oprogramowania jest potrzebna na poniedziałek. W takim przypadku możesz stworzyć dług techniczny: zrobić skośne i krzywe rozwiązanie, ale do poniedziałku. Pamiętaj tylko, aby zarejestrować dług techniczny jako zadanie i zająć się nim później.
Nie wszyscy kierownicy projekru używają tych prostych manipulacji, ale w moim doświadczeniu nie warto robić zadań o niskiej wartości. Jeśli widzisz coś niepotrzebnego, możesz przynajmniej spróbować to usunąć lub zmniejszyć. Lub, alternatywnie, potwierdź, że nadal trzeba będzie wykonać określone zadanie, ale można go nie robić teraz, tylko później.
W każdym razie regularne sortowania i rewizja zadań ulepsza proces, usuwa niepotrzebną aktywność z projektu i sprawia, że wszyscy pracują szybciej.
Temat planowania i kontroli nie zmieści się w jednym artykule. Jeśli więc zależy Ci na systematycznej wiedzy, sprawdź program o planowaniu i ryzyku, o wprowadzaniu zmian i kontroli jakości.