dev{ops}: Poziomy dojrzałości REST

The Art of estimation - Sztuka Szacowania Czasu i Kosztów w Projektach

 Szacowanie zadań jest jednym z najbardziej nielubianych zadań deweloperskich. Mimo że jest trudne i często frustrujące, jest kluczowe dla sukcesu każdego projektu. Jak zatem podejść do estymacji w sposób, który minimalizuje ryzyko i maksymalizuje precyzję?












#NoEstimates – Czy to jest droga?



Ruch #NoEstimates zyskał na popularności, argumentując, że estymacje są nieprecyzyjne i prowadzą do dysfunkcyjnych zachowań. Zwolennicy tego podejścia wskazują na kilka kluczowych punktów:

* Nieprecyzyjność szacunków: Szacowanie jest zawsze obarczone ryzykiem błędu, a niewłaściwe estymacje mogą prowadzić do opóźnień i przekroczenia budżetu.
* Wartość dostarczona jest ważniejsza niż koszt: Skupienie się na dostarczaniu wartości dla klienta jest bardziej efektywne niż szacowanie kosztów.
* Dysfunkcyjne zachowania: Szacowanie może prowadzić do micromanagementu i niepotrzebnej presji na zespół.




#YesEstimates – Dlaczego warto szacować?



Z drugiej strony, estymacje są kluczowe w wielu kontekstach, zwłaszcza w dużych projektach i w relacjach biznesowych. Oto kilka argumentów za estymowaniem:

* Precyzyjne szacunki: Dzięki doświadczeniu i odpowiednim technikom szacowanie może być precyzyjne.
* Ważność szacowania kosztów: Estymacje pozwalają na planowanie budżetu i alokację zasobów.
* Relacje biznesowe: Brak szacunków może alienować biznes, który potrzebuje konkretnych danych do podejmowania decyzji.




Którą drogę wybrać?



Odpowiedź brzmi: "To zależy". Wybór między estymowaniem a podejściem #NoEstimates zależy od umowy i trybu pracy uzgodnionego z klientem. Ważne jest, aby dostosować podejście do specyfiki projektu.

Kiedy działa szacowanie?



* Podobne projekty: Kiedy wcześniej robiliśmy coś podobnego.
* Rozumienie działania: Gdy dobrze rozumiemy, jak coś ma działać.
* Mały zakres prac: Gdy zakres prac jest niewielki.
* Stałość wymagań: Gdy w międzyczasie wymagania się nie zmieniają.
* Brak zależności: Kiedy nie musimy czekać na innych.




Jak dobrze oszacować zadanie?



Przy estymowaniu zadania warto zadać sobie kilka kluczowych pytań:

* Jak dobrze znam tę sytuację? Czy wcześniej pracowałem nad czymś podobnym?
* Czy mam wszystkie informacje? Czy posiadam wszystkie niezbędne informacje do wykonania zadania?
* Jakie jest moje doświadczenie w projekcie? Czy jestem nowy w projekcie, czy pracowałem nad nim wcześniej?




Ryzyka związane z estymacją i jak je mitygować



Ryzyko 1 – Coś nowego



* Nowa technologia: Estymowanie jest trudniejsze, gdy pracujemy z nowymi technologiami.
* Innowacyjne rozwiązanie: Nowe, nieprzetestowane podejścia zwiększają ryzyko.
* Nowe atrybuty jakości: Wprowadzenie nowych standardów jakości może komplikować estymację.




Mitygacja:

* Doświadczenie zespołu: Jeśli ktoś z zespołu ma doświadczenie z daną technologią, warto go zaangażować.
* Przykłady w firmie: Poszukiwanie analogicznych przypadków w firmie może pomóc w oszacowaniu.




Ryzyko 2 – Luki w wiedzy



* Ogólne wymagania: Nieprecyzyjne wymagania utrudniają dokładne oszacowanie.
* Niewidoczne luki: Często mogą pojawić się luki, które nie są widoczne na pierwszy rzut oka.
* Nieporozumienia: Różne interpretacje wymagań w zespole mogą prowadzić do błędnych szacunków.




Mitygacja:

* Dzielenie się wiedzą: Regularne spotkania i wymiana wiedzy w zespole.
* Event Storming: Technika pozwalająca na lepsze zrozumienie wymagań.
* Metryki i BDD (Behavior Driven Development): Narzędzia pomagające w precyzyjnym definiowaniu wymagań.




Ryzyko 3 – Duży zakres prac



* Niepodzielne zadania: Duże, skomplikowane zadania są trudne do oszacowania.
* Ingerencje w kod: Rozwiązania, które silnie ingerują w istniejący kod, zwiększają ryzyko.




Mitygacja:

* Ograniczony kontekst: Podział dużych zadań na mniejsze, bardziej zarządzalne części.
* Bloki konstrukcyjne: Korzystanie z modułowych rozwiązań.
* Testy jednostkowe i dymu: Regularne testowanie kodu w małych krokach.




Ryzyko 4 – Zmiana wymagań



Zmieniające się wymagania są jednym z najtrudniejszych wyzwań w estymowaniu. Kluczowe jest, aby na bieżąco aktualizować estymacje i być elastycznym w podejściu do zarządzania projektem.

Ryzyko 5 – Oczekiwanie



Czekanie na zależne zasoby, decyzje czy odpowiedzi od innych zespołów może znacząco wpłynąć na dokładność estymacji. Ważne jest, aby uwzględniać te opóźnienia w swoich szacunkach.

Podsumowanie



Estymacja jest nieodłącznym elementem zarządzania projektami, który, mimo swoich wyzwań, jest kluczowy dla sukcesu. Wybór odpowiedniego podejścia – estymowanie czy #NoEstimates – zależy od specyfiki projektu i wymagań klienta. Kluczem do sukcesu jest zrozumienie ryzyk związanych z estymacją oraz odpowiednia ich mitygacja.


http://dlvr.it/TBBH8M

Komentarze