Metodologías agiles

Manifiesto Ágil

  • 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

http://agilemanifesto.org/

Extreme Programming XP

xp

Extreme Programming (XP) es una metodologia de desarrollo de software ágil que tiene como objetivo mejorar la calidad del software y la capacidad de respuesta a los requisitos cambiantes de los clientes. Como un tipo de desarrollo de software ágil, promueve frecuentes “lanzamientos”(relases) en ciclos cortos de desarrollo, cuyo objetivo es mejorar la productividad e introducir puntos de control en los que se puedan adoptar nuevos requisitos de los clientes.

Algunas prácticas de XP son:

  • Pair programming
  • Planning game
  • Test driven development
  • Whole team:
    • “Within XP, the customer is not the one who pays the bill, but the one who really uses the system.””
  • Continuous integration
  • Design improvement
  • Small releases
  • Shared understanding
    • Coding standard
    • Collective code ownership
    • Simple design

Scrum

scrum-cycle

Scrum es una metodologia Ágil para completar proyectos complejos. Scrum originalmente se formalizó para proyectos de desarrollo de software, pero funciona bien para cualquier ámbito de trabajo complejo e innovador. Las posibilidades son infinitas. El marco de Scrum es engañosamente simple. fuente

Algunos conceptos a considerar al realizar scrum son:

  • Product Owner
  • Scrum master
  • Scrum team
  • Sprint: periodo de tiempo en el que el equipo se compromete a completar una serie de features

Algo importante que resalta en scrum es que durante el sprint no se aceptan nuevos features ni cambios. Es hasta que este termina que se realiza la junta de planeacion (planning meeting) y en ella se definen los alcanzes para los proximos sprints.

Kaban

kanban-board

A diferencia de scrum donde existe una planeacion periodica, kanban se enfoca en el trabajo diario. Pareceria que al no existir una planeacion formal el desarrollo se conviernte un caos, sin embargo esto permite una mayor adaptacion al cambio. Mientras que en scrum los sprints estan definidos por periodos fijos, kaban permite extender el trabajo a mas de un sprint, considerando que la unidad minima de trabajo es 1 dia.

En Kanban solo se puede trabajar en una tarea a la vez.