Slide 1

Slide 1 text

Agile (mucho) más allá de Scrum Alicante, 21 de mayo de 2019 Isidro López (@islomar)

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Agenda 1. Disclaimers 2. ¿Qué es “agile”? 3. Contexto de la empresa y el equipo de desarrollo 4. Interacción con negocio 5. Principios y prácticas “internas” del equipo 6. Hall of shame 7. Conclusiones y recursos recomendados 8. Debate grupal

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

http://sd.keepcalm-o-matic.co.uk/i/keep-calm-it-works-on-my-machine-27.png

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

Charla de la CAS 2016 “Alineando valores y principios con prácticas técnicas”

Slide 11

Slide 11 text

Ego slide Hemos venido a jugar... Desarrollador de software @islomar [email protected] Teleco, Antropología Social y Cultural, Executive MBA, CSM…

Slide 12

Slide 12 text

¿Qué es “agile”? (para ti)

Slide 13

Slide 13 text

Scrum (¿1986?) “The New New Product development game” (Hirokata Takeuchi, 1986) OOPSLA 1995: presented by Jeff Sutherland and Ken Schwaber The Scrum guide (November 2017): ● It’s a FRAMEWORK (not a methodology, not a method) ● Only mentions “software” as one of several contexts (“for developing, delivering, and sustaining complex products”) ● Values, team, events, artifacts, DoD. ● Push system Best book ever about Scrum: “The people’s Scrum” (Tobias Mayer)

Slide 14

Slide 14 text

Algunas aclaraciones sobre Scrum ● No “User stories”, but “Product Backlog Items” (PBI) ○ Origen de las US: eXtreme Programming!!! (1998) ● “Scrum recognizes no titles for Development Team members, regardless of the work being performed by the person;”. E.g. QA, architect, tech lead, etc. ● Sí se mencionan las estimaciones, pero ningún método concreto (no “story points”) ● No dice que solo se pueda/deba entregar/desplegar al final del sprint...

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

eXtreme Programming (2000)

Slide 17

Slide 17 text

Agile manifesto (2001) http://agilemanifesto.org/principles.html

Slide 18

Slide 18 text

18 https://twitter.com/eferro

Slide 19

Slide 19 text

19 Kent Beck (XP) Mike Beedle (Scrum) Arie van Bennekum (DSDM) Alistair Cockburn (Crystal) Ward Cunningham (XP) Martin Fowler (XP) James Grenning (XP) Jim Highsmith (ASD) Andrew Hunt (PP) Ron Jeffries (XP) Jon Kern (FDD) Brian Marick Robert C. Martin (XP*) Steve Mellor Ken Schwaber (Scrum) Jeff Sutherland (Scrum) Dave Thomas (PP) https://twitter.com/eferro

Slide 20

Slide 20 text

20 “I learned from Jeff Sutherland that the first Scrum actually did all the XP practices. But Ken Schwaber convinced him to leave the engineering practices out of Scrum, to keep the model simple and let the teams take responsibility for the tech practices themselves. Perhaps this helped spread Scrum faster, but the downside is that a lot of teams suffer because they lack the technical practices that enable sustainable agile development.” “Scrum and XP from the Trenches” Henrik Kniberg https://twitter.com/eferro

Slide 21

Slide 21 text

21 “You don’t see high performing Scrum teams without XP engineering practices. It is difficult to scale XP teams without Scrum and Scrum solves the management interface issues for XP. Be careful about doing pieces of anything and calling it Agile.” “Deep Agile course” Ron Jeffries and Sutherland https://twitter.com/eferro

Slide 22

Slide 22 text

22 “eXtreme Programming is an ideal many software shops would love to reach, but with the constant pressures to produce software quickly, they cannot actually implement it. ... This book shows readers how to use SCRUM, an Agile software development process, to quickly and seamlessly implement XP in their shop-while still producing actual software.” “Agile Software Development with Scrum” Ken Schwaber and Mike Beedle https://twitter.com/eferro

Slide 23

Slide 23 text

23 “There's a mess I've heard about with quite a few projects recently. It works out like this: ● They want to use an agile process, and pick Scrum ● They adopt the Scrum practices, and maybe even the principles ● After a while progress is slow because the code base is a mess” “Flaccid Scrum” Martin Fowler

