$30 off During Our Annual Pro Sale. View Details »

Agile (mucho) más allá de Scrum

Agile (mucho) más allá de Scrum

Charla dada en Alicante el 21 de mayo de 2019: https://www.meetup.com/es-ES/AgileAlicante/events/260459256/

Isidro López

May 21, 2019
Tweet

More Decks by Isidro López

Other Decks in Programming

Transcript

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

    View Slide

  2. View Slide

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

    View Slide

  4. View Slide

  5. View Slide

  6. View Slide

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

    View Slide

  8. View Slide

  9. View Slide

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

    View Slide

  11. Ego slide
    Hemos venido a jugar...
    Desarrollador de software
    @islomar
    [email protected]

    Teleco, Antropología Social y
    Cultural, Executive MBA, CSM…

    View Slide

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

    View Slide

  13. 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)

    View Slide

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

    View Slide

  15. View Slide

  16. eXtreme Programming (2000)

    View Slide

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

    View Slide

  18. 18
    https://twitter.com/eferro

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. ¿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.

    View Slide

  26. 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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. View Slide

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

    View Slide

  34. View Slide

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

    View Slide

  36. Comunicación
    Respeto
    Simplicidad Valentía
    Feedback
    Valores XP

    View Slide

  37. Cómo lo hacemos con negocio

    View Slide

  38. DevOps
    Agile
    Scrum
    Kanban Lean
    NoEstimates
    XP
    SW crafters

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  43. Comunicación
    Colaboración
    Transparencia

    View Slide

  44. ¿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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  50. 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é)

    View Slide

  51. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  61. Small releases
    Confianza
    Simplicidad
    Feedback

    View Slide

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

    View Slide

  63. Trunk-based development
    Feedback
    Simplicidad

    View Slide

  64. ¿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

    View Slide

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

    View Slide

  66. View Slide

  67. View Slide

  68. 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 :-)

    View Slide

  69. ¿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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  74. Cajón de sastre de mejoras

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  84. 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)

    View Slide

  85. View Slide

  86. View Slide

  87. 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)

    View Slide

  88. 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)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide