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

Post on 19-Aug-2015

189 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introducción al desarrollo ágil de software

Pablo Lischinsky @pablolis

pablolis@evolucionagil.com

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 •  foro-agiles@yahoogroups.com

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

¡Gracias!

Preguntas

@pablolis pablolis@evolucionagil.com

67 Pablo Lischinsky PHP DAY UY 2015

top related