20
“El emperador no tiene traje” Metodologías Ágiles en el Desarrollo de Software Danijel Arsenovski

El Emperador No Tiene Traje

Embed Size (px)

Citation preview

“El emperador no tiene traje”Metodologías Ágiles en el Desarrollo de Software

Danijel Arsenovski

Sobre el orador

• Nombre: Danijel Arsenovski

• Experiencia: programador, desarrollador,

arquitecto de software, autor etc.

¿Hay algún problema con

desarrollo de Software?

2009 Standish Group CHAOS Report (para EE. UU.)

• 1968: “Crisis de software”

• 1995: Standish Group CHAOS Report

(para EE. UU.)

¿A que se parece construir

software?

¿Fábrica de software?

¿Construir software se parece a

construir edificios?

Three Gorges Dam, China

Modelo de cascada

¡congelados!

¿Integrar

recién ahora?

Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que lo hagan. Con este

trabajo hemos llegado a valorar:

• A los individuos y su interacción, por encima de los procesos y las herramientas.

• El software que funciona, por encima de la documentación exhaustiva.

• La colaboración con el cliente, por encima de la negociación contractual.

• La respuesta al cambio, por encima del seguimiento de un plan.

Aunque hay valor en los elementos de la derecha, valoramos más

los de la izquierda.

Manifiesto Ágilhttp://agilemanifesto.org/

• Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor.

• Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo.

• Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente.

• Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves.

• Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto.

• Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea.

Principios del

Manifiesto Ágil

• La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara.

• El software que funciona es la principal medida del progreso.

• Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida.

• La atención continua a la excelencia técnica enaltece la agilidad.

• La simplicidad como arte de maximizar la cantidad de trabajo que se hace, es esencial.

• Las mejores arquitecturas, requisitos y diseños emergen de equipos que se autoorganizan.

• En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.

Principios del

Manifiesto Ágil

Metodologías tradicionales vs.

metodologías ágiles

• Predictivo vs. Adaptivo

• División de trabajo vs. equipos cros-funcionales

• Equipos de tipo control y comando vs. equipos

autogestionados

Google trends: “CMMI” – rojo vs. “Agile Development” - azúl

Metodologías Ágiles

• Programación Extrema o XP (Extreme

Programming) implica siguientes Prácticas

Ágiles

– Propiedad común de código fuente

– Programación en Pareja

– TDD

– Integración continua y construcción automatizada,

– Refactorización

– KISS

– 40 horas de trabajo por semana

Metodologías Ágiles

• Lean– “Muda” (Eliminar basura)

– Decida lo más tarde posible

• Scrum– Muy popular

– Ofrece certificaciones

– Scrum Master no tiene que saber programar

• Software Craftmanship– “raising the bar”

– Para un software bien hecho

• Crystal

Una Iteración Ágil• 1 o 2 semanas de duración (en pasado 3 semanas,

hasta 1 mes)

• Reunión de planificación– Historias de usuarios

– Backlog (listado de tareas) para la iteración

• Reuniones de avance diarias (”Daily Scrum”) de 15 min:– Que ha hecho ayer

– Que pretendo hacer hoy

– Que se impone

• Final de entrega– Reunión de aceptación con el cliente

– Reunión de reflexión

– Entrega de software operativo

– Iteración de duración fija (en caso que una tarea no se termina, se deja para la próxima iteración)

Prácticas de Programación Ágil

• Propiedad común de código fuente

• Construcción automatizada e integración

continua

• Programación en pareja (Pair programming)

• Desarrollo guiado por pruebas o TDD (Test

Driven Development)

• Refactorización (Refactoring)

• Excelencia en programación y aprendizaje

continuo

¿Cómo implantar metodología ágil

dentro de un equipo?

• Motivación

• Hay que convencer

– Gerencia de la empresa

– Clientes

• Partir con clientes con cuales se han desarrollado relaciones

de confianza

– Equipo (programadores, jefes de proyecto etc.)

• Partir con proyectos internos

• Partir con las practicas, por ejemplo Integración

Continua

Agilidad en Chile: Chile Ágil(también llamado ChileLean)

• Comunidad Libre y Abierta

• Busca aunar a los tecnólogos innovadores de Chile que

– Desean generar real valor de negocio con calidad y eficiencia

– Creen profundamente en el valor de las personas trabajando en

equipo

– Y han encontrado una fuente inspiradora

en la comunidad ágil y lean mundial

• Links– Blog: www.chileagil.cl

– Twitter: www.twitter.com/chileagil

– Podcast: www.chileagil.cl/tag/podcast

– Foro: groups.google.com/group/chileagil/

Contacto

• Sitio:

www.empoweragile.com

• Blog:

http://www.refactoringin.net

• Email:

[email protected]

• LinkedIn:

http://cl.linkedin.com/in/danijelarsenovski