Slide 24

Slide 24 text

… and more... ● Crystal (Alistair Cockburn) ● FDD (Feature-Driven Development) ● DSDM (Dynamic Systems Development Method) ● etc...

Slide 25

Slide 25 text

¿Qué es “agile” para mí? 1. People first a. Antimatter principle (Bob Marshall): “Attend to folk’s needs” 2. Gestión del riesgo a. “Inspect and adapt”... so fast as possible.

Slide 26

Slide 26 text

Contexto de la empresa (2015-2017) ● Fundada en 2002, 17 años de antigüedad (sector de Telecomunicaciones) ● Desarrollo de producto ● Empresa con EBITDA muy positivo ● ~ 20-25 personas en toda la empresa (ahora ~ 35 personas) ● Equipo de desarrollo: 6-8 personas (ahora ~ 11 personas) ● “ENORME” base de código (33 µservicios, 80 clientes, ~2.500 contenedores en Prod)

Slide 27

Slide 27 text

El equipo http://www.childrensmuseumtr.org/files/uploads/the-team.jpg

Slide 28

Slide 28 text

Equipo Bifer https://www.enriquedans.com/wp-content/uploads/2015/11/Navaja-suiza.jpg

Slide 29

Slide 29 text

Un poco de historia... http://st.gonzoo.es/img/2015/12/17219.jpg

Slide 30

Slide 30 text

https://i0.wp.com/media2.slashfilm.com/slashfilm/wp/wp-content/images/Back-in-Time-for-SlashFilm-700x300.jpg

Slide 31

Slide 31 text

http://image.vanguardia.com.mx/sites/default/files/bomba-atomica-licorne2_page1_image12.jpg

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Misión, Visión y… ¿Vacuálo?

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

Estos son mis valores. Si no le gustan, tengo otros https://static.independent.co.uk/s3fs-public/thumbnails/image/2014/06/10/16/grouchomarxCorbis.jpg

Slide 36

Slide 36 text

Comunicación Respeto Simplicidad Valentía Feedback Valores XP

Slide 37

Slide 37 text

Cómo lo hacemos con negocio

Slide 38

Slide 38 text

DevOps Agile Scrum Kanban Lean NoEstimates XP SW crafters

Slide 39

Slide 39 text

Lo “mejor” de cada casa http://66.media.tumblr.com/3b5f64640be7eb3552fb9418f46effb8/tumblr_nop1sjZd8M1u40isio1_1280.jpg

Slide 40

Slide 40 text

http://todaysdoodle.com/wp-content/uploads/2014/06/then-iterate.jpg Feedback

Slide 41

Slide 41 text

https://www.joeprisk.co.uk/content/images/2016/09/1280x720-gye.jpg Comunicación Colaboración Transparencia Feedback

Slide 42

Slide 42 text

Feedback mutuo periódico con Dirección http://definicion.mx/wp-content/uploads/2013/06/feedback.png Feedback Comunicación Colaboración Empatía Confianza Transparencia

Slide 43

Slide 43 text

Comunicación Colaboración Transparencia

Slide 44

Slide 44 text

¿Cómo se decide en qué se trabaja? Cultura del Patinete en la empresa http://blog.crisp.se/wp-content/uploads/2014/10/Screen-Shot-2014-10-07-at-08.20.00.png Simplicidad Feedback

Slide 45

Slide 45 text

Sin estimaciones en general ¿Cómo se decide en qué se trabaja? http://6.fotos.web.sapo.io/i/o2806a3ac/18197719_O8Ukt.jpeg Confianza Comunicación Simplicidad Transparencia

Slide 46

Slide 46 text

Mínimo para varios clientes ¿Cómo se decide en qué se trabaja? https://i0.wp.com/autismodiario.org/wp-content/uploads/2014/06/positivo-negativo.jpg?resize=300%2C199&ssl=1 Simplicidad Valentía

Slide 47

Slide 47 text

Criterios de priorización https://pix-media.s3.amazonaws.com/blog/778/walter-white-money.jpg Comunicación Colaboración Confianza Transparencia

Slide 48

Slide 48 text

Criterios de priorización http://www.managers.org.uk/~/media/Images/Insights/TimeSaving.jpg Simplicidad Colaboración

