¿Que es la agilidad?

Post on 07-Apr-2017

121 views 1 download

Transcript of ¿Que es la agilidad?

¿Qué es la Agilidad?

2017-03-21

David Lay M@davidlaym

davidlaym.com

2017-03-21Logos y marcas utilizadas bajo principios de “uso justo”. Todos los derechos reservados por sus dueños.

¡Hola!

La Agilidad es:

• Una Cultura de solución a problemas

• Originaria del desarrollo de software

• Basada inicialmente en un manifiesto de 4 principios y

12 prácticas

La Agilidad se compone de:

• Metodologías, Técnicas y Herramientas

• Iteración, experimentación

• Validación constante

• Excelencia técnica

Los Equipos Ágiles producen un flujo continuo de valor, con un ritmo sostenible, al mismo tiempo que se adaptan a las cambiantes necesidades del

negocio.

Elisabeth Hendrickson

http://testobsessed.com/2010/12/the-agile-acid-test/

Un poco de historia…

La ingeniería de software nace en 1968.

http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/

En 1990 comienza el desarrollo de Scrum y de XP como experimentos aislados

En 2001 se redacta el Manifiesto por el Desarrollo Ágil de Software

Manifiesto por el Desarrollo Ágil de Software

• 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

Manifiesto por el Desarrollo Ágil de Software

• Entrega temprana y continua de valor

• Aprovechar el cambio como ventaja competitiva

• Cadencia entre dos semanas a dos meses

• Se debe ser capaz de mantener un ritmo constante de forma indefinida

• Negocio y desarrollo trabajan juntos durante todo el proyecto

• Individuos motivados y empoderados

• Equipos auto-organizados

• Excelencia técnica y buen diseño

• Maximizar trabajo no realizado

• Reflexión, auto-corrección y perfeccionamiento

• Conversación cara a cara

• Software funcionando como medida de progreso

En 2002 Se forma la Scrum Aliance y el programa Certified Scrum Master

En 2003 se publica “Lean Software Development: An Agile Toolkit”

Principios de LEAN Software Development

Lámina de Agustín Villena de su charlaIntroducción a la cultura ágil I (2011)

EliminarDesperdicios

GenerarConocimiento

Calidaddesde el

comienzo

Entregar lo más rápido

posible

Respeto a las personas

Optimizar el todo

Compromiso solo con

conocimiento máximo

En 2009 se publica el Manifiesto por el Software Craftsmanship

Manifiesto por el Software Craftsmanship

• No solo software que funciona, sino también software bien diseñado

• No solo responder al cambio, sino también agregar valor constantemente

• No solo individuos e interacciones, sino también una comunidad de profesionales

• No solo colaboración con el cliente, sino también asociaciones productivas

¿Es esto ingeniería?

¿Es ciencia?

¿Qué somos?

Esta confusión es porque quienes iniciaron todo esto, no entendían dos cosas:

1. Ingeniería

2. Software

Desde hace 26 años

Hemos estado alejándonos de la ingeniería (porque no funciona)

En general, la palabra ingeniería se resevapara el conjunto de prácticas que funciona

Modelo cascada (obsoleto)

Requerimientos

Diseño

Implementación

Verificación

Mantenimiento

Modelo de control de procesos definidos

• Cada pieza del trabajo debe ser comprendida para iniciar

• Puede ser iniciado y llegará siempre a término

• Cada vez tendrá el mismo resultado

Costo y aprendizaje en control de procesos definidos

Fuente:http://alistair.cockburn.us/Design+as+Knowledge+Acquisition

Conocimiento de la realidad

Tiempo del proyecto

Entrega casi nula de valor(o reducción de riesgo)

El conocimiento llega al “momento

de la verdad”: La integración

La conversión de una idea a un artefacto, que involucra tanto al diseñador como al constructor, es un proceso complejo y sutil que siempre estará más cercano al arte que a la ciencia.

Eugene S. Ferguson,

Engineering and the Mind’s Eye

Lámina de Glenn Vanderburg de sucharla “Real Software Engineering”

Lámina de Glenn Vanderburg de sucharla “Real Software Engineering”

La ingeniería de software es la ciencia y arte de diseñar y construir, con economía y elegancia, sistemas de manera que se adapten con gracia a las situaciones que puedan ser sujetos.

Glenn Vanderburg

Modelo de control de procesos empíricos

• Procesos poco definidos o altamente cambiantes

• Ejerce control mediante inspección frecuente

• Resultados impredecibles e irrepetibles

Costo y aprendizaje en modelos de control de procesos empíricos

Conocimiento de la realidad

Tiempo del proyecto

Aprendizaje(o reducción de riesgo)

El valor al cliente crece

continuamente desde antes en el

proceso

Fuente:http://alistair.cockburn.us/Design+as+Knowledge+Acquisition

Lámina de Agustín Villena de su charla “Desde la gestión tradicional a la Ágil”

Procesos empíricos

•Verificación formal

•Diseño mediante descubrimiento: experimentación

•Creatividad

•Retroalimentación temprana y económica

La agilidad es:

Un meta-modelo de control de procesos empíricos.

El desarrollo de software ágil, es la mejor forma conocida de hacer software.

El desarrollo de software ágil, es ingeniería de software madura.

¡Gracias!

David Lay M@davidlaym

davidlaym.com

2017-03-21Logos y marcas utilizadas bajo principios de “uso justo”. Todos los derechos reservados por sus dueños.