Dług technologiczny (techniczny) a testowanie

Dług technologiczny (techniczny) a testowanie
Dług technologiczny jest pojęciem wielowymiarowym i wynikającym z niezrozumienia przez wszystkie strony projektu informatycznego pojęcia jakości funkcjonalnej, niefunkcjonalnej oraz architektury oprogramowania. Jest to bardzo ważny aspekt oprogramowania, w kontroli którego powinno być uwzględnione testowanie oprogramowania.
 

Czym jest dług technologiczny? Dług technologiczny zaciągamy zawsze, kiedy w projektach informatycznych idziemy na skróty. Kiedy budujemy rozwiązania nieskalowalne i kiedy przeciwstawiamy sobie pojęcia wysokiej jakości i szybkiej dostawy. Budowanie oprogramowania, w którym od początku nie dbamy o achitekturę systemową lub o kodowanie oprogramowania wiąże się ze wzrostem naszego zadłużenia. Koszty te zazwyczaj nie są widzoczne w "teraz" projektu informatycznego, ale będą musiały zostać pokryte prędzej czy później.

Wikipedia wskazuje na następujące powody powstawania długu:

  • presja biznesowa (jak pokazano poniżej)
  • brak podejścia procesowego lub brak zrozumienia biznesowego dla długu
  • brak elastyczności przy budowaniu oprogramowania
  • brak testowania
  • brak dokumentacji
  • brak współpracy
  • budowowanie jednego systemu przez wiele organizacji w izolacji
  • opóźniona refakturyzacja
 

Poniższy wykres [jest to tłumaczenie wykresu ze strony http://faheemsohail.com/2011/03/scrum-and-xp-go-hand-in-hand/] prezentuje realizację zadań w funkcji czasu. Niebieska linia pokazuje optymalny czas dostawy skonfrontowany z czasem dostawy wymuszonym (zazwyczaj) przez tzw. deadline. Nierelistyczne oczekiwania wyznaczają zaciągnięcie długu technologicznego.

alt

Z pespektywy testowania / jakości oprogramowania dług technologiczny łatwo zwizualizować regułą 1:10:100. Jeśli w fazie definiowania wymagań (1) nie zapłacimy za ich wysoką jakość, to w fazie dostawy do klienta jest wysoce prawdopodobne, że poniesiemy koszty stókrotnie większe (100).

W projektach wykonuje się dużą ilość różnego rodzaju "oszczędności", które realnie są zaciągnięciem pożyczki technologicznej. Z perspktywy testowania dług pojawi się za każdym razem kiedy:

  • nie dopilnuje się testowalności wymagań
  • budżet na testowanie zostanie zredukowany
  • czas na testowanie zostanie skrócony
  • testowanie zostanie źle zaplanowane
  • nie wykonany zostanie przypadek testowy
  • informacja z testowania nie zostanie wykorzystana
  • etc.
 

Stworzenie pojęcia długu technicznego przypisuje się Wardowi Cunninghamowi.

 

Dług technologiczny można zdiagnozować przy audycie kodu. Jest to jedna z usług kontroli jakości, którą zalecamy wszystkim firmom i podmiotom zamawiającym oprogramowanie od zewnętrznych dostawców >>


Źródła:
http://en.wikipedia.org/wiki/Technical_debt
http://faheemsohail.com/2011/03/scrum-and-xp-go-hand-in-hand/

 

To powinno Cię zainteresować