Slide 49

Slide 49 text

Criterios de priorización http://www.asset1.net/tv/pictures/movie/young-frankenstein-1974/YOUNG-FRANKENSTEIN-DI-04.jpg Valentía Simplicidad Respeto

Slide 50

Slide 50 text

https://soniccrewldn.files.wordpress.com/2014/03/friends-putting-their-hands-together-in-a-sign-of-unity-and-teamwork1.jpg Cómo lo hacemos nosotros (y por qué)

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

Equipo autogestionado https://isotropia.files.wordpress.com/2012/08/autogestion2.jpg Valentía Colaboración Confianza

Slide 53

Slide 53 text

Feedback Colaboración Comunicación Valentía ¿Y la pasta qué?

Slide 54

Slide 54 text

Retrospectivas Daily meetings Feedback Colaboración Transparencia Comunicación Niko-niko

Slide 55

Slide 55 text

Kai Zen Mejora continua http://www.iagua.es/sites/default/files/kaizen.png Feedback Colaboración Comunicación Transparencia Valentía

Slide 56

Slide 56 text

Pair / Mob programming Comunicación Colaboración Empatía Confianza Transparencia Respeto

Slide 57

Slide 57 text

https://s-media-cache-ak0.pinimg.com/736x/bb/88/ab/bb88abf0b8cb5822ed9e529ec495e835.jpg

Slide 58

Slide 58 text

xDD ∀x ∈ {T, B, Ñ, etc.} Comunicación Simplicidad Feedback http://plantoys.com/wp-content/uploads/2015/02/5540-Robot-Toll-Box.jpg

Slide 59

Slide 59 text

Refactoring time!! Valentía Respeto Simplicidad https://nadandoconchampi.files.wordpress.com/2015/08/time-to-improve.png

Slide 60

Slide 60 text

https://martinfowler.com/articles/workflowsOfRefactoring/

Slide 61

Slide 61 text

Small releases Confianza Simplicidad Feedback

Slide 62

Slide 62 text

http://cdn.electric-cloud.com/wp-content/uploads/2014/09/deliver-continuously1.png

Slide 63

Slide 63 text

Trunk-based development Feedback Simplicidad

Slide 64

Slide 64 text

¿Por qué se trabaja con Pull Requests? ● Para sentirnos más seguros ○ Peer review: Someone else can take a look to it and detect problems ● Para mejorar la calidad del código (e.g. design solution) ● Para compartir y extender el conocimiento ● Para tener control sobre lo que otras personas hacen: ○ Modo “seguro” de aceptar contribuciones de otras personas/equipos

Slide 65

Slide 65 text

Problemas con las Pull Requests ● It completely breaks the flow ○ You are NOT doing Continuous Integration, let alone Continuous Delivery/Deployment ○ You better wait for that PR to be merged before creating a new one… or fight with Git ● It’s too late: ○ Someone already worked several hours (days?) on it. Waste. ● You don’t have the context of the person for every decision made ● Review hundreds of lines and tenth of files… are you kidding? ● Merge race...

Slide 66

Slide 66 text

No content

Slide 67

Slide 67 text

No content

Slide 68

Slide 68 text

Trunk-based development for the win!! ● Pushing to Master. Yep. Mean it when saying “Continuous Integration”. ● It's not about PR vs TBD... ● ...but about PR vs TDD + Pair programming + TBD + parallel changes +.. ● If you don't trust your code enough… then you know where to focus ● Still branching: ○ Spike, too much uncertainty: ■ Done 3-4 times in 2 years ■ After the spike, start from scratch with the new knowledge in master ● I forgot git complexity: only needed pull and push commands :-)

Slide 69

Slide 69 text

¿Cuándo pueden tener sentido las PR? ● Equipos distribuidos en diferentes zonas horarias ○ No es posible hacer pair programming ● En casos excepcionales en que alguien trabajó solo (mejor hacer code review en local, no en PR)

Slide 70

Slide 70 text

http://kingofwallpapers.com/shame/shame-010.jpg Hall of shame

Slide 71

Slide 71 text

Confianza http://www.incimages.com/uploaded_files/image/1940x900/trust-group-of-people-1940x900_35342.jpg

