Teoría

15 febrero 2016

Las técnicas ágiles de desarrollo de software son una serie de ideas y conceptos que pueden o no aplicarse en el ciclo de vida de desarrollo de un proyecto determinado. Son muchas las ideas y conceptos que irán surgiendo conforme avancemos en los conocimientos que hay hoy en día sobre el tema, saber qué piensan las personas que están utilizándolas y sobre todo conocer sus experiencias al aplicarlas a situaciones reales nos permitirá llegar a tener gran cantidad de recursos para poder descubrir qué combinación de ellos es la más adecuada para nuestro equipo de trabajo.

 
 

El manifiesto ágil

 
El manifiesto ágil es simplista, busca un cambio en ciertos aspectos de la ingeniería clásica del software que se ha demostrado que no son universalmente válidos. Tras muchas deliberaciones 17 de las personas más influyentes en el mundo del desarrollo del software nos dijeron simplemente que…

Estamos descubriendo formas mejores de desarrollar
software tanto por nuestra propia experiencia como
ayudando a terceros. A través de este trabajo hemos
aprendido a valorar:

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

Esto es, aunque valoramos los elementos de la derecha,
valoramos más los de la izquierda.

Sus primeros firmantes fueron:

Kent Beck James Grenning Robert C. Martin
Mike Beedle Jim Highsmith Steve Mellor
Arie van Bennekum Andrew Hunt Ken Schwaber
Alistair Cockburn Ron Jeffries Jeff Sutherland
Ward Cunningham Jon Kern Dave Thomas
Martin Fowler Brian Marick

 
 

Los principios del manifiesto ágil

 
Se trata de doce principios que fundamentan el desarrollo ágil de software:

Nuestra mayor prioridad es satisfacer al cliente
mediante la entrega temprana y continua de software
con valor.

Aceptamos que los requisitos cambien, incluso en etapas 
tardías del desarrollo. Los procesos Ágiles aprovechan
el cambio para proporcionar ventaja competitiva al 
cliente.

Entregamos software funcional frecuentemente, entre dos
semanas y dos meses, con preferencia al periodo de 
tiempo más corto posible.

Los responsables de negocio y los desarrolladores
trabajamos juntos de forma cotidiana durante todo
el proyecto.

Los proyectos se desarrollan en torno a individuos 
motivados. Hay que darles el entorno y el apoyo que 
necesitan, y confiarles la ejecución del trabajo. 

El método más eficiente y efectivo de comunicar 
información al equipo de desarrollo y entre sus 
miembros es la conversación cara a cara.

El software funcionando es la medida principal de 
progreso.

Los procesos Ágiles promueven el desarrollo 
sostenible. Los promotores, desarrolladores y usuarios
debemos ser capaces de mantener un ritmo constante 
de forma indefinida.

La atención continua a la excelencia técnica y al 
buen diseño mejora la Agilidad.

La simplicidad, o el arte de maximizar la cantidad de
trabajo no realizado, es esencial.

Las mejores arquitecturas, requisitos y diseños
emergen de equipos auto-organizados.

A intervalos regulares el equipo reflexiona sobre
cómo ser más efectivo para a continuación ajustar y
perfeccionar su comportamiento en consecuencia.

 
 

La alianza ágil

 
La Alianza Ágil es una agrupación sin ánimo de lucro que persigue avanzar en el desarrollo de los principios y prácticas ágiles y dar soporte a quienes se dediquen a su investigación o los apliquen en sus empresas.

The Agile Alliance is a nonprofit organization with global membership, committed to advancing Agile
development principles and practices. Agile Alliance supports those who explore and apply Agile principles
and practices in order to make the software profession more productive, humane and sustainable. We share our 
passion to deliver software better everyday.

En este mapa interactivo puedes descubrir algunas prácticas y técnicas ágiles. Cada punto del mapa nos conduce a la explicación de la práctica ágil a la que representa, ve revisando la información que proporciona sobre las prácticas que ya conoces: Kanban board, Timebox, User stories, Refactoring…

En España existe una comunidad con el mismo propósito, agile-spain, aunque no mantienen muy actualizada su página web.

 
 

Técnicas ágiles

 
Las técnicas ágiles de desarrollo de software no surgen del manifiesto ágil, algunas de ellas ya existían y otras estaban llevándose a cabo sin una definición formal. El manifiesto ágil fue una exposición de las conclusiones a la que llegaron diversos personajes relevantes en el mundo del desarrollo de software.

  • ASM
  • Lean Development (LD)
  • Adaptive Software Development (ASD)
  • Agile Unified Process (AUP)
  • Crystal Clear
  • Feature Driven Development (FDD)
  • Lean Software Development (LSD)
  • Kanban
  • Open Unified Process (OpenUP)
  • Programación Extrema (XP)
  • Método de desarrollo de sistemas dinámicos (DSDM)
  • Scrum
  • G300

 
 

Material para examen

 
Cualquiera de los siguientes enlaces nos servirá para obtener material para el examen final.

  1. El equipo ágil auto-organizado