Powinno istnieć rozróżnienie między praktyką inżynierską a technicznym długiem. Widzę rozwój testów i automatyczne testowanie jako praktyki.
Po zażyciu zasobów kodu, które zostały zbudowane przez zespoły kaskadowe, aktywa nie przeszły automatycznych testów funkcjonalnych ani wydajności. Kiedy przejęliśmy odpowiedzialność za zasoby oprogramowania, wyszkoliliśmy właściciela produktu w Agile i opowiedzieliśmy o praktykach, z których korzystalibyśmy.
Kiedy zaczniemy korzystać z praktyk, zaczniemy identyfikować dług techniczny. W związku z tym, że zidentyfikowano dług techniczny, karty historii technicznej zostały napisane i umieszczone na zaległościach produktu przez właściciela produktu. Deweloper i testerzy oszacowali całą pracę przy użyciu praktyk inżynieryjnych XP (TDD, testowanie automatyczne, programowanie parami itp.). Praktyki te wykryły kruchość w kodzie za pomocą TDD, zautomatyzowanych testów funkcji i wydajności. W szczególności zidentyfikowano istotny problem z wydajnością za pomocą zautomatyzowanego testowania wydajności i profilowania. Zadłużenie było tak duże, że oszacowaliśmy poprawkę na 6 iteracji. poinformowaliśmy właściciela produktu, że jeśli zostaną opracowane nowe funkcje, nie będą mogli korzystać z bazy użytkowników ze względu na niską wydajność aplikacji. Biorąc pod uwagę, że musieliśmy przeskalować aplikację od kilkuset użytkowników do 10-ciu tysięcy użytkowników, właściciel produktu bardzo wysoko ocenił wydajność technicznego długu i ukończyliśmy karty techniczne w oszacowanych iteracjach.
Uwaga: dług techniczny, który można naprawić poprzez refaktoryzację w ramach oszacowania karty opowieści, nie wymaga technicznej karty historii. Większy dług techniczny będzie. W przypadku długu technicznego, który wymaga karty technicznej, należy zidentyfikować wpływ na działalność i poprosić właściciela produktu o nadanie priorytetu karcie technicznej. Następnie obróć kartę. Nie twórz długów technicznych dla praktyk inżynieryjnych. Czy wszyscy oceniają, wiedząc, że praktyki inżynieryjne będą częścią szacunku. Nie twórz karty, aby zmodernizować aplikację za pomocą zautomatyzowanego testu jednostki, funkcjonalności i wydajności. Zamiast tego uwzględnij pracę tylko w ocenianych kartach i dodaj automatyczny test do kodu, który dotkniesz przez przetwarzane karty. Umożliwi to poprawie aplikacji z biegiem czasu bez zatrzymywania postępu. Zatrzymanie dodawania wszystkich wizytówek powinno być zapisane tylko w najbardziej drastycznych sytuacjach, takich jak niemożność wykonania aplikacji lub skalowanie.
Biorąc pod uwagę przypadek, w którym dziedziczysz bazę kodu bez automatycznego urządzenia, testu funkcjonalności i wydajności, poinformuj partnera biznesowego o smutnym stanie rzeczy. Daj im znać, jak oszacujesz pracę. Stwórz dług techniczny, ponieważ jest on ujawniony w praktyce inżynierskiej. Na koniec poinformowano właściciela produktu, że prędkość zespołu poprawi się, gdy coraz więcej elementów kodu zostanie dotkniętych automatycznymi testami jednostek, funkcjonalności i wydajności.
Dla osób niezaznajomionych z długu technicznego, może to być dobre wyjaśnienie: http://benlakey.com/2012/06/18/technical-debt/ –
Takie pytania powinny być zadawane na https: //pm.stackexchange.com/ –
Głosuję, aby zamknąć to pytanie jako nietypowe, ponieważ takie pytania powinny być zadawane na stronie https://pm.stackexchange.com/ –