Consultoría & Consultores

En el mundo actual de la gestión de proyectos de desarrollo software existen múltiples metodologías. La realidad es que la mayoría de los responsables y líderes no se adhieren a una metodología única, sino que combinan varias prácticas para adaptarse a lo que el proyecto requiera. Según la encuesta “Pulse of the Profession 2019” de PMI Project Management Institute, el 89% de los profesionales de proyectos afirmaban aplicar técnicas híbridas de gestión de proyectos.

A continuación, expondremos las metodologías de proyectos de desarrollo software más comunes, y explicaremos las particularidades, ventajas e inconvenientes de cada una de ellas. De esta manera tendrás una visión general de las posibles opciones, y podrás identificar cuál es la metodología que mejor se adapta a un determinado proyecto software.

  1. Metodología Agile – Scrum
  2. Metodología Waterfall – Cascada
  3. Metodología DevOps

Metodología Agile – Scrum

Agile más que una metodología es un conjunto de principios para el desarrollo software, una filosofía, un conjunto de valores a seguir:

  • Individuos e interacciones sobre procesos y herramientas
  • Software funcionando sobre documentación extensiva
  • Colaboración con el cliente sobre negociación contractual
  • Respuesta ante el cambio sobre seguir un plan

Y Scrum es una metodología de gestión de proyectos que pone en marcha los principios Agile y procesos para mejorar la entrega.

Un proceso de desarrollo ágil o Scrum es recomendable para proyectos en los que el objetivo final no se especifica en detalle, ya que es un proceso de diseño y construcción flexible e iterativo.

En él, el cliente dirige el proceso en base a entregables intermedios y los nuevos conocimientos pueden aplicarse rápidamente. En pequeños pasos, sprints, se entregan los productos intermedios que pueden ser evaluados. Ser ágil ayuda a los equipos a responder a la imprevisibilidad mediante procesos de trabajo incrementales e iterativos.

Ventaja: adaptabilidad a las situaciones cambiantes, y una comunicación adecuada y continua entre el equipo del proyecto, y entre éste y el cliente.

Inconveniente: mayor nivel de esfuerzo por parte del cliente.

Metodología Waterfall – Cascada

La metodología de gestión de proyectos en cascada tiene un enfoque muy simple: generar una planificación sólida del proyecto en su totalidad, y ejecutar las diferentes fases del proyecto de una vez, correctamente.

En caso de que las especificaciones estén claramente definidas y se esperen pocos o ningún cambio, esta metodología de proyecto es la más eficiente.

Se hace un buen plan y se ejecuta en una secuencia estricta, adhiriéndose a los requisitos definidos antes de comenzar el proyecto. Cada fase debe ser completada antes de que la siguiente fase pueda comenzar, sin superposición de las fases. Típicamente, en un enfoque de Cascada, el resultado de una fase actúa como la entrada para la siguiente fase secuencialmente. El proyecto se entrega en su totalidad en un ciclo único, por lo que no se puede ir mostrando el avance del proyecto al cliente, lo que es bastante arriesgado.

Ventaja: necesita una menor interacción con el cliente en comparación con la metodología Agile.

Inconveniente: limitadas posibilidades de incluir nuevos conocimientos y de atender a los cambios. Una vez aprobado el plan, hay poco margen para adaptarlo a menos que sea absolutamente necesario, y los cambios que se necesitan suelen requerir solicitudes de cambio.

Metodología DevOps

Esta metodología de desarrollo software se centra en la comunicación, colaboración e integración entre los desarrolladores de software y los profesionales de IT, para asegurar una mayor agilidad en ciclos de despliegue.

Esta metodología de gestión de proyectos software es especialmente adecuado para el desarrollo de aplicaciones con cambios funcionales frecuentes.

A la hora de planificar el proyecto se forman equipos de operaciones IT y desarrollo, rompiendo el “muro” tradicional existente entre estos grupos de trabajo. Estos nuevos equipos de DevOps son los responsables del despliegue del software y de enriquecer y mantener la aplicación.

Ventaja: se asegura una mayor agilidad en ciclos de despliegue y en el mantenimiento del producto. La corrección de errores es más rápida.

Inconveniente: hay que tener especial cuidado con los accesos a datos de producción.

En decide4AI utilizamos las tres metodologías de proyecto explicadas en el artículo o combinaciones de las mismas. En general, no se puede decir que una metodología sea mejor que otra, sólo es posible determinar cuál es el mejor enfoque en el contexto de un proyecto específico.

Las metodologías Agile y DevOps tienen en común una entrega y pruebas más continuas. Mientras que la metodología en cascada está más enfocada a la entrega de un resultado final sólido. La diferencia entre Agile y DevOps es que Agile está enfocado en una estrecha colaboración entre el cliente y el desarrollador para atender los cambios funcionales y nuevos conocimientos; mientras que DevOps se centra en una estrecha colaboración entre los desarrolladores y los departamentos de IT para garantizar un despliegue rápido y sin problemas. Combinar las metodologías Agile y DevOps es perfectamente posible.