Introducción al desarrollo ágil de software en PHP DAY 2015
-
Upload
pablo-lischinsky -
Category
Software
-
view
189 -
download
0
Transcript of Introducción al desarrollo ágil de software en PHP DAY 2015
Introducción al desarrollo ágil de software
Pablo Lischinsky @pablolis
Montevideo, PHP DAY 2015
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
2 Pablo Lischinsky PHP DAY UY 2015
Agenda
• ¿Qué es la Agilidad? • ¿Por qué ir hacia la agilidad? • ¿Cómo hacerlo? • Conclusiones
Pablo Lischinsky PHP DAY UY 2015 3
Pablo Lischinsky PHP DAY UY 2015 4
http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf
Pablo Lischinsky PHP DAY UY 2015 5
http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf
Pablo Lischinsky PHP DAY UY 2015 6
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
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
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
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:
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.
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!
PHP DAY UY 2015
Agile Manifesto
Pablo Lischinsky 13
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”.
Agile Manifesto www.agilemanifesto.org
Feb 11-13, 2001 Snowbird ski resort, Utah
PHP DAY UY 2015 Pablo Lischinsky 15
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
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
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
ü 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
Pablo Lischinsky PHP DAY UY 2015 20
Qué es la agilidad Es una cuestión CULTURAL
Apertura Comunicación
Feedback
Mejora continua
regular • Producto • Proceso • Equipo (incluyendo al cliente)
Compromiso
Foco Coraje
Cambio de paradigma, cambios personales y organizacionales
Respeto Simplicidad
Transparencia
Pablo Lischinsky PHP DAY UY 2015 21
Qué es la agilidad Es una cuestión CULTURAL
Apertura Comunicació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!
PHP DAY UY 2015
http
://lu
nar.
lost
gard
en.c
om/u
ploa
ded_
imag
es/e
ssay
-D
isco
vert
heFu
nEar
ly-S
crum
Com
plex
ity-7
2986
3.jp
g
Dominio de aplicación
Pablo Lischinsky 22
PHP DAY UY 2015
http
://lu
nar.
lost
gard
en.c
om/u
ploa
ded_
imag
es/e
ssay
-D
isco
vert
heFu
nEar
ly-S
crum
Com
plex
ity-7
2986
3.jp
g Pablo Lischinsky
+ Incertidumbre, difícil de predecir, emergencia, explorar y aprender, inspeccionar y adaptar
23
Dominio de aplicación
Pablo Lischinsky PHP DAY UY 2015 24
Pablo Lischinsky PHP DAY UY 2015 25
¿Por qué ir hacia la agilidad?
Pablo Lischinsky PHP DAY UY 2015 26
¿Cuáles son los problemas que queremos resolver?
¿Reconocemos tener problemas?
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 …
http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf
Pablo Lischinsky PHP DAY UY 2015 28
PHP DAY UY 2015
Métodos tradicionales Costo d
el c
ambio
Tiempo 29 Pablo Lischinsky
PHP DAY UY 2015
Tiempo
Scrum Costo d
el c
ambio
30 Pablo Lischinsky
PHP DAY UY 2015
Valor entregado/Riesgo
31 Pablo Lischinsky
¿Cómo hacerlo?
Pablo Lischinsky PHP DAY UY 2015 32
Pablo Lischinsky PHP DAY UY 2015 33
Comenzar fomentando una cultura ágil:
PRINCIPIOS
VALORES
LIDERAZGO
¿Cómo hacerlo?
Pablo Lischinsky PHP DAY UY 2015 34
Pablo Lischinsky PHP DAY UY 2015 35
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
Pablo Lischinsky PHP DAY UY 2015 36
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
Pablo Lischinsky PHP DAY UY 2015 37
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
Pablo Lischinsky PHP DAY UY 2015 38
¿Cómo hacerlo? Marcos de trabajo Ágiles
Scrum
Extreme Programming - XP
Lean Software Development
Kanban
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 Planni
ng
• Daily meeting
• Sprint Review
• Retrospective
Pablo Lischinsky PHP DAY UY 2015 40
Flujo de trabajo Scrum
TM
SM
PO
Desarrollo Secuencial Vs Transversal
Mountain Goat So=ware, LLC
41 Pablo Lischinsky PHP DAY UY 2015
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
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 continuo Integración Continua
XP: Kent Beck
Kent Beck 1st ed. Oct 1999 2nd ed. Nov 2004
Pablo Lischinsky PHP DAY UY 2015 44
¿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
http://www.computertest.co.uk/images/image070.gif
XP – Ingeniería
Pablo Lischinsky PHP DAY UY 2015 46
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
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.
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
PHP DAY UY 2015 50 Pablo Lischinsky
XP – Prácticas
Pablo Lischinsky PHP DAY UY 2015 51
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013 Pablo Lischinsky PHP DAY UY 2015 52
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013 Pablo Lischinsky PHP DAY UY 2015 53
PHP DAY UY 2015
¿Cómo diseñar un roadmap de implementación/mejora de prácticas?
54 Pablo Lischinsky
My Agile Assessment h"p://nicopaez.wordpress.com/
Pablo Lischinsky PHP DAY UY 2015 55
My Agile Assessment h"p://nicopaez.wordpress.com/
Pablo Lischinsky PHP DAY UY 2015 56
My Agile Assessment h"p://nicopaez.wordpress.com/
Pablo Lischinsky PHP DAY UY 2015 57
¡Capacitación + facilitación!
PHP DAY UY 2015 My Agile Assessment h"p://nicopaez.wordpress.com/ 58 Pablo Lischinsky
Pablo Lischinsky PHP DAY UY 2015 59
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.
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.
Pablo Lischinsky PHP DAY UY 2015 62
Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013
PHP DAY UY 2015 Pablo Lischinsky 63
Construcción de software: una mirada ágil, 2014 Nicolás Paez, Diego Fontdevila, Pablo Suárez, Carlos Fontela, Marcio Degiovannini, Alejandro Molinari
PHP DAY UY 2015 Pablo Lischinsky 64
SCRUM AN XP FROM THE TRENCHES, 2nd Ed. Henrik Kniberg http://www.infoq.com/minibooks/scrum-xp-from-the-trenches-2
Comunidad Ágil
• Comunidad ágil en Uruguay AgileUY • @agileuy • www.agiles.uy • meetup.com/AgileUY/
• Comunidad ágil Latinoamericana
• Conferencia anual Ágiles • agiles.org • [email protected]
Pablo Lischinsky PHP DAY UY 2015 65
Á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