El Blog de Trespams

Blog personal sobre tecnologia, gestió de projectes i coses que se me passen pel cap

Technical Debt

En Marcos m'ha fet arribar un interessant article anomenat Technical Debt, d'Steve McConnell un dels meus autors preferits. En ell McConnell ens parla del concepte del deute tècnic, és a dir, l'equivalent a l'import en hores de feina que haurem de pagar en el futur quan en el desenvolupament d'una aplicació prenem determinades decisions.

Per exemple, quan no posam comentaris al codi estam adquirint un deute tècnic, ja que més endavant la persona que ho tengui que depurar o fer-ne modificacions ho tindrà molt més mal de fer i hi haurà de dedicar més hores de feina. També contreim aquest tipus de deute quan per exemple decidim fer la nostra aplicació depenent d'una determinada base de dades, donant per suposant que no necessitarem portar-la mai a una altra. En aquest cas el deute pot fer-se palès quan tenguem la necessitat de canviar de base de dades o bé pot no aflorar mai si l'aplicació acaba el seu cicle de vida sense necessitat de canviar de base de dades.

Es distingeixen dos tipus de deutes tècnics, aquell en el qual hem caigut de manera no intencionada i aquell totalment intencionat i que respon a una decisió estratègica. Els no intencionats s'han d'evitar sempre, ja que no hi tenim cap control, dels intencionats n'hem de ser conscients i avaluar-ne la relació entre el risc que assumim i el possible cost d'aquest risc vers els beneficis que en podem obtenir.

Tal i com passa amb els deutes financers, aquests tipus de càrregues poden ser fruits d'una planificació a llarg plaç o bé per necessitats puntuals del moment. Tal com passa amb el deute financer que en tenim a curt i llarg plaç (la visa i l'hipoteca) podem tenir un deute tècnic a llarg plaç, com per exemple fer una aplicació depenent d'una versió concreta d'un sistema operatiu si sabem que no el canviarem en diguem tres anys, o bé a curt plaç, com algunes decisions que s'han de prendre per tal de sortir al mercat abans que la competència i que s'hauran de resoldre una vegada el programa estigui en producció.

En els dos exemples, es veu que el deute existeix: als tres anys les dependències s'introduïren del sistema operatiu s'hauran de eliminar, els errors les característiques no documentades de la versió inicial del programa s'hauran d'arreglar.

A més de saber que existeix el concepte de deute tècnic ens permet atracar-nos més cap el llenguatge que parla la gent que comana normalment els programes. Ajuda a ser conscient del cost de determinades decisions tècniques i a poder fer un símil entre el cost financer i el cost tècnic, de manera que es pugui fer palès un possible cost ocult, que després haurà d'assumir-se o no, en funció dels beneficis que hi pugui haver.

blog comments powered by Disqus