Co mierzy ocena długu technicznego?
Ward Cunningham ukuł metaforę długu technicznego w swoim raporcie z doświadczeń przedstawionym na konferencji OOPSLA w 1992 roku, pisząc, że „wypuszczenie kodu napisanego po raz pierwszy jest jak zaciągnięcie długu”. Niewielki dług może przyspieszyć pracę. Kłopoty zaczynają się, gdy nie jest spłacany, a każda godzina spędzona na obchodzeniu nie do końca poprawnego kodu staje się odsetkami. Skanery kodu mierzą kod. Ta ocena mierzy to, z czym zespół żyje na co dzień: czy widzicie dług, jak bardzo spowalnia dostarczanie, w jakiej kondycji są waszym zdaniem kod i systemy oraz czy go spłacacie. Każdy ocenia poszczególne stwierdzenia indywidualnie, a potem omawiacie najniższe wyniki na retrospektywie i ustalacie, co naprawić najpierw.
Wymiary
Widoczność
Czy zespół wie, gdzie jest jego dług, i traktuje go jako prawdziwą pracę.
Znane punkty zapalne
Wiemy, które części naszego systemu są najbardziej obciążone długiem.
Śledzony razem z inną pracą
Dług jest śledzony w tym samym backlogu co funkcje i błędy.
Znany koszt
Potrafimy wyjaśnić, ile czasu lub ryzyka kosztują nas nasze największe długi.
Wpływ na dostarczanie
Jak bardzo dług spowalnia pracę, którą zespół stara się dostarczyć.
Tempo pracy nad funkcjami
Dług rzadko spowalnia funkcje, które budujemy.
Bezpieczne zmiany
Zmiana w jednej części naszego systemu rzadko psuje część z nią niezwiązaną.
Szybkie i niezawodne buildy
Nasze buildy i testy są szybkie i niezawodne.
Kondycja kodu i systemów
Jak łatwo pracuje się dziś z kodem, systemami i zależnościami.
Łatwość zmian
Większość naszego kodu jest łatwa do zrozumienia i zmiany.
Aktualne zależności
Nasze zależności i platformy są w miarę aktualne.
Testy wspierają refaktoryzację
Nasze testy dają nam pewność przy refaktoryzacji.
Spłacanie długu
Czy zespół robi stałe, uzgodnione postępy w zmniejszaniu długu.
Zarezerwowany czas
Regularnie rezerwujemy czas na spłatę długu.
Rejestrowanie świadomego długu
Gdy świadomie zaciągamy dług, zapisujemy go wraz z planem spłaty.
Wspólne priorytety
Produkt i inżynieria są zgodni co do podziału czasu między funkcje a dług.
Kiedy należy skorzystać z tej kontroli stanu zdrowia
- Gdy praca nad funkcjami trwa dłużej, niż powinna, a zespół wciąż wskazuje na kod jako przyczynę.
- Przed planowaniem kwartalnym lub planowaniem roadmapy, aby uzgodnić, ile czasu przeznaczyć na spłatę długu.
- Po dużym wysiłku lub napiętym terminie, aby zapisać skróty, na które poszliście, zanim o nich zapomnicie.
Porady i wskazówki
- Zacznijcie od grupy z najniższym wynikiem. Niska widoczność oznacza, że przede wszystkim potrzebujecie listy długów. Wysoka widoczność przy słabej spłacie wskazuje na problem z planowaniem, a nie z kodem.
- Zaproście product managera do dyskusji, nawet jeśli oceniają tylko inżynierowie. Podział czasu między funkcje a dług to wspólna decyzja.
- Zestawcie wyniki z danymi, które już macie, np. czasami buildów, liczbą niestabilnych testów czy przyczynami incydentów. Ocena pokazuje, gdzie boli, a dane pokazują, jak bardzo.
- Przeprowadźcie ją razem z Samooceną metryk DORA, Oceną dojrzałości DevOps lub Modelem dojrzałości doskonałości inżynierskiej, aby zobaczyć, jak dług wiąże się z dostarczaniem i praktykami inżynierskimi.
- Powtarzajcie ją co kwartał. Rosnący wynik w stwierdzeniach z grupy „Spłacanie długu” to najwcześniejszy sygnał, że wasz plan działa.
Najczęściej zadawane pytania
Jak mierzyć dług techniczny?
Jakie są cztery rodzaje długu technicznego?
Ile czasu powinniśmy poświęcać na dług techniczny?
Jak wyjaśnić dług techniczny product managerom?
Jaki jest przykład długu technicznego?
Kto ukuł termin „dług techniczny”?
Based on Ward Cunningham, 'The WyCash Portfolio Management System,' OOPSLA '92 Experience Report (1992).