En anteriores artículos hemos repasado algunas metodologías ágiles, en realidad he hablado de un par alejándome de las más populares. Y estoy reflexionando sobre un artículo en relación a cómo plantearía yo la adopción de las metodologías ágiles en una organización. En un tema complejo, pero apasionante, que muestra que lo importante es conocer lo que te pueden aportar las diferentes metodologías ágiles, y tradicionales diría yo, para ir creando el escenario optimizado para tu organización.
Es decir, de la siguiente lista, lo importante no es elegir uno, si no entender que nos puede aportar cada uno de ellos, según nuestra situación puntual.
- SCRUM
- XP
- Crystal
- Lean Software Development - Descripción en el Blog
- Kanban - Descripción en el Blog
- Dynamic System Development Method (DSDM)
- Feature-Driven Development (FDD)
- SCRUMBAN
- User-Center Design - Artículos previos
SCRUM
SCRUM es problablemente una de las metodologías ágiles que más se han extendido, en la última presentación que vi de Angel Medinilla su nivel de adopción se situaba entorno al 58%, más un 20% más fruto de híbridos con KANBAN o XP.
Fue creada por Ken Schwaber y Jeff Sutherland. Que publicaron una breve colección de prácticas o guías a seguir, y una relación de roles predefinidos, imponiendose rápidamente en un standard de facto dentro de la gestión ágil.
La simplicidad y sencillez de sus prácticas facilitan eses interés y justifica la fácil adopción, pese a necesitar en algunos casos ser ampliado o reforzado en ciertos ámbitos mediante otras metodologías, algo para lo que, cómo comentaba en la introducción, nos debe parecer parece perfecto.
- The Scrum Alliance Website
- Scrum (development) (Wikipedia)
- Mountain Goat Software
- Agile Software Development with Scrum (Ken Schwaber & Mike Beedle)
EXTREME PROGRAMMING - XP
XP creado originalmente por Kent Beck, ha sido y sigue siendo uno de las más destacadas metodologías ágiles, especialmente orientada al desarrollo, cosa que lo hace especialmente complementario a otros frameworks más genéricos que abarcan el ciclo de vida completo del desarrollo software.
Al igual que el resto de metodologías ágiles promueve la implicación del cliente, iteraciones rápidas que faciliten el feed-back, testing y planificación continuada, etc.
Los cuatro pilares de XP son:
- Simplicidad
- Comunicación
- Feedback
- Valentía
Las 12 prácticas que promueve son las siguientes, algunas de ellas cambiaron por completo el desarrollo, y ahora forman parte de cualquier equipo de desarrollo preocupado por la excelencia y la calidad del producto:
- Planning Game
- Small Releases
- Customer Acceptance Tests
- Simple Design
- Pair Programming
- Test-Driven Development
- Refactoring
- Continuous Integration
- Collective Code Ownership
- Coding Standards
- Metaphor and Sustainable Pace
Algunas referencias:
- Extreme Programming Website
- What is Extreme Programming (xprogramming.com)
- Extreme Programming (Wikipedia)
- "Extreme Programming Explained - Embrace Change (Kent Beck)
CRYSTAL
Es una familia de metodologías de desarrollo creadas por Alistair Cockburn, se auto denominan autoadaptables, la más reconocida es Crystal Clear, personalmente no he trabajado nunca con ellas en ninguna de mis anteriores experiencias.
Crystal recomienda una metodología específica en función de cada proyecto particular, basándose en tres factores críticos:
- Densidad de comunicación (Volumen de personas involucradas)
- Criticidad del sistema
- Priorización del proyecto
Crystal está fundamentalmente enfocada en la comunicación, con una especial atención en la interacción, la comunidad, el equipo, las personas y sus perfiles y habilidades.
Las diferentes metodologías Crystal se basan en los dos siguientes fundamentos:
- Los equipos pueden racionalizar los procesos a medida que van madurando e integrándose
- Los proyectos son únicos y dinámicos. Y requieren de métodos específicamente diseñados para cada esfuerzo.
Alguna referencia:
- Crystal Methodologies (Alistair Cockburn)
- Crystal Clear Software Development (Wikipedia)
- Crystal Clear: A Human-Powered Methodology for Small Teams (Alistair Cockburn)
DYNAMIC SYSTEM DEVELOPMENT METHOD - DSDM
Está considerada una de las metodologías ágiles iniciales, desarrollada en 1994 por DSDM Consortium. Según sus propios creadores se define cómo:
Un marco de ejecución de proyectos que ayuda al desarrollo y suministro de soluciones de negocio en plazos ajustados y presupuestos fijos.
Sigue un modelo de Consorcio, donde los miembros pagan una cuota anual por seguir acreditados en el uso de la metodología ( 2.000$ / año)
As such, it has the most developed training, support, templates, tools, and accreditation services of the agile methods (although Scrum, with its Scrum Master series of certifications, is close).
El método consiste en tres fases iterativas que se repiten: Modeling, Design-Build, e Implementation. Contrasta con otras metodologías ágiles en lo estricto de sus timeboxes, las funcionalidades pueden cambiar, pero no la fecha de entrega.
DSDM provee un sistema de priorización, todavía no hemos hablado en el Blog de MosCoW, lo haremos pronto, las categorías propuestas son:
- Must have
- Should have
- Could have
- Want to have
Siendo importante que las prioridades se asignen en función del valor de negocio que aportan al cliente, para mejorar la eficiencia y la simplicidad del desarrollo.
DSDM está basado en 9 principios clave que giran principalmente al rededor que las necesidades y el valor para el negocio del cliente, participación activa del usuario, equipos empowered, entregas frecuentes, testing integrado, colaboración con promotores.
Siendo la primera metodología que hace referencia al criterio de priorización en favor del valor para el cliente, y la regla del 80/20 (El 20% del desarrollo aporta el 80% del valor para el cliente)
Algunas referencias:
Siendo la primera metodología que hace referencia al criterio de priorización en favor del valor para el cliente, y la regla del 80/20 (El 20% del desarrollo aporta el 80% del valor para el cliente)
Algunas referencias:
- DSDM Website
- DSDM: Business Focused Development (DSDM Consortium)
FEATURE-DRIVEN DEVELOPMENT (FDD)
Es una metodología de desarrollo software propuesta por Jeff De Luca y Peter Coad’s. Que se diferencia del resto de métodos ágiles por un diseño up-front design.
Se considera una metodología model-driven, de iteraciones cortas. Se establece un modelo global de dos semanas, de diseño de funcionalidad / construcción de funcionalidad. Intentado que estas sean pequeñas y de un valor tangile, visible, para el cliente.
Se basa en 8 prácticas:
- Domain Object Modeling
- Developing by Feature
- Component/Class Ownership
- Feature Teams, Inspections
- Configuration Management
- Regular Builds
- Visibility of Progress and Results
Algunas referencias:
- Feature Driven Development (Wikipedia)
- Feature Driven Development (dedicated site)
- A Practical Guide to Feature-Driven Development (Stephen R. Palmer and John M. Felsing)
SCRUMBAN
Es una matedología propuesta por Angel Medinilla (Al menos yo la he conocido a través suyo), me parece una propuesta muy interesante que refleja muchas de las necesidades de la mayoría de organizaciones IT locales. Nadie mejor que él, o en este caso su matrial didáctico para presentárnoslo.
Me gustaría estudiar qué conceptos del user-center design podemos incorporar, aunque algunos ya están reflejados. Pero definitivamente me parece un punto de partida inmejorable.
Referencias
- AgileSHERPA - Artículo
- NOOP.nl - Artículo podéis ver una relación mucho más extensa que la expuesta aquí
- Stevens Balagan - Artículo
- TechRepublic - Artículo
No hay comentarios:
Publicar un comentario
Muchas gracias por hacerme llegar tu opinión.
--
Ivan Peralta Santana
LinkedIn | http://www.linkedin.com/ivanperaltasantana
Agility management blog | http://www.useragiledevelopment.com/
Personal blog | http://www.iperalta.com/
Twitter | http://www.twitter.com/jokulsarlon
Photography web | http://www.ivanperaltasantana.com/
Flickr | http://www.flickr.com/ivanperaltasantana