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 wartości.
Jak oszacować koszty integracji systemu płatności: środowisko testowe a środowisko produkcyjne, zwroty środkó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ę rzeczywistym oszacowaniem.
Jak oszacować wymagania systemu powiadomień: kanały, preferencje, eliminacja duplikatów i gwarancje dostarczenia. Dlaczego „wysłanie wiadomości e-mail” niepostrzeżenie staje się projektem trwającym sześć tygodni.
Jak oszacować proces przesyłania pliku: limity 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, możliwość drążenia danych, uprawnienia. Sam wykres jest prosty; prawdziwą pracą jest stworzenie leżącego u jego podstaw potoku danych.
Jak oszacować test niestabilny: dlaczego potrzebne są dwa oszacowania, a nie jedno, oraz dlaczego wyznaczenie ram czasowych jest lepszym rozwiązaniem niż spieranie się 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 od odpowiedzi, która 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 migracji danych: przenoszenie danych między systemami, uzgadnianie danych i przełączenie. Przetwarzanie trwa godzinę; czyszczenie danych trwa 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. Proszę najpierw zapoznać się z dziennikami zmian, a następnie oszacować nakład pracy związany z tym, co Państwo znaleźli.
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 rejestrze zadań jako refaktoryzacja.
Jak oszacować koszty wymiany API innego dostawcy: luki semantyczne, równoległe działanie 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 miał zastrzeżeń.
Jak oszacować zakres 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 związane 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ć wdrożenie flagi funkcji: etapy procentowe, 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 określonym rezultatem, a nie zadanie. Jak zapobiec sytuacji, w której „spike” po cichu przekształci się w pracę, która pierwotnie miała zostać uwzględniona w zakresie projektu.
Jak oszacować prototyp: jest to produkt stworzony w celu zdobycia wiedzy, a nie do użytku. Jak zapobiec sytuacji, w której kod przeznaczony do wyrzucenia 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 analiza danych. Jak określić wielkość budżetu, a nie prognozę.