Cuando hay que afrontar un nuevo trabajo en equipo, los que me conocen saben que no soy un fanático de las metodologías y también saben lo que me cuesta adaptarme a las mismas. Esto no quiere decir, que el trabajo diario sea siempre diferente, sino que hay pautas que son demasiado estrictas y que, personalmente, pienso que no aportan mucho dentro del proceso de desarrollo. Creo que el resultado final de un proyecto, es tratar de terminarlo en tiempo y forma, agregar un valor agregado a nuestro cliente, respetando siempre las necesidades y capacidades del mismo (aquí rescato una frase del blog de RamonB: … quien va a pagar los salarios no es esta empresa, sino los clientes de esta empresa. El trabajo que hacemos para nuestros clientes es nuestra única fuente de ingresos…)
Si estoy en un pequeño proyecto, donde se me solicita el desarrollo de un portal (por ejemplo), el proyecto está estimado en un par de meses y posee un presupuesto muy limitado. Lo más probable es que no le ofrezca herramientas de ultima generación, de alto coste, ni que tampoco implemente un gran proceso de desarrollo, gestionaré esos pocos recursos para obtener el mejor producto que satisfaga al cliente y que me ofrezca el mejor beneficio posible. Sin embargo, una cosa que no haré es bajar la calidad del producto final.
Para facilitar el proceso de desarrollo tengo a mi alcance muchas buenas herramientas. Un ejemplo, si miramos la nueva generación de .Net, Visual Studio 2005. Podemos apreciar que el mismo, ya incluye muchos componentes que antes debíamos incluir y configurar "a mano" dentro del IDE en Visual Studio 2003. Como por ejemplo, NUnit. Partiendo de esta base, no puedo aceptar la no utilización de estas herramientas. El no utilizarlas es casi como demostrar un total desinterés y desconocimiento sobre un proceso "ágil" de desarrollo. Y cuando hablo de un proceso Ágil, no me refiero a una metodología 100% Agile Programming, sino a saber aprovechar las ventajas que nos brinda la utilización de las pruebas unitarias. (Es muy fácil pasar de "ágil" a "frágil")
Volviendo al caso anterior, por más limitado que sea el presupuesto de mi proyecto, siempre mantendré un nivel de calidad aceptable en el producto final. Para lograrlo, se han desarrollado muchas variantes basadas en TDD, por ejemplo, que podemos implementar. Podemos incluir herramientas gratis y lograr resultados increíbles. Podemos utilizar aprovechar diferentes Frameworks que nos facilitan muchísimo el diseño y la codificación de la aplicación.
Si tenemos acceso a Internet, no tenemos excusas para no brindar un buen resultado final. El MSDN, Google, GotDotNet y algunos blogs, son una fuente inagotable de recursos.
Saludos.
PD: Por lo general enfoques de este tipo conllevan un retraso en los proyectos y cuando los proyectos se atrasan o se complican, por lo general hay tres opciones para elegir:
Reproyectar el trabajo a realizar y eliminar una serie de funcionalidades del proyecto (restar funcionalidad, pero mantener la calidad del producto final)
Ninguna es agradable. ![]()
Leave a reply to Alfredo Cisterna Cancel reply