El Emperador No Tiene Traje

Preview:

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:

danijel.arsenovski@empoweragile.com

• LinkedIn:

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

Recommended