Sei sulla pagina 1di 3

Cmo determinar el costo y tiempo de un proyecto

Publicado: Lunes, 12 Octubre 2009 13:30


Determinar el costo y tiempo de un proyecto de software es uno de los temas
ms importantes en el desarrollo de software. Mi opinin seguramente va a
ser polmica, y ac est: es imposible determinar cul ser el costo y el
tiempo de un proyecto de desarrollo de software. Ms an, es muy mala idea
intentar usar la planificacin como si fuera un contrato con nuestro cliente.
Por qu es imposible? (el tringulo de hierro)

El Tringulo de Hierro es una muy buena analoga para explicarlo. Lo que muestra el tringulo es
que en los proyectos de software (y, bsicamente, en cualquier proyecto), asumiendo que la
calidad queda esttica (los proyectos siempre deberan apuntar a tener la mayor calidad posible),
hay otras tres variables en juego: el Tiempo (qu tan rpido queremos entregar la solucin), el
Costo (que tan barato queremos que sea el producto) y el Alcance (cuntas caractersticas
queremos que tenga la aplicacin). Lo interesante es que estas tres variables dependen entre si,
por lo que resulta imposible dar ms prioridad a una sin quitarle a las dems.
Lo que hace que sea imposible determinar el costo y el tiempo de un proyecto es que, sin
importar cunto anlisis y recoleccin de requerimientos hagamos, es imposible conocer
por completo el alcance de las caractersticas de la aplicacin desde el inicio (dije que iba a
ser polmico). Y sin estos datos, cmo vamos a calcular los otros dos lados del tringulo?
Incluso cuando el costo es fijo, o el tiempo es fijo, es imposible calcular el otro vrtice del
tringulo.
Para analizar ms, supongamos que estoy equivocado y que realmente podemos determinar el
Alcance de la aplicacin desde el inicio. Por lo tanto lo estimamos, y supongo que todos estamos
de acuerdo en que la estimacin tan slo expresa una probabilidad; cuando digo "estar terminado
en un mes", quiero decir algo como "hay un 80% de probabilidad de que termine en un mes".
Cuando encadenamos las probabilidades (la estimacin de cada una de las caractersticas que
formaban el Alcance), la probabilidad de acertar cae exponencialmente, lo que significa que incluso
aunque conozcamos todas las caractersticas, la probabilidad combinada de acertar en
todas las estimaciones es ridculamente baja.
La planificacin continua
La solucin al problema es cambiar la perspectiva y mirar a la planificacin no como una
actividad enorme que se hace al comienzo del proyecto, sino como una actividad continua
que se realiza druante toda la vida del proyecto. Mientras ms hayamos desarrollado la
aplicacin, ms podremos refinar nuestro plan.
Conclusin
Existe un crculo vicioso: un proyecto de software no se aprueba hasta que se estime el costo y el
tiempo, pero esto no se puede determinar porque recin conoceremos el alcance real de las
caractersticas al momento de empezar a desarrollarlas. Igualmente, esto no debe impedirnos de
empezar un proyecto y crear una estimacin inicial, y refinarla a medida que desarrollamos el
producto. Pero tengan cuidado: crear una planificacin inicial y usarla como un contrato va a
afectar seriamente a todas las partes involucradas; es probable que el cliente no pueda hacer
cambios durante el desarrollo, y el equipo de desarrollo trabajar bajo presin para cumplir fechas,
y al terminar el producto final no ser lo que el cliente esperaba y su calidad ser pobre.
Traducido de How to determine the cost and schedule of a software project? The mythical
BPUF (Big planning upfront), por Alberto Gutierrez.