jueves, 6 de noviembre de 2008

El difícil arte de dar fechas

En el mundo de los negocios, cuando uno pide un presupuesto lo normal es que junto con el precio se de también una estimación de tiempo para saber cuándo puede estar terminado el proyecto. A fin de cuentas, si preguntamos por cuándo puede estar terminado un traje a un sastre y su precio, este sólo tiene que pedir lo que quiere cobrar y decir que va a tardar lo que suele tardar en hacer lo que le pedimos.

Y si hablamos de grandes proyectos de ingeniería, como por ejemplo un edificio, un puente... lo que sea, hay procedimientos para calcular el tiempo y el coste que va a tener todo el proyecto, de forma que de antemano sabemos (más o menos) lo que nos va a llevar.

Sin embargo, pese a que se llama ingeniería, con el mundo de la informática (y por lo tanto con los videojuegos) esto no se aplica. Para proyectos sencillos, uno siempre puede hacer una estimación más o menos acertada de los costes, pero a poco que se va complicando la cosa todo cambia.

En un proyecto de software (y los videojuegos son software, al menos en su parte de programación) hay muchas cosas que interactúan, es muy fácil cometer errores incluso con un buen sistema de pruebas. De hecho, a poco complejo que sea un programa, se da por hecho que tiene fallos, y si en las pruebas no ha aparecido ninguno es que entonces no se han hecho bien las pruebas.

A veces estos errores, para corregirlos, implica reescribir partes completas, porque se había dado por supuesto algo que no es así, y hay que cambiar muchísimas cosas. Eso es tiempo, puede ser mucho tiempo.

O simplemente de pronto se ve que la idea no funciona y hay que partir de cero. Entonces todo el trabajo se va al garete. Bueno, tampoco todo, siempre se pueden salvar cosas, pero hay que empezar de cero con el diseño aunque determinadas cosas no haya que volverlas a reescribir.

O tal vez, como los tiempos de desarrollo de los juegos se miden en varios años, la competencia ha sacado algo que deja en mantitas a nuestro proyecto. ¿Y qué hacemos, seguimos palante o volvemos al diseño y lo intentamos mejorar?

Así que, en definitiva, cuando el desarrollo de un nuevo juego empieza y te preguntan "¿cuándo va a estar terminado?" en el fondo es como si a un investigador le dices "¿cuánto vas a terminar de descubrir lo que estás investigando?". Si todo sale bien y está siguiendo las pistas adecuadas, posiblemente lo que él opina. Si las pistas resulta que no llevan a ningún puerto, pues tendrá que buscar otros caminos. Y la investigación se retrasará y se retrasará hasta que de con la tecla.

Pues algo así es el desarrollo de un producto de software. Salvo que tengas la suerte de que todo salga según lo previsto, lo normal es que todo cueste mucho más de lo que te imaginabas al principio.

Y esto, como digo, no sólo pasa en los videojuegos. ¿Sabeis para cuándo estaba pensado que saldría Windows 95? Pues en el 93. ¿Y Windows Vista? En el 2003 o 2004 como muy tarde.

¿Por qué cuento todo esto? Porque me hace mucha gracia cuando se pide seriedad a las empresas desarrolladoras de videojuegos cuando hablan de las fechas. Si se mojan y se equivocan, que qué falta de seriedad. Y si no se mojan, se las critica precisamente por ello.

Pero... ¿Cómo se eligen las fechas de salida? ¿Es cuando está todo listo? Normalmente no. Pero si la fecha de entrega se acerca y un juego (o un programa, o una versión nueva de Windows) tiene muchísimos fallos pero ninguno es demasiado grave, se saca al mercado en la fecha prevista (aunque venga retrasada) y ya iremos sacando parches que corrijan los errores.

¿Por qué no se hacen las cosas bien y nos dejamos de parches? Porque el consumidor no quiere oír hablar de retrasos, así que salvo que sea estrictamente necesario, la fecha hay que cumplirla. Esté como esté. Y obligar a un desarrollador a tener un programa listo sin fallos para una fecha es como decirle a un artista que tiene X tiempo para hacer una obra de arte. Las obras de arte tardan lo que tardan en hacerse, no lo que uno quiere que tarden. Y si quieres que se terminen en una fecha concreta, igual te arriesgas a que al artista no le haya dado tiempo a hacer lo que se consideraría una auténtica obra de arte...

No hay comentarios: