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)

  • Terminar el proyecto, a coste de bajar la calidad del mismo. (terminamos el trabajo, pero no aseguramos la buena calidad del producto final)
  • Crear días de 49 horas y terminar lo que se pueda cuando se pueda (una de las opciones más conocidas, en la que trabajando más horas, por lo general no sabemos hasta donde llegaremos y mucho menos de que manera llegaremos)

    Ninguna es agradable.

    2 responses to “Programar vs Programar”

    1. Que tema!!! estoy totalmente de acuerdo con vos, sobre todo en la rigidez que proponen los procedimientos y el desgano que generan mas el malestar asociado de los desarrolladores. Creo que los procedimientos, tareas estructuradas y demas normas son perfectamente aplicables a muchas profesiones, sin embargo, en la nuestra, hay que tomarlo con pinzas. Conozco empresas que por aplicar procedimientos o comenzar a hacerlo, pierden calidad en sus trabajos e incluso se prolongan demasiado los tiempos de entrega, osea la ecuacion es absolutamente negativa. Obviamente esto se potencia si los participantes no se capacitan en las mejores practicas y productos y por ende no las aplican… Por otro lado, considero que tiene que haber cierto orden para coordinar las tareas, sobre todo cuando los equipos estan formados por varias personas. Me parece que, como en todo, los extremos son malos, tenemos que encontrar el punto de equilibrio que nos permita ser ordenadamente desordenados y cumplir, como muy bien dicen Ramon y vos, con quien paga las cuentas en tiempo y forma :DSin dudas, pienso que estar al tanto de TODAS las opciones para llegar a cierto punto y poder elegir entre cada una de ellas es el ideal y si desconozco tecnologias, me faltan algunas de esas opciones y por consiguiente podria trabajar en vano y sin exito :SMuy buen tema, no creo que termine aqui 😉

      Like

    2. Alfredo Cisterna Avatar
      Alfredo Cisterna

      Estoy de acuerdo, es las reuniones de area de mi empresa es muy comun discutir este temaEstoy de acuerdo, es las reuniones de área de mi empresa es muy común discutir este tema ya que hay personas que estas dispuestas a aumentar los costos de los productos mas de un 50%, para poder mantener la documentación de calidad.Como dice Martín no me parece bien el extremo, pero creo que el procedimiento de calidad de una empresa de desarrollo se tiene que realizar con mucho cuidado, y especialmente con el consenso de desarrolladores, ya que son ellos quien luego tienen que utilizar esto para poder realizar "productos con calidad", para que el desarrollo de una solución, no se convierta en problema….

      Like

    Leave a reply to Ppino Cancel reply

    Discover more from El Bruno

    Subscribe now to keep reading and get access to the full archive.

    Continue reading