Przykłady obliczeń z rozwiązaniami
W rozmowach dotyczących szacowania czasu przechodzą Państwo krok po kroku przez rzeczywiste scenariusze (logowanie, płatności, migracje, okresy szczytowego obciążenia), a także omawiają Państwo pytania, na które należy uzyskać odpowiedzi, zanim ktokolwiek poda swoją ocenę.
Jak oszacować zakres funkcji logowania: ukryte aspekty (resetowanie hasła, uwierzytelnianie dwuskładnikowe, federacja, ograniczanie częstotliwości, sesje) oraz pytania, na które należy odpowiedzieć przed rozpoczęciem głosowania.
Jak oszacować nakład pracy związany z integracją SSO: praca ta wykracza poza Państwa kod źródłowy i wiąże się ze specyfiką dostawcy tożsamości. Pytania, na które należy odpowiedzieć przed ustaleniem szacunkowej liczby.
Jak oszacować koszty integracji systemu płatności: środowisko testowe a środowisko produkcyjne, zwroty kosztów, webhooki, idempotencja, zakres zgodności z PCI. Rozmowa, którą należy przeprowadzić, zanim ustalona zostanie jakakolwiek kwota.
Jak oszacować funkcjonalność wyszukiwania: trafność, ranking, filtrowanie według kryteriów oraz to, kto jest właścicielem indeksu. Pytania, dzięki którym „dodanie paska wyszukiwania” staje się prawdziwym oszacowaniem.
Jak oszacować wymagania systemu powiadomień: kanały, preferencje, eliminacja duplikatów i gwarancje dostarczenia. Dlaczego „wysłanie wiadomości e-mail” niepostrzeżenie przeradza się w sześciotygodniowy projekt.
Jak oszacować proces przesyłania pliku: ograniczenia rozmiaru, skanowanie antywirusowe, możliwość wznowienia przesyłania, przechowywanie i okres przechowywania. Funkcja „przeciągnij i upuść” to najłatwiejsza część; prawdziwe wyzwanie kryje się pod powierzchnią.
Jak oszacować wymagania dotyczące pulpitu nawigacyjnego: źródła danych, częstotliwość odświeżania, strefy czasowe, drążenie danych, uprawnienia. Sam wykres jest prosty; prawdziwą pracę stanowi potok danych, który za nim stoi.
Jak oszacować test podatny na błędy: dlaczego potrzebne są dwa oszacowania, a nie jedno, oraz dlaczego wyznaczenie ram czasowych jest lepszym rozwiązaniem niż spory o punkty, gdy odpowiedź zależy od tego, co się odkryje.
Jak oszacować błąd, którego nie da się odtworzyć: nie można oszacować nakładu pracy związanego z naprawą, a jedynie nakładu pracy związanego z poszukiwaniem przyczyny. Jak wyznaczyć ramy czasowe dla dochodzenia zamiast głosować nad zadaniem, którego nikt nie może zobaczyć.
Jak oszacować spadek wydajności: praca ta polega głównie na diagnozie, a nie na samym usunięciu usterki. Jak oszacować skalę problemu, gdy przyczyna jest nieznana, a zagrożony jest wskaźnik SLO.
Jak oszacować błąd zgłoszony przez klienta: o wielkości zadania decyduje opis zawarty w zgłoszeniu. Jak odróżnić poprawkę składającą się z jednej linii kodu od działania, które pochłonie cały sprint.
Jak oszacować czas migracji bazy danych: uzupełnianie danych, czas trwania blokady, wdrażanie i przywracanie stanu poprzedniego. Polecenie „Dodaj kolumnę” to jedna linijka kodu SQL; szacunkowy czas to mniej więcej jedna sekunda.
Jak oszacować czas trwania migracji danych: przenoszenie danych między systemami, uzgadnianie danych i przełączenie na nowy system. Przetwarzanie trwa godzinę, a czyszczenie danych – kwartał.
Jak oszacować nakład pracy związany z aktualizacją frameworka: dlaczego zmiana wersji głównej to projekt, a nie zgłoszenie, oraz jak podzielić go na zadania, których nakład pracy można faktycznie oszacować.
Jak oszacować nakład pracy związany z aktualizacją zależności: długotrwały wzrost, za którym kryje się N skoków w jednym zgłoszeniu. Najpierw zapoznaj się z dziennikami zmian, a następnie oszacuj znalezione elementy.
Jak oszacować nakład pracy związany z przebudową CI/CD: prace nad potokiem nie mają wersji demonstracyjnej, więc należy podzielić je na elementy, które można usunąć. Zadanie trwające cały kwartał, które kryje się w backlogu jako refaktoryzacja.
Jak oszacować koszty wymiany API dostawcy zewnętrznego: luki semantyczne, równoległe działanie systemów oraz założenia wynikające ze specyfiki dotychczasowego dostawcy. Nowe API wydaje się jedynie identyczne.
Jak oszacować wdrożenie ograniczeń przepustowości: progi, okresy testowe, komunikacja z klientami. Napisanie kodu zajmuje pół dnia; prawdziwym wyzwaniem jest ustalenie limitów, na które nikt nie będzie narzekał.
Jak oszacować zmianę w systemie projektowym: wdrażanie tokenów, ścieżki wycofywania, zasięg narzędzia Codemod oraz 200 miejsc wywołania, w których wykorzystywany jest stary komponent. Proszę oszacować skalę zmian w dalszych etapach procesu.
Jak oszacować nakład pracy związany z poprawką dotyczącą dostępności: problemy z dostępnością to funkcje, których nie wprowadzono przy pierwszym wydaniu. Dlaczego należy oszacować skalę problemu, a nie pojedynczy przypadek.
Jak oszacować wdrażanie flagi funkcji: procentowe etapy, mechanizmy awaryjne, wskaźniki kontrolne oraz porządkowanie, którego nikt nie planuje. Flaga to niewielki produkt, a nie wdrożenie.
Jak oszacować „spike” badawczy: „spike” to przedział czasowy z konkretnym rezultatem, a nie zadanie. Jak zapobiec sytuacji, w której „spike” po cichu przekształci się w pracę, której zakres pierwotnie miał określić.
Jak oszacować prototyp: jest to produkt stworzony w celu zdobycia wiedzy, a nie do użytku. Jak zapobiec sytuacji, w której prototyp, który miał być jednorazowy, stanie się kodem produkcyjnym, którego nikt nie planował.
Jak oszacować eksperyment z zakresu uczenia maszynowego: to badania połączone z inżynierią. Model jest prosty, a prawdziwą pracą jest obróbka danych. Jak określić wielkość budżetu, a nie prognozę.