El inicio de un proyecto depende mucho de la organización donde te encuentres trabajando, o de igual forma si trabajas por tu cuenta, también depende de la metodología a utilizar para la ejecución del mismo.
En lo particular conozco dos caminos que bien ejecutados tendremos resultados sorprendentes a largo o corto plazo según sea la opción que tomemos. Las opciones a usar podrían ser "desarrollo en cascada" o "Agile". En el caso particular del presente articulo lo explicare de manera neutra, dejando para futuras entradas ambos caminos antes mencionados.
Básicamente deberíamos tener los siguientes elementos:
- Un cliente con la necesidad de resolver su problemática, o gestionar su flujo de trabajo por medio de una aplicación, un sistema o el conjunto de ambos.
- Requerimientos bien definidos por parte del cliente. En ocasiones el cliente está iniciando con su negocio o está definiendo nuevos flujos de trabajo para incorporarlos al ya existente, por lo que necesitan de ayuda de nosotros (el grupo de trabajo incluido el PM) para saber lo que quiere realizar y como lo desea ejecutar.
- Equipo de trabajo conformado por analista, diseñador, DBA, desarrollador de software, ingeniero de pruebas y un PM con el conocimiento necesario que demande el proyecto. En ocasiones una sola persona ejecuta todas las tareas, lo cual podría tornar complicada la situación.
- Herramienta de trabajo para el equipo de trabajo en sus respectivas áreas.
Bueno teniendo todo lo anterior, ¿Que hago ahora?, sugiero los siguientes pasos:
- Tener una serie de entrevistas con el cliente para detectar que es lo que necesita realmente, en muchas ocasiones el cliente se enfoca en los deseos, más no en las necesidades, por lo tanto es importante ayudar a enfocar al cliente respecto a la solución y deshacernos de esos deseos que generalmente no aportan precisamente al flujo del negocio.
- Iniciar en forma con el levantamiento de requerimientos para lo cual es necesaria la participación de la persona que conoce a la perfección el flujo del negocio y la analista especialista en la documentación de requerimientos, teniendo como resultado requerimientos consistentes para iniciar con la ejecución de las etapas consiguientes.
- Basándose en los requerimientos establecidos, se inicia con la construcción de la primera versión de la base de datos, y de igual forma la primer versión del front end para someterlo a medida de lo posible a escrutinio del cliente. Si el tiempo lo permite es importante generar prototipado de Front End y de funcionalidades importantes que tendrá el sistema.
- Teniendo aprobada la base de datos y el front end, se inicia con la implementación de la funcionalidad solicitada en los requerimientos, y el uso de los prototipos en caso haberse construido, finalmente se integra todo lo construido.
- Se inicia con los ciclos de pruebas pertinentes, cada organización varía el numero de ciclos que se ejecutan sobre el software, debido a que todo depende de varios factores que hablaremos más adelante.
- Por ultimo se implementa y entrega el sistema al cliente.
Los anteriores serian el "happy path" de un software, sin embargo es importante mencionar que la mayoría de las veces no cabe en el camino correcto, ya que suelen presentarse ciertas situaciones que nos obligan a tener desviaciones en la planificación.
En los próximos capítulos les platicare de "SCRUM" y "Desarrollo en cascada".
Estaré atento a sus comentarios, y retro-alimentación ya que, cada quien vive estos temas de manera distinta, no mejor ni peor.

