domingo, 26 de febrero de 2017

Comparativa de métodos agiles: XP vs SCRUM

Comparativa de métodos agiles: XP vs SCRUM

Sobre XP (extreme programming):

Extreme Programming o XP es una metodología ágil del desarrollo de software, la cual fue inventada por Ken Beck al final de los años 90’. XP aligera el proceso de desarrollo de software, haciendo inca pie en la obtención de requerimientos, pues para ello, el cliente para a ser parte del equipo de desarrollo, por lo que en todo momento, el software es modelado de acuerdo a sus necesidades más actuales, haciendo que XP sea responsivo a cambios.

Entre sus principales cualidades están, la programación en parejas, historias de usuario, involucración del cliente en el equipo de desarrollo y que se enfoca en los programadores y en general en todo el equipo como personas, por lo que estipula que entre mejor se sienta el equipo en su ambiente, mejor será su rendimiento, entre otras características.

Sobre SCRUM:

SCRUM es aquella metodología ágil, que implica todo un proceso de “buenas practicas” donde el objetivo el desarrollo de un proyecto se lograra con un trabajo colaborativo exitoso. Una de las principales características de esta metodología son los “sprints” los cuales son ciclos de trabajo cortos, que culminan como pequeñas entregas del proyecto. Esta característica, da la propiedad de un desarrollo incremental a SCRUM.

Comparativa:

En la siguiente tabla (Highsmith, 2002), se compara las distintas aproximaciones ágiles en base a tres parámetros: vista del sistema como algo cambiante, tener en cuenta la colaboración entre los miembros del equipo y características más específicas de la propia metodología como son simplicidad, excelencia técnica, resultados, adaptabilidad, etc. También incorpora como referencia no ágil el Capability Madurity Model (CMM).

Metodología
SCRUM
XP
Sistema como algo cambiante
5
5
Colaboración
5
5
Características Metodología (CM)
Resultados
5
5
Simplicidad
5
5
Adaptabilidad
4
3
Excelencia Técnica
3
4
Prácticas de colaboración
4
5
Media CM
4.2
4.4
Media Total
4.7
4.8
Ranking de “agilidad” (Los valores más altos representan una mayor agilidad)


Según los resultados de la tabla, podemos decir que las diferencias en lo que agilidad y rentabilidad se refiere entre SCRUM y XP son casi nulas, sin embargo, XP resulta vencedor, pero por la mínima, el apartado que le da la victoria a XP son las prácticas de colaboración. Justificando este hecho, podemos decir que como tal, XP resulta más colaborativo pues necesita específicamente del cliente para poder efectuarse, el ecosistema que se crea en el equipo de desarrollo es totalmente colaborativo, en cambio, en SCRUM resulta que se tiene ejecutando el rol de “cliente” al “product owner”, el cual puede o no ser el cliente real como tal, este solo necesita tener autorización del cliente real y conocer el proceso de negocio del mismo, mas no participa reactivamente con el equipo como lo hace el cliente en XP.

Tabla Comparativa de características:
   
Metodología
SCRUM
XP
ROLES
·         Product Owner
·         Scrum Master
·         Equipo de Desarrollo (Team)
·         Stakeholders
·         Cliente
·         Gestor del proyecto
·         Coach
·         Tracker
·         Programadores
·         Tester

Proceso
En Scrum un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback y reflexión). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.
El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa como plan del proyecto. En esta lista el cliente prioriza los objetivos balanceando el valor que le aportan respecto a su coste y quedan repartidos en iteraciones y entregas.
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. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico.
Artefactos
·         Product Backlog
·         Sprint Backlog
·         Scrum Taskboard
·         Incremento
·         Sprint
·         Historias de usuario
·         Tareas de ingeniería (task card)
·         Tarjetas CRC

Para finalizar, quisiera dar mi opinión sobre cuál de las dos metodologías me parece “mejor” más no más practica ni más ágil, pero si más cómoda. Esa es XP. La razón es su principal característica, el cliente formando parte del equipo, además de la manera en que presenta las historias de usuario, son sencillas y fáciles de entender, pero el hecho de que el cliente este ahí para colaborar, resolviendo dudas y afinando los detalles en conjunto, le da una clara ventaja respecto a otras metodologías. Sin embargo, quisiera destacar los sprints de SCRUM, ya que me parecen una buena manera de trabajar en equipo de manera rápida y focalizada, si los sprints se redujeran, a la mitad de su tiempo, por ejemplo 15 días, en vez de 30, y las definiciones en los Sprints plannings de las actividades a realizar en estos fueran ajustadas para este tiempo, en mi opinión, serian aún más eficientes.

Referencias

Highsmith, J. (2002). Agile Software Development Ecosystems. Addison-Wesley.


 Dietmar Pfahl. Software Engineering: "Agile/Lean Methods" , University of Tartu

Asif Qumer, Brian Henderson-Sellers, COMPARATIVE EVALUATION OF XP AND SCRUM USING THE 4D ANALYTICAL TOOL (4-DAT) .Faculty of Information Technology, University of Technology, Sydney, NSW, Australia 

No hay comentarios:

Publicar un comentario