Este documento presenta una introducción al desarrollo ágil de software. En 3 oraciones o menos:
El documento introduce los conceptos fundamentales del desarrollo ágil de software, incluyendo los principios del Manifiesto Ágil y marcos como Scrum y Extreme Programming. También discute por qué es importante adoptar un enfoque ágil, así como prácticas clave para implementarlo como pruebas automatizadas y desarrollo guiado por pruebas. El documento concluye enfatizando que la agilidad se basa en cambios culturales y de princip
2. Pablo Lischinsky
ü Agile trainer & consultant, entrepreneur
ü Ing. de Sistemas ULA-Venezuela
ü PhD. MSc. INPG-Francia
Ver más:
http://uy.linkedin.com/in/pablolischinsky
www.evolucionagil.com
2Pablo Lischinsky PHP DAY UY 2015
3. Agenda
• ¿Qué es la Agilidad?
• ¿Por qué ir hacia la agilidad?
• ¿Cómo hacerlo?
• Conclusiones
Pablo Lischinsky PHP DAY UY 2015 3
7. Qué es la agilidad
Pablo Lischinsky PHP DAY UY 2015 7
En lugar de
trabajar así
h"p://www.w4-‐bpm.es/principios-‐manifiesto-‐agil.htm
8. Qué es la agilidad
Pablo Lischinsky PHP DAY UY 2015 8
En lugar de
trabajar así
h"p://www.w4-‐bpm.es/principios-‐manifiesto-‐agil.htm
• Trabajando cada quién en su etapa
• Poca comunicación, físicamente separados
• En etapas con entregables (documentos)
• Etapas en cascada
9. Qué es la agilidad
Pablo Lischinsky PHP DAY UY 2015 9
En lugar de
trabajar así
Preferimos así
h"p://www.w4-‐bpm.es/principios-‐manifiesto-‐agil.htm
10. Pablo Lischinsky PHP DAY UY 2015 10
Proyecto tradicional …
Los proyectos tradicionales son como una bala de cañón.
http://www.funciones.webs.com/FuncionCuadratica_archivos/image004.jpg
3) Nada va a
cambiar a lo largo
del camino.
2) Los
desarrolladores
saben cómo
construirla.
1) El cliente
sabe lo que
quiere.
Supuestos:
11. Pablo Lischinsky PHP DAY UY 2015 11
Proyecto ágil…
Los proyectos ágiles son como
un misil.
3) Las cosas
cambian a
lo largo del
camino.
1) El cliente
descubre lo
que quiere.
12. Pablo Lischinsky PHP DAY UY 2015 12
Proyecto ágil…
Los proyectos ágiles son como
un misil.
3) Las cosas
cambian a
lo largo del
camino.
1) El cliente
descubre lo
que quiere.
¡En forma iterativa e incremental!
13. PHP DAY UY 2015
Agile Manifesto
Pablo Lischinsky 13
14. PHP DAY UY 2015
Agile Manifesto
Pablo Lischinsky 14
Orígen (2001):
Se reunieron los autores de:
Extreme Programming, SCRUM, Dynamic Systems Development
Method, Adaptive Software Development, Crystal, Feature-Driven
Development, Pragmatic Programming
… y otros simpatizantes de la necesidad de crear un proceso de
desarrollo de software alternativo, no guiado por la
documentación “heavyweight software development processes”.
16. PHP DAY UY 2015
Manifiesto por el Desarrollo Ágil de Software
Estamos descubriendo mejores formas 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.
Pablo Lischinsky 16
Manifiesto Ágil
17. Pablo Lischinsky PHP DAY UY 2015 17
El software funcionando es la medida principal de
progreso.
Los responsables de negocio y los desarrolladores
trabajamos juntos de forma cotidiana durante todo el
proyecto
Nuestra mayor prioridad es satisfacer al cliente
mediante la entrega temprana y continua de Software
con valor.
Manifiesto Ágil
18. Pablo Lischinsky PHP DAY UY 2015 18
La atención continua a la excelencia técnica y al buen
diseño mejora la Agilidad.
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.
Manifiesto Ágil
19. ü Trabajar juntos en descubrir nuevas formas
de entregar valor continuamente
ü Construir un ambiente de trabajo en
equipo y colaborativo
ü Eliminar la ineficiencia y los desperdicios
ü Reflexión y aprendizaje continuo
Pablo Lischinsky PHP DAY UY 2015 19
Qué es la agilidad
20. Pablo Lischinsky PHP DAY UY 2015 20
Qué es la agilidad
Es una cuestión CULTURAL
AperturaComunicación
Feedback
Mejora
continua
regular
• Producto
• Proceso
• Equipo (incluyendo al cliente)
Compromiso
Foco
Coraje
Cambio de paradigma, cambios personales y organizacionales
Respeto
Simplicidad
Transparencia
21. Pablo Lischinsky PHP DAY UY 2015 21
Qué es la agilidad
Es una cuestión CULTURAL
AperturaComunicación
Feedback
Mejora
continua
regular
• Producto
• Proceso
• Equipo (incluyendo al cliente)
Compromiso
Foco
Coraje
Cambio de paradigma, cambios personales y organizacionales
Respeto
Simplicidad
Transparencia
Todo esto…
¡lleva tiempo!
22. PHP DAY UY 2015
http://lunar.lostgarden.com/uploaded_images/essay-
DiscovertheFunEarly-ScrumComplexity-729863.jpg
Dominio de aplicación
Pablo Lischinsky 22
23. PHP DAY UY 2015
http://lunar.lostgarden.com/uploaded_images/essay-
DiscovertheFunEarly-ScrumComplexity-729863.jpg
Pablo Lischinsky
+ Incertidumbre,
difícil de predecir,
emergencia,
explorar y
aprender,
inspeccionar y
adaptar
23
Dominio de aplicación
26. Pablo Lischinsky PHP DAY UY 2015 26
¿Cuáles son los problemas
que queremos resolver?
¿Reconocemos tener
problemas?
27. Pablo Lischinsky PHP DAY UY 2015 27
Deleitar a nuestros clientes
Equipos motivados
Software de mayor calidad
Entregas continuas
Mejorar el ROI proyectos
Disminuir el riesgo de los proyectos
Menor time to market
Algunas razones …
35. Pablo Lischinsky PHP DAY UY 2015 35
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
36. Pablo Lischinsky PHP DAY UY 2015 36
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
37. Pablo Lischinsky PHP DAY UY 2015 37
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
38. Pablo Lischinsky PHP DAY UY 2015 38
¿Cómo hacerlo?
Marcos de trabajo Ágiles
Scrum
Extreme Programming -
XP
Lean Software
Development
Kanban
39. Pablo Lischinsky PHP DAY UY 2015 39
Equipo Scrum, roles:
• Product Owner
• Scrum Master
• Team member
Artefactos:
• Product Backlog
• Sprint Backlog
• Increment
Transparencia, inspección y adaptación, efecto emergente:
más que la suma de sus partes …
Equipo Scrum
Actividades o Reuniones:
• Sprint
• Sprint Planning
• Daily meeting
• Sprint Review
• Retrospective
41. Desarrollo Secuencial Vs Transversal
Mountain
Goat
So=ware,
LLC
41
Pablo Lischinsky PHP DAY UY 2015
42. Desarrollo Secuencial Vs
Transversal
¿Cómo hacerlo?
¡Apoyándose en las modernas
prácticas de la POO y Programación
eXtrema – XP!
Mountain
Goat
So=ware,
LLC
42
Pablo Lischinsky PHP DAY UY 2015
43. Pablo Lischinsky PHP DAY UY 2015 43
¿Cómo hacerlo?
Prácticas de ingeniería
TDD / Refactoring
Collective ownership
Automatización de las
pruebas
Pair Programming
Despliegue continuoIntegración Continua
44. XP: Kent Beck
Kent Beck
1st ed. Oct 1999
2nd ed. Nov 2004
Pablo Lischinsky PHP DAY UY 2015 44
45. ¿Cómo lograrlo?
• Prácticas de
Clean Code
• Code Smells
• Principios
SOLID OOP
• Refactoring
• Patrones de
diseño
Pablo Lischinsky PHP DAY UY 2015 45
47. Construcción de software: una mirada ágil N Paez et. al http://unamiradaagil.com
Ciclo de desarrollo guiado por las pruebas: test-
first programming.
XP – Ingeniería
Pablo Lischinsky PHP DAY UY 2015 47
48. XP – Ingeniería
Pablo Lischinsky PHP DAY UY 2015 48
Construcción de software: una mirada ágil N Paez et. al http://unamiradaagil.com
Ciclo de desarrollo guiado por las pruebas: test-
first programming.
49. XP – Prácticas
• Historias de usuario + BDD/ATDD
(Behavior/Acceptance-Test Driven
Development)
• TDD (Test-Driven Development)
• Pruebas Unitarias, Automatizar
• Diseño Simple
• R e f a c t o r i z a r s i n p i e d a d ,
arquitectura emergente.
• Integración continua, pruebas
continuas y automatizadas.
• R e v i s i o n e s d e c ó d i g o y
programación en parejas.
• Despliegue continuo.
• Estándares de codificación
• Propiedad colectiva del
código
Pablo Lischinsky PHP DAY UY 2015 49
60. Pablo Lischinsky PHP DAY UY 2015 60
Conclusiones
La agilidad se basa en principios, valores y cambio
cultural.
Ir hacia una cultura de innovación con ciclos de
experimentación y aprendizaje, de desarrollo iterativo
e incremental.
Las prácticas de desarrollo de XP son esenciales.
La agilidad es frágil, sólo es sostenible si todas las
partes de la organización están comprometidas a ella.
61. Pablo Lischinsky PHP DAY UY 2015 61
Conclusiones
• No ser dogmáticos.
• Exigen apertura y valor a las nuevas generaciones de
desarrolladores de software y testers, nuevas
habilidades a desarrollar.
62. Pablo Lischinsky PHP DAY UY 2015 62
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
63. PHP DAY UY 2015Pablo Lischinsky 63
Construcción de
software: una mirada
ágil, 2014
Nicolás
Paez,
Diego
Fontdevila,
Pablo
Suárez,
Carlos
Fontela,
Marcio
Degiovannini,
Alejandro
Molinari
64. PHP DAY UY 2015Pablo Lischinsky 64
SCRUM AN XP FROM THE
TRENCHES, 2nd Ed.
Henrik
Kniberg
http://www.infoq.com/minibooks/scrum-
xp-from-the-trenches-2
65. Comunidad Ágil
• Comunidad ágil en Uruguay AgileUY
• @agileuy
• www.agiles.uy
• meetup.com/AgileUY/
• Comunidad ágil Latinoamericana
• Conferencia anual Ágiles
• agiles.org
• foro-agiles@yahoogroups.com
Pablo Lischinsky PHP DAY UY 2015 65
66. ÁGILES 2015
¡En Montevideo-Uruguay!
22-24 Octubre 2015
VIII JORNADAS LATINOAMERICANAS DE METODOLOGÍAS
ÁGILES: AGILES 2015 en Montevideo-Uruguay
http://agiles2015.agiles.org/
Pablo Lischinsky PHP DAY UY 2015 66