miércoles, 9 de diciembre de 2015

Agiles

El desarrollo ágil de software envuelve un nuevo enfoque radical para la toma de decisiones en los proyectos de software, refiere a métodos de ingeniería del software basados en 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 auto-organizados y multidisciplinarios, inmersos en un proceso de toma de decisiones a corto plazo compartido. Existen muchos métodos de desarrollo ágil; la mayoría minimiza riesgos desarrollando software en lapsos cortos. El software desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas. Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, revisión y documentación. Una iteración no debe agregar demasiada funcionalidad para justificar el lanzamiento del producto al mercado, sino que la meta es tener una «demo» (sin errores) al final de cada iteración. Al final de cada iteración el equipo vuelve a evaluar las prioridades del proyecto.
Los métodos ágiles enfatizan las comunicaciones cara a cara en vez de la documentación. La mayoría de los equipos ágiles están localizados en una simple oficina abierta, a veces llamadas "plataformas de lanzamiento" (bullpen en inglés). La oficina debe incluir revisores, escritores de documentación y ayuda, diseñadores de iteración y directores de proyecto. Los métodos ágiles también enfatizan que el software funcional es la primera medida del progreso. Combinado con la preferencia por las comunicaciones cara a cara, generalmente los métodos ágiles son criticados y tratados como "indisciplinados" por la falta de documentación técnica.
Las metodologías ágiles son una serie de técnicas para la gestión de proyectos que han surgido como contraposición a los métodos clásicos de gestión como CMMI. Aunque surgieron en el ámbito del desarrollo de software, también han sido exportadas a otro tipo de proyectos.
Todas las metodologías que se consideran ágiles cumplen con el manifiesto ágil que no es más que una serie de principios que se agrupan en 4 valores:
  1. Los individuos y su interacción, por encima de los procesos y las herramientas.
  2. El software que funciona, frente a la documentación exhaustiva.
  3. La colaboración con el cliente, por encima de la negociación contractual.
  4. La respuesta al cambio, por encima del seguimiento de un plan.
Inicialmente, mucha gente asocia metodologías ágiles con falta de documentación o control sobre el proyecto, pero esto es ¡totalmente falso! Lo que se desea es minimizar el impacto de las tareas que no son totalmente imprescindibles para conseguir el objetivo del proyecto. Se pretende aumentar la eficiencia de las personas involucradas en el proyecto y, como resultado de ello, minimizar el coste.
Llegados a este punto, nos preguntamos si son mejores las metodologías ágiles que las tradicionales. La respuesta es que no. Entonces, ¿son mejores las tradicionales frente a las ágiles? Tampoco. Como otras muchas cosas en la vida, depende del tipo de proyecto en el que se apliquen y aquí es donde tienen su punto de unión con los principios Lean Startup.

Las principales metodologías ágiles

Uno de los principales focos de aplicación de las metodologías ágiles son los proyectos tecnológicos. Cada una de ellas tiene sus fortalezas y sus debilidades, pero no son excluyentes. En cada proyecto  podemos adoptar una, o varias, en función de las características del propio proyecto y del equipo.
Entre las metodologías ágiles más usadas se encuentran:
  • SCRUM. Es un marco de trabajo que nos proporciona una serie de herramientas y roles para, de una forma iterativa, poder ver el progreso y los resultados de un proyecto.
  • KANBAN. Se basa en una idea muy simple. Ésta es que el trabajo en curso (Work In Progress, WIP) debería limitarse y sólo deberíamos empezar con algo nuevo cuando un bloque de trabajo anterior haya sido entregado o ha pasado a otra función posterior de la cadena.
  • XP: Es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores y propiciando un buen clima de trabajo.

Si estás pensando en adoptar alguna de estas metodologías, antes de seleccionar cuál, debes hacer un análisis de sus debilidades, del tipo de proyecto a gestionar y, si puedes, consulta con algún gestor de proyectos. Yo, desde mi experiencia, te puedo dar 2 consejos muy básicos:
  • Cambiar una forma de trabajar en una organización es una tarea ardua y difícil. Al implantar una metodología ágil, no realices un cambio demasiado brusco, adóptalas poco a poco.
  • En cualquier metodología ágil el cliente/usuario del software, tiene un papel clave. Si su implicación y/o dedicación no va a ser muy alta, quizás este tipo de metodologías no sean las más apropiadas (o habría que buscar alguna alternativa para disponer del conocimiento del cliente/usuario del software a desarrollar).
http://blog.leanmonitor.com/es/que-son-las-metodologias-agiles/

No hay comentarios:

Publicar un comentario