Metodología

El desarrollo alineado con tu necesidad

 

En Virtual Software sabemos que para que un proyecto se desarrolle de la manera más rápida, acorde con las preferencias del cliente (usuario), más económica y con la mayor calidad de software posible (software estable y sin haberse reprogramado de manera innecesaria), se debe utilizar el mejor equilibrio entre los dos sistemas más diferentes en su concepción.

En Virtual Software desarrollamos nuestros proyectos basándonos en dos metodologías de trabajo:

Metodología Agile y Metodología en cascada (Waterfall)

Dependiendo del proyecto, tamaño del mismo y cliente es más recomendable una metodología que la otra.

Cuanto más grande sea el proyecto, más incertidumbres sobre su versión tenga y más necesidad haya de ir teniendo versiones, es más recomendable la metodología agile

Metodología Agile

¿En que consiste la Metodología Agile?

En la Metodología Agile, el proyecto tiene una concepción abierta y modificable en su planteamiento.

Se basa en describir una lista inicial de requerimientos (historias de usuario) para cada perfil de usuario, a la que llamamos “backlog”.

El desarrollo se estructura en ciclos de tiempo iguales o “sprints”, por ejemplo, de 3 semanas. Al acabar un sprint, recibes una versión que incluye el conjunto de requerimientos pactados, y que son plenamente funcionales y operativas.

Estas versiones te permiten valorar y analizar sobre cómo tus usuarios perciben la aplicación, y por tanto, puedes ir tomando decisiones sobre cómo debe evolucionar la solución.

En la metodología ágil se contempla perfectamente que cambies requerimientos y el orden en que quieres seguir el desarrollo del siguiente sprint, o incluso haciendo cambios significativos “pivotando” de acuerdo a las necesidades del mercado y del negocio.

Por cada funcionalidad / historia de usuario se describirán sus procesos principales y las características más importantes. El nivel de detalle de cada historia de usuario será suficiente para que ambas partes sepan delimitar sus objetivos y alcance.

Una vez tengamos las historias de usuario preparadas, las dividiremos en varias releases. Cada release deberá obtener como resultado una versión del sistema con valor de negocio suficiente como para poder ponerla en producción real.

A su vez cada release la dividiremos en partes más pequeñas. Estas partes se corresponderán a un conjunto de funcionalidades del Backlog que se puedan programar completamente en esas tres semanas. A estas partes de las versiones o fases las llamaremos sprints.

Por tanto, el desarrollo agile se realiza a base de sprints. Al acabar un sprint podemos tener:

  • Una versión para producción (release)
  • Una versión interna, que nos sirve para avanzar hasta completar los sprints necesarios que desemboquen en otra versión

Estrictamente todos los sprints pueden generar versiones disponibles para ser pasadas a producción

 

Ventajas de la Metodología Agile
  • Agile significa «moverse rápidamente, lo que indica el enfoque dinámico de Agile».
  • Agile es una metodología flexible.
  • Agile es muy flexible con los cambios.
  • La metodología ágil satisface los requisitos cambiantes.
  • Su entrega rápida ayuda a satisfacer a los clientes.
  • No hay conjeturas entre el desarrollo equipo y cliente.
  • Incluye entradas continuas del cliente y comunicación cara a cara.
  • Es un proceso de desarrollo altamente colaborativo.
  • Es un proceso de mejoras continuas.
  • Se espera que los requisitos evolucionen y cambien en este proceso.
  • Tiene una implementación rápida para el trabajo.
  • Sus fases están bien procesadas y se completan de una en una.
  • Este proceso ayuda a medir el progreso por la cantidad de trabajo completado.
  • Este es un proceso en constante mejora ya que se pueden realizar cambios durante el proceso.
  • Ayuda a entregar exactamente de acuerdo con las expectativas del cliente.
  • Es fácil agregar características actualizadas en el programa en cualquier momento.
  • Las prioridades del proyecto se evalúan al final de cada sprint, lo que ayuda al cliente a agregar sus comentarios sobre el producto.
  • Los posibles errores se resuelven en cada sprint, por lo que hay menos posibilidades de que se produzca un error al final del ciclo de desarrollo. .
  • Esta metodología ayuda a lanzar el programa en cualquier nivel.
  • Los equipos se motivan a sí mismos debido a la funcionalidad cruzada.
  • El seguimiento del progreso es muy fácil en esta metodología.
  • La acumulación estructurada ayuda a monitorear el progreso.

Metodología en Cascada (Waterfall)

¿En que consiste Metodología en cascada (Waterfall)

Esta metodología es una aproximación lineal al desarrollo de software y ha sido la más utilizada durante los últimos 30 años.

La secuencia que sigue este método está compuesta de las siguientes fases:

  1. Captura y documentación de requisitos
  2. Diseño
  3. Desarrollo
  4. Test
  5. Pruebas de aceptación por parte del cliente
  6. Corrección de errores y ajustes finales
  7. Puesta en producción

En un desarrollo Waterfall puro, cada una de estas fases representan una etapa diferenciada en el desarrollo del producto final.

En esta metodología, cada una de estas etapas deben darse por concluidas antes de comenzar con la siguiente. Además, entre cada una de ellas, generalmente tenemos un hito bloqueante que nos impide avanzar a la siguiente si este no se libera adecuadamente.

Ventajas de la Metodología en cascada (Waterfall)
  • Waterfall es un proceso secuencial y bien estructurado.
  • Es un modelo de desarrollo simple y fácil de entender y usar.
  • No es modificable en ningún momento y es fácil para administrar debido a su consistencia.
  • Los requisitos son muy claros y fáciles de aprender incluso antes del desarrollo.
  • Cada parte dividida se completa en un período de tiempo específico.
  • La implementación es fácil debido a un patrón lineal.
  • La calidad del desarrollo es mejor debido a la documentación adecuada.
  • Este proceso necesita requisitos claramente definidos.
  • Los clientes conocen el tamaño, el coste y el cronograma de los proyectos.
  • Los clientes tienen una idea clara sobre la producción del programa.
  • Debido a la sólida documentación, cualquier tipo de rotación de personal no afectará al proyecto.
  • Esta metodología es muy útil para gestionar dependencias.