El Blog de Trespams

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

Què me costarà…?

A la gent que ens dedicam a la programació i a la gestió de projectes és habitual que ens ens demanin que estimem què costa un projecte en termes d'hores de feina. Cada un pot fer servir el mètode d'estimació que millor li vagi: el dit a l'aire, punts funció, Mark II, estimació per casos d'ús, etc.

Aquests mètodes acaben donant un nombre de mesos home, que hi ha que tenir en compte que segons el que demani el client poc te a veure amb el que costarà realment el projecte.

És a dir, per anar bé, el que hem de donar a més del cost calculat en hores de desenvolupament és el cost del projecte en funció de la gent que hi volguem dedicar i de l'aviat que el client vulgui el projecte.

Hi ha tot un conjunt de taules per fer això, les més útils que he vist són les de McConnell, però a vegades no les tenim a mà. Una opció és anar a aquesta web i consultar-les, però en cas de que tampoc poguem fer-ho, perquè estam davant el client i no es cosa de dir-li, "deixa'm un ordenador i ho miro", convé tenir a mà un petit xul·letari que ens ajudi a sortir del pas, sempre diguent, però, que és una estimació subjecte a una valoració més fina.

Partim de l'estimació hen mesos-home que hem fet, suposem per exemple que li deim al nostre client que el cost de desenvolupament del projecte és de 80 mesos-home, el següent que ens demanarà el client és que quan ho podem tenir. Aquí comença la diversió.

Com a opció inicial li podem presentar la opció de desenvolupament òptim. Aquesta opció ve donada per la fórmula

temps = 3 * (estimació) ^(1/3)

Que el factor multiplicador 3 pot variar segons el coneixement que tinguem de la nostra empresa i de l'equip de desenvolupament. Es recomana que el factor estigui entre 2 i 4.

Així doncs la primera aproximació que li donaríem al client és: 13 mesos amb un equip d'entre 6 i 7 desenvolupadors (80/13). Això vol dir que ja hem estat capaços de donar-li una primera xifra: tant de quan seria òptim tenir el projecte acabat, com de quants desenvolupadors necessitarem per tenir-ho a temps. D'aquí ja es dedueix un cost del projecte, ja que basta multiplicar desenvolupadors pel cost de cada un. Suposem a 2000 Eur per més, tendríem un cost de 14.000 Eur mensuals, és a dir, 182.000 Eur [1]. És a dir, el cost de cada mes home és de 2.275 Eur.

Les coses però no solen funcionar així, els 13 mesos proposats potser són massa pel client, ens demana que ho hauríem de tenir en 8 mesos. El cost en aquest cas no és el mateix, ens estan demanant una compressió dels plaços d'entrega, i això vol dir posar més gent al projecte. El primer que hem de fer és calcular el nou esforç

nou esforç = esforç inicial / factor compressió

En el nostre cas

nou esforç = 80 / (8/13) = 130 homes-mes amb un factor de compressió de 0,615.

Aquí ja tenim un petit problema ja que el factor de compressió més gran que es considera factible està entre 0,75 i 0,80. Siem optimistes i suposem un factor de 0,75, ja que tenim un equip molt bo. Això vol dir que la data d'entrega més optimista que podem donar és de 9,75 mesos, 10 mesos per no anar massa estrets. Si hem fet bé el càlcul de dedicació una data més curta implica anar cap a un "Death March project" i hem de dedicar els nostres millors esforços a fer-ho entendre al client.

Suposem doncs que accepta la nova data, l'eforç que li hem de presentar és ara

nou esforç = 80 / 0,75 = 106,7 mesos-home ~ 107

amb un equip d'onze programadors. Això vol dir pujar el cost del projecte fins als 220.000 Eur.

Són sols quatre números però que ens ajuden a veure com un desenvolupament que s'allunyi d'unes dates d'entrega òptimes s'encareix, bé en termes de cost real o bé en termes de cost en personal, obligat hores extres no renumerades, que es vulgui reconèixer o no a la llarga passa factura a l'empresa. Els pressuposts tancats, doncs s'han de fer no tan sols en termes d'hores calculades, sinó també tenint en compte el cost addicional que hi ha quan escurçam el temps d'entrega.

Així que a la pregunta de què costarà un projecte, hem de demanar a més de les especificacions per poder-ne fer la valoració, el temps en que el client ho vol tenir, i si més no, donar-li l'alternativa d'allargar el desenvolupament i disminuir-ne el cost.

--
[1] Les xifres són redones i inventades, no cal dir-ho supòs.

blog comments powered by Disqus