El desarrollo de un proyecto de inicio a fin puede ser un dolor de cabeza si no se lleva a cabo de la manera adecuada. Si al comienzo no se definen los alcances, objetivos, entregables y una manera de medir el éxito del proyecto que satisfaga a todas las partes involucradas, es muy común que los equipos y los clientes se sientan frustrados por las expectativas versus el producto final entregado.
En el caso particular del desarrollo de sitios y aplicaciones web frecuentemente se omiten algunas etapas indispensables de planeación para el ciclo de vida del proyecto que posteriormente generan rondas de cambios interminables, puesto que el trabajo no se lleva a cabo con una visión estratégica desde el comienzo.
¿Cómo podemos resolver estas comunes y desagradables cuestiones para garantizar el mejor desempeño de los equipos, una óptima gestión de recursos y la entrega de los resultados prometidos?
En primer lugar, nos valemos de las metodologías de trabajo ya existentes. Sabemos que para que la ejecución de cualquier proyecto se lleve a cabo de la mejor manera, en el campo de la gestión de proyectos se han creado metodologías tanto lineales como iterativas.
Las metodologías lineales llevan a cabo un paso tras otro, sin cambios en el plan definido al inicio, hasta llegar al resultado esperado. Es muy común en el mercado mexicano solicitar la cotización de un proyecto de manera global, lo cual en muchas ocasiones es poco realista.
Seguir estas metodologías, como Waterfall, suele ser funcional en proyectos de ingeniería, manufactura y construcción. Sin embargo, cuando lo aplicamos al desarrollo de un sitio o aplicación web, estamos dejando de lado los posibles giros inesperados que suelen presentarse en casi todos los proyectos de esta naturaleza, por ejemplo:
Diferentes puntos de vista de las partes interesadas, que generan rondas de cambios infinitas
Los recursos con los que contamos, con base en los presupuestos autorizados al inicio del proyecto, quizás no puedan resolver o implementar nuevos requerimientos una vez que se comienza el trabajo
Hay una única fecha de entrega del proyecto, por lo que el cliente tiene una participación mínima en el proceso de desarrollo
Y muy probablemente, solo en el caso de aplicaciones o sitios muy sencillos, que no se requiera escalar o actualizar en el futuro cercano, puedan llevarse a cabo con un flujo de trabajo lineal que lleve a cabo un paso después del otro, como se muestra en el siguiente diagrama.
Hay muchos estilos de Waterfall, pero todos ellos se caracterizan por su forma de cascada o secuencial, es decir, que dos equipos de áreas distintas no pueden trabajar en tareas de manera simultánea si no que primero se debe finalizar una actividad antes de iniciar otra. Por ejemplo, en el desarrollo web, el equipo de diseñadores trabajaría de forma previa al equipo de desarrollo, y no hay iteraciones cíclicas que permitan un feedback por parte del cliente en cada etapa; por decirlo de una forma sencilla, lo que el cliente manifiesta como requerimiento al inicio del ciclo de vida del proyecto es lo que obtiene, no hay ajustes sobre la marcha sino hasta la entrega final.
Esta metodología es la más tradicional y secuencial, puede ser de gran utilidad para proyectos en los que desde la primera etapa de planificación se determinen alcances inamovibles a futuro pues, de ser cambiados con el tiempo, generarían muchos costos a la organización.
En Mints Cloud empleamos la metodología Agile en todos nuestros desarrollos, puesto que ha demostrado ser más eficaz. Esta estrategia de trabajo contempla el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto.
Así, el trabajo es realizado mediante la colaboración de equipos organizados, que trabajan de forma simultánea, y están inmersos en un proceso compartido de toma de decisiones a corto plazo, como se puede observar en el siguiente diagrama, que se repite de manera cíclica hasta entregar el proyecto.
La metodología Scrum es un subtipo de los enfoques ágiles que se caracteriza por el desarrollo incremental y por bloques de trabajo con tiempos definidos llamados sprints, que da prioridad a lo que tiene más valor para el cliente. El equipo se sincroniza diariamente y se realizan cuantas adaptaciones sean necesarias en cada iteración.
Cada iteración del ciclo de vida incluye: planeación, análisis de requisitos, diseño, codificación, pruebas y documentación. Teniendo gran importancia el concepto de "Finalizado", ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar a un producto funcional.
Algunos de los beneficios de trabajar con esta metodología son:
A diferencia de una metodología lineal, en Mints Cloud hemos encontrado que lo mejor es que el proyecto se cotice por hora de trabajo… pero no te espantes, puesto que no por eso los equipos operativos tardan más en llevar a cabo las tareas. Si bien, al comienzo del trabajo se entrega un estimado del precio al cliente, este puede variar según los requerimientos que se vayan haciendo sobre la marcha. Esto brinda una flexibilidad absoluta, ya que se pueden hacer tantos ajustes al desarrollo como sea necesario, y siempre se alinea cada etapa de planeación con el presupuesto asignado.
La comunicación de los equipos de trabajo y las partes interesadas es frecuente, y se complementa con la documentación.
El enfoque de las reuniones de trabajo incluye revisores, escritores de documentación y soporte, diseñadores de iteración y directores de proyecto.
Los componentes individuales funcionales son la primera medida del progreso.
Este enfoque es flexible, pues permite la incorporación de mejoras durante el desarrollo mismo del proyecto.
Está centrado en el cliente, puesto que facilita optimizar el customer experience.
Las diferentes áreas del proyecto trabajan de manera conjunta, en tareas simultáneas que tienen como propósito cumplir los objetivos de cada sprint o ciclo de trabajo.
Fomenta la autonomía de cada área de trabajo, sin perder de vista las necesidades del cliente y el producto final que se espera.
Si has sufrido dolores de cabeza al contratar agencias para el desarrollo de sitios o aplicaciones web y no recibir los resultados esperados, haz como nosotros y trabaja con una visión estratégica y metodologías adecuadas, ¡notarás la diferencia!