05 diciembre 2006

Sin diseño

Ando ahora liado, empezando un nuevo proyecto en el trabajo, algo ambicioso porque pretendo hacer algo que sirva para varios proyectos.

El tema del diseño me desborda y puedo pasarme pensando en UML y papeles un montón de tiempo para al final posiblemente llegar a un diseño más general y más complicado de la cuenta. También estoy bastante seguro de que ese diseño luego no sirve para nada o, al menos, cuanto más código se vaya haciendo, menos se parece al diseño.

Así que he decidido no hacer grandes diseños. Voy a tratar de seguir algunas de las filosofías de las metodologías ágiles, programación extrema y demás.

Trataré de ponerme hitos (historias de usuario, casos de uso o cómo queramos llamarlos) cortos y trataré de con un diseño mínimo, resolver esos hitos de la forma más rápida y directa posible en el código. Eso sí, pensando en rehacer/modificar el código ya hecho a menudo, según se vayan añadiendo hitos, trataré también de hacer clases de test unitario, con JUnit o similar.

Desde luego, será más divertido que el pasarse pensando en el diseño varios días, semanas o meses, con la duda continua de si se te olvida algo o no, si será lo suficientemente general o no.

Me siguen quedando las dudas de si haciéndolo de esta manera obtendré algo lo suficientemente general para varios proyectos, pero al menos esa preocupación no será el agobio de pensar en abstracto, sino agobio de cosas por (re)hacer en el código. Si el rehacer código se hace desde el principio, poco a poco según se vayan planteando las necesidades con los nuevos hitos, espero que tampoco será demasiado gravoso.

De todas formas, esto es lo que siempre acabamos haciendo, ya que los diseños que se hacen al principio no se siguen ni siquiera el primer día que se empiza a programar.

Ya iré contando la experiencia....

No hay comentarios: