Barra Superior

PMOinformatica.com
La oficina de proyectos de informática
La web sobre gerencia de proyectos de informática, software y tecnología.
Síguenos en:     

lunes, 17 de junio de 2013

Una breve historia de las metodologías ágiles

Imagen obtenida de: Wikipedia
El Desarrollo de software ágil, es un grupo de métodos basados en el desarrollo iterativo e incremental. Bajo esta filosofía, los requerimientos y soluciones evolucionan por medio de la colaboración de equipos multifuncionales autorganizados.

En el artículo, pmoinformatica.com "La Oficina de Proyectos de Informática" presenta una breve historia de las metodologías ágiles, remontándose a precursores como el Lean Manufacturing (Manufactura esbelta) de Toyota (1940) y el Proceso de Desarrollo de Software Adaptativo (1970). Luego en los 90 surgieron las llamadas "Metodologías de Desarrollo de Software de peso liviano" (Lighweight), como Crystal (1992), Scrum (1995), Feature Driven Development (1997), Desarrollo de Software Adaptativo (1999), Extreme Programming (1999).

El Manifiesto Ágil fue promulgado en 2001 y desde entonces el movimiento ágil a continuado evolucionando, con exponentes como el Desarrollo basado en comportamiento (2006), el Lean Software Development (2003) y el Kanban aplicado al desarrollo de Software (2007).

A continuación el artículo:

La Historia de las Metodologías ágiles

El desarrollo ágil es un marco conceptual que reconoce las distintas interacciones y cambios que ocurren en todo desarrollo de software. Evolucionó a partir de varios métodos. El Término "Ágil" fue definido por el "Manifiesto Ágil" en 2001. A continuación presentamos una línea de tiempo con los principales eventos en la historia del movimiento ágil:

1930 - Ciclo PDCA

Walter Shewhart propone el ciclo de "Planear", "Hacer", "Estudiar" y "Actuar", un concepto que luego fue difundido por Deming.

1940 - Kanban, Sistemas de Producción de Toyota y el Lean Manufacturing (Manufactura esbelta)

Taiichi Ohno inventa el método Kanban en Toyota. El Lean Manufacturing es una fuente de inspiración y precursor del movimiento ágil.

1974 - El Proceso de Desarrollo de Software Adaptativo

Un Paper de E.A. Edmonds presenta el concepto de "Proceso de Desarrollo de Software Adaptativo" en 1974. Asimismo, también durante los 70, Tom Gild publica conceptos sobre la Gestión de Proyectos Evolutiva (EVO).

1992 - Crystal

Alistair Cockbur presenta los Métodos Crystal, el punto de inicio de la evolución de las metodologías de desarrollo de software que eventualmente resultaron en lo que hoy se conoce como el movimiento ágil.

Crystal puede ser aplicada en equipos de trabajo de entre 6 y 8 desarrolladores localizados en la misma área, trabajando en sistemas no críticos para la vida (es decir los fallos son tolerables).

1993 - Refactorización

Bill Opdyke presenta el concepto de "Refactorización" en su paper titulado "Creando Superclases Abstractas por medio de la Refactorización".

La Refactorización de código es una técnica para la reestructuración de piezas de código existente, alterando su estructura interna sin afectar su comportamiento con el exterior, que se ejecuta para mejorar los atributos no funcionales de un software.

Formación en metodologías ágiles



¿Buscas formarte en la aproximación Agile y el marco de trabajo Scrum? la metodología ágil más utilizada en el mundo.

Con el curso online en directo (Onlive) de gestión ágil de proyectos con Scrum, conocerás los principios ágiles, la metodología Scrum, sus roles, instrumentos y prácticas.




Como adicional, el curso te ayuda a prepararte para las certificaciones de Professional Scrum Master I (PSM I), Professional Scrum Product Owner (PSPO I) de scrum.org o la certificación Fundamentos Agile / Scrum de EXIN.

Más cursos >>

1995 - Programación en Pares (Pair Programming)

Es un concepto que fue simultáneamente ideado, pero de forma independiente por varios autores. Por una parte Jim Coplien publicó un Paper , que definió la "Programación en Pares" como un patrón de desarrollo de software. Por otra parte Larry Constantine definió los "duos dinámicos" en su libro "Constantine on Peopleware" del mismo año.

Este concepto se convirtió en una parte integral de la Programación Extrema.

Se han realizado muchas investigaciones que han demostrado la efectividad de la programación en pares. Sin embargo, la filosofía no está reflejada en el Manifiesto Ágil.

1995 - Scrum

El método Scrum fue ideado por Ken Schwaber y Jeff Sutherland, quienes lo presentaron en la conferencia OOPSLA 95 (Object-Oriented Programming, Systems, Languages & Applications) en Austin Texas. Jeff Sutherland es el Presidente (CEO) de Scrum, Inc y Ken Schawaber es el fundador de Scrum.org.

Mike Beedle fue uno de los pioneros en adoptar Scrum y colaboró con su adopción en muchas organizaciones.

Como se sabe, Scrum es prácticamente el estándar de facto para el desarrollo ágil.

1997 - Desarrollo guiado por funcionalidades / Feature Driven Development (FDD)

El método FDD fue inicialmente ideado por Jeff De Luca. En él se definen mejores prácticas como son: Modelado de objetos de dominio, Desarrollo por funcionalidades, Propiedad individual de las clases (Código), Equipos de trabajo por funcionalidad, Inspecciones, Gestión de Configuración, Compilaciones regulares (periódicas) y visibilidad del avance y resultados.

El Proceso FDD fue explicado por  medio de la publicación del libro "Modelado Java a Colores con UML: Componentes y Procesos Empresariales", cuyos coautores son Jeff De Luca y Peter Coad.

1999  Desarrollo de Software Adaptativo

Jim Highsmith formalizó el concepto de Desarrollo de Software Adaptativo y público su libro del mismo nombre. La idea creció y evolucionó hacia las metodologías de Desarrollo Rápido de Aplicaciones (RAD). La metodología propone un ciclo de vida de 3 fases: Especulación, Colaboración y Aprendizaje.

1999 - Programación Extrema / Extreme Programming (XP)

Mientras trabajaba en Chrysler, Kent Beck desarrolla el concepto de Programación Extrema, publicando el método en 1999 en un libro titulado "Extreme Programming Explained". Como parte de la Programación Extrema, también formuló los conceptos de Historias de Usuario y Planificación de Releases. La metodología especifica buenas prácticas para la planificación, gestión, diseño, codificación y pruebas.

Ward Cunningham  y Ron Jeffries colaboraron con Beck al escribir el libro sobre XP, a los tres se les considera los fundadores de la Programación Extrema.

1999 - Integración Continua

Kent Beck definió este concepto también, pero fue un paper de Martin Fowler el que lo popularizó. 

2001 - El Manifiesto Ágil

Bob Martin, reúne a otros 16 líderes del movimiento ágil, para escribir el "Manifiesto Ágil", que engloba las metodologías que hasta ese momento se les conocía como "Metodologías de Desarrollo de Software de peso liviano".

Lecturas recomendadas

Proyectos Ágiles con Scrum: Flexibilidad, aprendizaje, innovación y colaboración en contextos complejos 
Autor: Martin Alaimo; Martin Salas.

>> Latinoamérica (amazon.com)
>> España (amazon.es)
>> Ver reseña


Succeding with Agile
Autor: Mike Cohn
>> Latinoamérica (amazon.com)
>> España (amazon.es)





2002 - Desarrollo guiado por pruebas / Test Driven Development (TDD)

El concepto se originó el enfoque de "Probar primero" asociado a la Programación Extrema (XP). Luego tomo mayor con la publicación del libro "Desarrollo guiado por pruebas: Por ejemplos" (Test Driven Development: By Example), escrito por Kent Beck.

Luego Kent Beck escribe otros libros sobre el tema como "Rediscovering Test-Driven Development".

2002 - Planning Poker

También en 2002 nace la técnica de Planning Poker, ideada por James Greening y escrita en un Paper.

2003 - Desarrollo de Software Esbelto / Lean Software Development

Mary y Tom Poppendieck presentan su obra "Lean Software Development".

El Lean Software Development es una adaptación de los principios de la manufactura esbelta y de los del desarrollo de software. Presenta 7 principios: Eliminar desperdicio, amplificar el aprendizaje, Decidir tan tarde como sea posible, entregar lo más rápido posible, dar poder al equipo (empowerment), construir integridad y ver la totalidad. Como se puede ver estos principios están alineados con la filosofía ágil.

¿Es el Lean Software Development una metodología ágil?, o es algo distinto, muchos la consideran como el próximo eslabon en la evolución del desarrollo ágil.

2006 - Desarrollo guiado por comportamiento / Behavior Driven Development

Dan North presenta su obra "Behavior Driven Development", un método que combina las principales ideas y técnicas del TDD con las ideas del Diseño guiado por dominio y el Análisis y Diseño orientado a objetivos. El método se enfoca en proporcionar herramientas y procesos colaborativos entre desarrolladores de software y analistas funcionales, buscando acercar a los técnicos de software con las necesidades que impulsan al área de negocio.

2007 - Retrospectivas

Esther Derby y Diana Larsen escriben su obra "Agile Retrospectives", estableciendo las reuniones retrospectivas como práctica ágil estándar.

2007 - Kanban para el Desarrollo de Software

David Anderson presenta su obra "Kanban", adaptando el Kanban para el desarrollo de software. El método se enfoca en la entrega "justo a tiempo" y en no sobrecargar a los desarrolladores de software, tal como su precursor el Kanban para manufactura perfeccionado por Toyota. Bajo este enfoque, todas las tareas necesarias para entregar una funcionalidad al cliente se le muestran a los desarrolladores, quienes toman la tarea a realizar de una cola, de forma similar al backlog definido en Scrum.

El Kanban no prescribe una serie de pasos o métodos, no existe algo como "el método de Gestión de Proyectos Kanban", en su lugar, la intención es iniciar con los roles y procesos que se tienen actualmente y partir de allí estimular cambios continuos, incrementales y evolucionarios sobre el método de trabajo.

2009 - Manifiesto de la Artesanía de Software (Software Craftmanship)

Los asistentes a la primera conferencia internacional de Artesanía de Software escriben sus conclusiones y promulgan el "Manifiesto de Artesanía de Software". La artesanía de software no solamente se trata de prácticas de programación sino también de formar a la siguiente generación.

2009 - Lean Startup

Eric Ries escribe su obra "Lean Startup". Es una metodología mayormente teórica para el desarrollo de empresas y productos. Basado en las experiencias de Ries trabajando con varios emprendimientos (startups), el método se basa en que los ciclos de desarrollo de productos pueden reducirse en duración por medio de ciclos continuos de experimentaciones, iteraciones y lanzamientos de producto.

Ries establece que si las Compañías construyen sus productos o servicios de forma iterativa, buscando lanzarlos al cliente lo antes posible y adquirir aprendizaje a partir de allí, pueden evitarse los costosos proyectos y lanzamientos de nuevos productos.

¿y qué opinas tu?

¿Y qué opinas tu?, ¿Cuales métodos de desarrollo ágil has utilizado?, ¿Cual ha sido tu experiencia con estos?, ¿Conoces alguna historia o experiencia que desees compartir?. Te invitamos a dejarnos comentarios en la Web de La Oficina de Proyectos de Informática (pmoinformatica) (Si lo deseas, puedes firmar tu comentario con la dirección de tu web). Asimismo, te invitamos a suscribirse por los distintos canales, incluyendo lista de correo electrónico, al Twitter @PMOInformatica, a nuestra página de Facebook o al feed RSS.

¿Interesado en libros sobre el desarrollo ágil de software?














Running Lean: 
Iterate from Plan
A to a Plan That Works
Autor: Maurya, A.
>> España (amazon.es)
>> Latinoámerica (amazon.com)
PMI-ACP Exam 
Prep
Autor:
Griffiths, M
>> España (amazon.es)
>> Latinoámerica (amazon.com)
 

Agile Software Requirements
Autor: Leffingwell, D; Widrig, D.
>> España (amazon.es)
>> Latinoámerica (amazon.com)
Agile Testing
Autor: Lisa Crispin y Janet Gregory
>> España (amazon.es)
>> Latinoámerica (amazon.com)

¿Interesado en otros productos y últimas novedades? 
>> Visita nuestra sección de productos amazon

Referencia

Blog Finding Marbles. A Brief History of Agile and Lean Events

Blog Technology Trend Analysis. Brief History of Agile Movement

Wikipedia. Agile software development

2 comentarios :

  1. Muy buen por las investigaciones y disufión en español! Yo también he hecho la propia un tiempo atrás, mechado con hitos importantes en la historia de la informática. http://www.caminoagil.com/2013/03/historia-de-las-metodologias-agiles-en.html

    ResponderEliminar
  2. Gracias por este gran aporte... un saludo

    ResponderEliminar

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.