Slide 72

Slide 72 text

https://s-media-cache-ak0.pinimg.com/originals/00/a2/08/00a2082df8471b9d0eae9c7e7b622635.jpg http://images.huffingtonpost.com/2016-03-25-1458935704-6679553-shutterstock_297133649timetosaygoodbye.jpg

Slide 73

Slide 73 text

https://i.ytimg.com/vi/C6_4ovWSj4Y/maxresdefault.jpg Rotación de parejas

Slide 74

Slide 74 text

Cajón de sastre de mejoras

Slide 75

Slide 75 text

Demasiados frentes de negocio abiertos http://contenidos.enter.co/custom/uploads/2015/09/multitasking-salud.jpg

Slide 76

Slide 76 text

¿Retrospectivas de empresa? https://spokalulu.files.wordpress.com/2013/10/dscn2337.jpg

Slide 77

Slide 77 text

Comunicación de TODA la empresa http://international.ju.edu.jo/programs/gcl/PublishingImages/3D%20Character%20(39).jpg

Slide 78

Slide 78 text

Falta de documentación de arquitectura https://blogs.lib.utexas.edu/aplhighlights/2012/07/16/renaissance-architecture-and-ornament-in-spain/

Slide 79

Slide 79 text

https://lighthousebrs.files.wordpress.com/2013/03/checklist-1.jpg Conclusiones

Slide 80

Slide 80 text

¡¡Negocio!! ¡¡Negocio!! ¡¡Negocio!! https://i1.sndcdn.com/artworks-000006621616-ej5015-t500x500.jpg

Slide 81

Slide 81 text

Céntrate en lo importante y olvídate de etiquetarte http://www.presentable.es/wp-content/uploads/2013/05/dardos.jpg

Slide 82

Slide 82 text

Identifica tus valores y sé COHERENTE http://www.best-life-solutions.com/wp-content/uploads/2014/01/magnifying-glass-values.gif

Slide 83

Slide 83 text

More key points (I) ● KISS / MVP: think about the business/customer... ● Technical excellence AS IF YOU MEAN IT: e.g. TDD, SOLID, clean code… ● Pair/mob programming by default ● Trunk-based development by default (plu TDD, feature toggle, etc.) ● Continuous Delivery/Deployment ● Kanban: pull system with continuous flow

Slide 84

Slide 84 text

More key points (II) ● Investing lots of time communicating and synchronizing ○ No silos ○ It really pays off in the long term ● Radical transparency ● LONG TERM VISION: probably you need to slow down temporarily… to keep a good long term sustainable pace (without suffering)

Slide 85

Slide 85 text

No content

Slide 86

Slide 86 text

No content

Slide 87

Slide 87 text

Resources ● NoEstimates ○ https://www.industriallogic.com/blog/stop-using-story-points/ ○ https://blog.jbrains.ca/permalink/a-farewell-to-noestimates ○ #NoEstimates (Allen Holub) ○ The State of NoEstimates (Woody Zuill)

Slide 88

Slide 88 text

Recursos ● https://martinfowler.com/articles/agile-aus-2018.html ● https://jeronimopalacios.com/kanban/ ● https://benjiweber.co.uk/blog/2015/04/17/modern-extreme-programming/ ● http://manifesto.softwarecraftsmanship.org/ ● The speed vs quality fallacy discussion ● 7 minutes, 26 seconds, and the Fundamental Theorem of Agile Software Development (JBrains)

Slide 89

Slide 89 text

Y algunos blogs interesantes... http://www.eferro.net/ http://blog.jmbeas.es http://jeronimopalacios.com/ https://ronjeffries.com/ https://www.mountaingoatsoftware.com/blog

Slide 90

Slide 90 text

http://3.bp.blogspot.com/-N6byEO21I0w/VoTzspUt8xI/AAAAAAAAC7M/oDukuU0kVdU/s1600/THANK-YOU-FOR-YOUR-TIME-1.png Moltes gràcies!!

Slide 91

Slide 91 text

¡¡Gracias por el feedback!! https://islomar.typeform.com/to/bFogNM

Slide 92

Slide 92 text

http://xoxoafterdark.com/wp-content/uploads/2015/01/qa.jpg group talking clipart 33797" by Clipartroo.com