# Deute tècnic

El deute tècnic, també conegut com a deute de disseny o deute de codi, és un concepte del desenvolupament de programari que fa referència als costos d'un esforç addicional causat per l'elecció d'un desenvolupament senzill i precipitat en lloc d'usar un millor enfocament que pot pendre més temps.

## Definició

El sector informàtic presenta la particularitat que permet la implantació de productes no acabats o amb errors coneguts. A vegades, la política d'estalvi de costos en la implantació de maquinari o el desenvolupament de programari posa l'atenció en retallar els processos de proves, control de qualitat o documentació, o fins i tot alguns paràmetres bàsics d'optimització de processos, la qual cosa compromet la viabilitat a llarg termini del projecte a canvi de poder-lo lliurar en el termini previst i amb el pressupost acordat.

## Causes

* Definició prèvia insuficient. Succeeix quan els requeriments continuen sent definits durant el desenvolupament i el procés de construcció s'inicia abans de ser dissenyat.
* Pressió de l'àrea de negoci. Quan l'àrea de negoci considera que s'ha d'alliberar el que s'està desenvolupant abans que tots els canvis necessaris siguin completats, generant així un deute tècnic.
* Falta de processos o coneixement. Quan l'àrea de negoci desconeix el concepte de deute tècnic i es prenen decisions precipitades sense considerar les implicacions.
* Components fortament acoblats. Succeeix quan les funcionalitats no són modulars i la solució no és prou flexible per adaptar-se a les noves necessitats de negoci.
* Falta d'una bateria de proves, que propicia l'ús de pegats (patches) improvisats i arriscats per corregir errors de codi.
* Falta de documentació, quan s'escriu codi sense la documentació adequada de suport. L'esforç que representa la generació de documentació representa un deute que ha de pagar-se en algun moment.
* Falta de col·laboració, quan el coneixement no és compartit dins de l'organització i l'eficiència del negoci trontolla o els desenvolupadors junior no estan capacitats adequadament.
* Desenvolupament en paral·lel en dos o més branques que fa que s'incrementi el deute tècnic, ja que el treball requerit per fusionar els canvis en una sola línia base de codi necesita cert l'esforç. Mentre més canvis es realitzin de forma aïllada més incrementa el deute.
* Posposar la refacció. A mesura que els requeriments del projecte evolucionen, les parts del codi que s'han tornat ineficients i difícils d'editar han de ser millorades (refaccionades) per poder suportar futurs requeriments. Mentre més temps es posposi la refacció i més codi sigui agregat, més gran serà el deute.
* Falta d'adequació als estàndards, succeeix quan els estàndards de la indústria, les tecnologies i els marcs de treball són ignorats.
* Falta de coneixement, quan els desenvolupadors simplement no saben com escriure codi elegant.
* Falta de pertinença, quan els esforços de desenvolupament de programari realitzat per tercers necessita ser refaccionat o reescrit pels desenvolupadors interns.
* Lideratge tècnic pobre, succeeix quan es prenen decisions mal pensades i aquestes es transmeten a través de la cadena de comandament.
* Canvi d'especificació d'últim minut, aquests tenen el potencial de filtrar-se al llarg d'un projecte, però no hi ha temps ni pressupost per dur-los a terme amb la documentació i els controls necessaris.

## Conseqüències

El resultat d'aquesta política implica que el desenvolupament del programari es perllonga en el temps més enllà del lliurament del producte suposadament conclòs; fins i tot a vegades són diferents equips de desenvolupament els que acaben fent-se càrrec de les millores. Si el projecte estava delimitat en fases, la correcció dels errors de les fases més primerenques es podria solapar amb el desenvolupament de les següents fases, la qual cosa dificulta portar a bon terme ambdues tasques. El mateix és aplicable per al desplegament de maquinari o tasques equivalents.

## Origen del terme

El terme deute tècnic va ser proposat per primera vegada el 1992 per Ward Cunningham. Un desenvolupament pobre, tal com es descriu al paràgraf anterior, equival a una avaluació d'inversions financeres basada en l'obtenció de beneficis a curt termini. En el sector de les finances, una inversió que busca el benefici a curt termini pot generar deutes els interessos dels quals s'han de liquidar durant un període molt perllongat. De forma anàloga, un desenvolupament tecnològic aparentment curt pot requerir un esforç extra per corregir els problemes generats al no aplicar els consells bàsics de desenvolupament. Aquest esforç extra, que pot multiplicar el temps de desenvolupament del projecte inicial, equivaldria als interessos d'un deute financer.

## Vegeu també

* Crisi del programari
* Entropia del programari

## Enllaços externs

* Ward explains what debt metaphor is from youtube(video) and C2.com(transcript)