dimecres, 1 de març de 2006

Programació heroica

Ahir em parlaven del concepte de programació heroica, o heroic programming, que és el que succeeix quan es vol desenvolupar programari sense una anàlisi ni dissenys previs i es pretén obviar aquesta carència dedicant hores i esforços extres. I quan els resultats empitjoren, encara més esforç. Crec que heroic deu venir per la lluita en contra dels elements. No coneixia que se li digués així, programació heroica, i m’ha fet molta gràcia el nom, encara que, per desgràcia, per a qualsevol que treballi a les TI és una situació coneguda. Booch, un dels pares de la OO a un dels seus llibres diu:

“La programació heroica es una pràctica de desenvolupament de programari que no és mai sostenible: al final del dia, pots haver aconseguit els teus primers objectius, però finalment la teva gent i el teu projecte acabaran desfets. En primer lloc, refiar-se de la programació heroica és un bon camí per cremar a la teva millor gent. Haver d’escriure sempre codi de conveniència en lloc de bon codi no compensa a llarg termini. En segon lloc, s’acaba tenint molt de programari fragmentari. Un sistema molt apedaçat esdevindrà amb el temps tan fràgil que si se’n toca una part, en cau a trossos una altra. Quan passa això, els desenvolupadors comencen a apilar pedaç sobre pedaç, de manera que en el pitjor dels casos, no hi ha ningú que pugui entendre el sistema resultant”

És el que passa quan les coses s’han de fer per ahir, sense especificacions, anàlisi prèvia, i tot allò que fa falta per obtenir un resultat que es pugui predir. Fa uns dies, l’Albir va enviar un comentari (que per alguna raó no va aparèixer) on deia:

“... la tecnologia és l’últim que es té en compte, primer manen els comercials, després els de continguts i al final quan tot s’ha de fer per ahir, de qualsevol manera, ràpid i que funcioni, és quan ens toca als tècnics fer el que diuen els altres.

lamentable”

No consola que sigui un error freqüent a tot arreu on es desenvolupa programari.

7 comentaris:

dani ha dit...

Es la famosa progamación en tres capas, perdón, losas...
En la losa de abajo los programadores, en la losa del medio los de contenidos y en la losa de arriba los comerciales.

albir ha dit...

ostres, que em poso vermell...

Llegeixo al feed "programacio heroica" i penso, aixo m'interessa, segur que algun guru ha batejat aixi a la versio realista del extreme programming, del project management o qualsevol altre "palabro" que en dic jo, i llegint llegint resulta que apareixo al post!!!!

Ja em sap greu ser un representant d'aquest tipus de programacio , pero quan parlo amb la gent i em diuen que a tot arreu estan igual, flipo. I si a sobre ho diu gent que parla en angles, deu ser que es veritat, i encara flipo mes.

Mor ha dit...

Si que són lloses!
Per desgràcia és un problema prou comú a tota la indústria de les TI. Les pressions comercials obliguen sovint a treure productes sense el nivell de qualitat necessari, però això és quasi un altre article...

espurnes ha dit...

Concepte nou al diccionari.

Jo no m'he agut d'encarar a grans projectes de programació, em limito als que em posen a la universitat però moltes vegades aplico la programació heroica (cada cop menys) per resoldre els problemes que hem plantegen.

Suposo que aquest tipus de programació va estretament lligat a com decideixes començar. Quan et planteges el problema et comença a vullir el cervell amb idees de com fer-ho, vas recorrent camins, buscant possibilitats, descartant opcions... (com a mínim jo :P) i és aques el moment crucial. has de plasmar-ho a paper i fer un pseudocodi de les funcions necessàries amb l'ajut d'algun dibuixet. Però és molt fàcil caure en la temptació de començar directament a programar i estalviar-te tot el estudi previ.

Potser vosaltres parleu d'un estudi més acurat: de la viabilitat economica, temporal, o qualsevol altre. El meu punt de vista actual és aquest.

També pot ser una opinió transitoria causada per la "cavilació heroica" ja que tot just fa uns moment que he finalitzat una practica que havia d'entregar i estic una mica euforic i molt cansat.

massa coses estic dient.

Felicitats MOR, els articles que poses son molt interessants.

espurnes ha dit...

quina mania tinc de no revisar l'ortografia abans de postejar...

Mor ha dit...

M’han fet algun comentari similar, sobre que a la facultat com que els problemes a resoldre son d’una mida limitada, es tendeix a utilitzar la programació heroica i que pot donar bons resultats. El tema canvia quan t’enfrontes al disseny d’un sistema d’informació que pot tenir milers de línies de codi i sobre el que ha de treballar un equip de persones. O es dedica temps al seu disseny o no hi haurà herois, almenys vius.

El mateix passa quan sobre una aplicació que més o menys funciona, un prototip que s’ha hagut de fer a corre-cuita, al que se li van afegint més i més pegats, i on s’acaba edificant una aplicació molt més gran, també és un terreny perillós.

I m’ha fet molta gràcia això de “cavil·lació heroica”! ;-)

espurnes ha dit...

Totalment dacord amb els dos primers paràgrafs. No volia justificar la programació heroica de cap de les maneres, però l'ús és freqüent.

El concepte cavil·lació heroica es podria aplicar a aquelles vegades que escrius o dius tal com raja sense parar-te a pensar si se sosté per alguna banda.

La llengua està viva, sorgeixen conceptes nous cada dos per tres. jeje.

m'agrada que t'haigi fet gràcia.