introducción al desarrollo ágil de software en php day 2015

67
Introducción al desarrollo ágil de software Pablo Lischinsky @pablolis [email protected] Montevideo, PHP DAY 2015

Upload: pablo-lischinsky

Post on 19-Aug-2015

189 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Introducción al desarrollo ágil de software en PHP DAY 2015

Introducción al desarrollo ágil de software

Pablo Lischinsky @pablolis

[email protected]

Montevideo, PHP DAY 2015

Page 2: Introducción al desarrollo ágil de software en 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

Page 3: Introducción al desarrollo ágil de software en PHP DAY 2015

Agenda

•  ¿Qué es la Agilidad? •  ¿Por qué ir hacia la agilidad? •  ¿Cómo hacerlo? •  Conclusiones

Pablo Lischinsky PHP DAY UY 2015 3

Page 4: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 4

Page 5: Introducción al desarrollo ágil de software en PHP DAY 2015

http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf

Pablo Lischinsky PHP DAY UY 2015 5

Page 6: Introducción al desarrollo ágil de software en PHP DAY 2015

http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf

Pablo Lischinsky PHP DAY UY 2015 6

Page 7: Introducción al desarrollo ágil de software en PHP DAY 2015

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  

Page 8: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 9: Introducción al desarrollo ágil de software en PHP DAY 2015

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  

Page 10: Introducción al desarrollo ágil de software en PHP DAY 2015

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:

Page 11: Introducción al desarrollo ágil de software en PHP DAY 2015

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.

Page 12: Introducción al desarrollo ágil de software en PHP DAY 2015

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!

Page 13: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015

Agile Manifesto

Pablo Lischinsky 13

Page 14: Introducción al desarrollo ágil de software en PHP DAY 2015

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”.

Page 15: Introducción al desarrollo ágil de software en PHP DAY 2015

Agile Manifesto www.agilemanifesto.org

Feb 11-13, 2001 Snowbird ski resort, Utah

PHP DAY UY 2015 Pablo Lischinsky 15

Page 16: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 17: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 18: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 19: Introducción al desarrollo ágil de software en PHP DAY 2015

ü  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

Page 20: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 21: Introducción al desarrollo ágil de software en PHP DAY 2015

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!

Page 22: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 23: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 24: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 24

Page 25: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 25

¿Por qué ir hacia la agilidad?

Page 26: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 26

¿Cuáles son los problemas que queremos resolver?

¿Reconocemos tener problemas?

Page 27: Introducción al desarrollo ágil de software en PHP DAY 2015

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 …

Page 28: Introducción al desarrollo ágil de software en PHP DAY 2015

http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf

Pablo Lischinsky PHP DAY UY 2015 28

Page 29: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015

Métodos tradicionales Costo d

el c

ambio

Tiempo 29 Pablo Lischinsky

Page 30: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015

Tiempo

Scrum Costo d

el c

ambio

30 Pablo Lischinsky

Page 31: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015

Valor entregado/Riesgo

31 Pablo Lischinsky

Page 32: Introducción al desarrollo ágil de software en PHP DAY 2015

¿Cómo hacerlo?

Pablo Lischinsky PHP DAY UY 2015 32

Page 33: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 33

Comenzar fomentando una cultura ágil:

PRINCIPIOS

VALORES

LIDERAZGO

¿Cómo hacerlo?

Page 34: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 34

Page 35: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 35

Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013

Page 36: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 36

Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013

Page 37: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 37

Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013

Page 38: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 38

¿Cómo hacerlo? Marcos de trabajo Ágiles

Scrum

Extreme Programming - XP

Lean Software Development

Kanban

Page 39: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 40: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 40

Flujo de trabajo Scrum

TM

SM

PO

Page 41: Introducción al desarrollo ágil de software en PHP DAY 2015

Desarrollo Secuencial Vs Transversal

Mountain  Goat  So=ware,  LLC  

41 Pablo Lischinsky PHP DAY UY 2015

Page 42: Introducción al desarrollo ágil de software en PHP DAY 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

Page 43: Introducción al desarrollo ágil de software en PHP DAY 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

Page 44: Introducción al desarrollo ágil de software en PHP DAY 2015

XP: Kent Beck

Kent Beck 1st ed. Oct 1999 2nd ed. Nov 2004

Pablo Lischinsky PHP DAY UY 2015 44

Page 45: Introducción al desarrollo ágil de software en PHP DAY 2015

¿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

Page 46: Introducción al desarrollo ágil de software en PHP DAY 2015

http://www.computertest.co.uk/images/image070.gif

XP – Ingeniería

Pablo Lischinsky PHP DAY UY 2015 46

Page 47: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 48: Introducción al desarrollo ágil de software en PHP DAY 2015

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.

Page 49: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 50: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015 50 Pablo Lischinsky

Page 51: Introducción al desarrollo ágil de software en PHP DAY 2015

XP – Prácticas

Pablo Lischinsky PHP DAY UY 2015 51

Page 52: Introducción al desarrollo ágil de software en PHP DAY 2015

Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013  Pablo Lischinsky PHP DAY UY 2015 52

Page 53: Introducción al desarrollo ágil de software en PHP DAY 2015

Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013  Pablo Lischinsky PHP DAY UY 2015 53

Page 54: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015

¿Cómo diseñar un roadmap de implementación/mejora de prácticas?

54 Pablo Lischinsky

Page 55: Introducción al desarrollo ágil de software en PHP DAY 2015

My  Agile  Assessment    h"p://nicopaez.wordpress.com/  

Pablo Lischinsky PHP DAY UY 2015 55

Page 56: Introducción al desarrollo ágil de software en PHP DAY 2015

My  Agile  Assessment    h"p://nicopaez.wordpress.com/  

Pablo Lischinsky PHP DAY UY 2015 56

Page 57: Introducción al desarrollo ágil de software en PHP DAY 2015

My  Agile  Assessment    h"p://nicopaez.wordpress.com/  

Pablo Lischinsky PHP DAY UY 2015 57

¡Capacitación + facilitación!

Page 58: Introducción al desarrollo ágil de software en PHP DAY 2015

PHP DAY UY 2015 My  Agile  Assessment    h"p://nicopaez.wordpress.com/  58 Pablo Lischinsky

Page 59: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 59

Page 60: Introducción al desarrollo ágil de software en PHP DAY 2015

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.

Page 61: Introducción al desarrollo ágil de software en PHP DAY 2015

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.

Page 62: Introducción al desarrollo ágil de software en PHP DAY 2015

Pablo Lischinsky PHP DAY UY 2015 62

Culture>Process, Henrik Kniberg, Paris Scrum Gathering Keynote, 2013

Page 63: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 64: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 65: Introducción al desarrollo ágil de software en PHP DAY 2015

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

Page 66: Introducción al desarrollo ágil de software en PHP DAY 2015

Á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

Page 67: Introducción al desarrollo ágil de software en PHP DAY 2015

¡Gracias!

Preguntas

@pablolis [email protected]

67 Pablo Lischinsky PHP DAY UY 2015