SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
MOB	
  PROGRAMMING	
  	
  como	
  
forma	
  de	
  auto-­‐	
  organización	
  
de	
  un	
  equipo	
  SCRUM
@oscaramelunge
2
“All	
  of	
  the	
  monsters	
  who	
  fill	
  nightmares	
  of	
  our	
  folklore,	
  none	
  terrify	
  
more	
  	
  then	
  werewolves,	
  because	
  they	
  transform	
  unexpectedly	
  from	
  a	
  
familiar	
  into	
  horrors.	
  For	
  these	
  ,	
  we	
  seek	
  bullets	
  of	
  silver	
  than	
  can	
  
magically	
  lay	
  them	
  to	
  rest”
No	
  Silver	
  Bullet-­‐	
  Frederick	
  Brooks	
  1986
3
“SoAware	
  has	
  something	
  with	
  this	
  character,	
  usually	
  innocent	
  and	
  
straighBorward,	
  but	
  capable	
  of	
  becoming	
  a	
  monster	
  of	
  messed	
  
schedules,	
  blown	
  budgets,	
  and	
  flawed	
  products.	
  SO	
  WE	
  HEAR	
  
DESPERATE	
  CRIES	
  FOR	
  A	
  SILVER	
  BULLET”
No	
  Silver	
  Bullet-­‐	
  Frederick	
  Brooks	
  1986
4
6
7
Complejidad	
  Accidental
Complejidad	
  Esencial
FRED	
  BROOKS	
  
"No	
  Silver	
  Bullet	
  —	
  Essence	
  and	
  	
  
Accidents	
  of	
  Software	
  Engineering"	
  	
  
1986
8
Complejidad	
  Accidental	
  
Variable	
  Independiente
Complejidad	
  Esencial	
  
Variable	
  Dependiente
VARIABLE	
  INTERVINIENTE
9
10
Complejidad	
  Accidental	
  
Variable	
  Independiente
Complejidad	
  Esencial	
  
Variable	
  Dependiente
VARIABLE	
  INTERVINIENTE
11
“En lugar de que cada miembro haga cortes
sobre el problema, uno sólo hace el corte y
los demás le dan todo el soporte posible, lo
que mejorará la eficiencia y productividad
de toda la actividad”
F. Brooks, Cap2, The Mythical Man-Month
1975
MOB	
  PROGRAMMING
“Mob	
  programming	
  is	
  a	
  
software	
  development	
  
approach	
  where	
  the	
  whole	
  
team	
  works	
  on	
  the	
  same	
  thing	
  
at	
  the	
  same	
  time,	
  in	
  the	
  same	
  
space,	
  and	
  at	
  the	
  same	
  
computer.”
Woody	
  Zuill
13
Pair-Programming
14
Principle
“Treat	
  each	
  other	
  with	
  
kindness,	
  consideration,	
  and	
  
respect.”
Practice
Driver/navigator	
  pair	
  
programming	
  adapted	
  to	
  work	
  
with	
  the	
  whole	
  team
Practice
Timed	
  Rotation
Practice
Practice:	
  Whole	
  Team
Practice:
Reflect,	
  Tune,	
  and	
  Adjust	
  
Frequently	
  


Donde	
  Aplicamos	
  MOB
1. Historias	
  de	
  usuario	
  que	
  son	
  
muy	
  grandes	
  no	
  se	
  puede	
  
partir.	
  
2. No	
  todos	
  los	
  miembros	
  del	
  
equipo	
  son	
  expertos	
  en	
  la	
  
historias	
  de	
  usuario	
  o	
  no	
  tienen	
  
la	
  habilidades	
  para	
  desarrollar	
  
toda	
  la	
  historia	
  de	
  usuario.
Historias	
  Grandes
1. Brainstorming	
  para	
  generar	
  
ideas	
  de	
  por	
  donde	
  empezamos.	
  
2. Dividir	
  la	
  historias(tareas)	
  en	
  
posibles	
  tareas	
  (sub-­‐tareas)	
  
3. Empezar	
  a	
  trabajar	
  las	
  tareas	
  
menos	
  claras.	
  
4. Volver	
  al	
  paso	
  1	
  si	
  las	
  tareas	
  son	
  
muy	
  grandes	
  
5. Codificar	
  (Se	
  recomienda	
  TDD)	
  
Recomendación:	
  Tener	
  siempre	
  a	
  
mano	
  al	
  P.O.	
  o	
  experto	
  del	
  negocio
On	
  Boarding	
  =	
  
Aprendizaje	
  +	
  Educación
1. Una	
  tarea	
  seleccionada	
  es	
  trabajada	
  
por	
  un	
  “driver	
  expert”.	
  
2. Los	
  “navigators	
  dummy”	
  observan	
  
3. Se	
  termina	
  la	
  tarea	
  y	
  se	
  discute	
  y	
  
conceptualiza	
  que	
  se	
  realice	
  
4. “Borro	
  todo	
  el	
  código”	
  y	
  el	
  
“navigator	
  dummy”	
  se	
  vuelve	
  a	
  
tartar	
  de	
  escribir	
  todo.	
  
4. El	
  “navigator	
  dummy”	
  hace	
  una	
  
tarea	
  similar	
  
Problemas	
  del	
  MOB
• Navigators	
  “Pasivos”.	
  
• Puede	
  no	
  ser	
  productivo	
  para	
  historias	
  
de	
  usuarios	
  simples.	
  
• Los	
  Drivers	
  “Genios”	
  
• Los	
  Navigators	
  “Teóricos	
  que	
  saben	
  
como	
  resolver	
  el	
  problema”	
  
• Si	
  la	
  visión	
  de	
  la	
  empresa	
  es	
  Horas/
Hombre,	
  va	
  a	
  ser	
  un	
  desastre	
  
• Problemas	
  Técnicos
Beneficios
• El	
  código	
  tiene	
  el	
  talento	
  y	
  el	
  ingenio	
  de	
  
todo	
  el	
  equipo.	
  
• Implícitamente	
  se	
  da	
  el	
  code	
  review	
  
• Si	
  la	
  empresa	
  se	
  enfoca	
  en	
  el	
  valor	
  de	
  
negocio	
  es	
  genial.	
  
• Se	
  genera	
  un	
  proceso	
  de	
  aprendizaje	
  
técnico	
  y	
  del	
  negocio.	
  
• Se	
  optimiza	
  la	
  productividad	
  al	
  trabajar	
  
todos	
  en	
  una	
  maquina.	
  
• Se	
  eliminan	
  los	
  silos	
  de	
  conocimiento.
Conclusiones
• A	
  equipos	
  ágiles	
  les	
  es	
  mas	
  sencillo	
  adoptar	
  esta	
  practica	
  
• Funciona	
  cuando	
  las	
  personas	
  se	
  respetan,	
  colaboran	
  y	
  están	
  
dispuestas	
  a	
  aprender	
  y	
  enseñar.	
  
• Se	
  nos	
  da	
  muy	
  bien	
  para	
  trabajar	
  historias	
  de	
  usuario	
  o	
  requerimientos	
  
poco	
  claros.	
  
• Facilita	
  el	
  On	
  Boarding	
  =	
  Educación	
  +	
  Aprendizaje	
  de	
  los	
  miembros	
  del	
  
equipo	
  en	
  el	
  Complejidad	
  Accidental	
  o	
  Complejidad	
  Esencial.	
  
• No	
  siempre	
  es	
  bien	
  visto	
  por	
  los	
  directivos	
  de	
  la	
  empresa.	
  
• No	
  es	
  un	
  SilverBullet.
26
“Si caminas solo, irás más rápido;
si caminas acompañado,
llegarás más lejos.”
Anonimo.
@oscaramelunge
oscar.amelunge@gmail.com
oscar.amelunge
www.amelunge.com

Más contenido relacionado

Similar a Mob programming Agiles 2015

Mob programming como forma de auto organización de un equipo Agile
Mob programming  como forma de auto organización de un equipo AgileMob programming  como forma de auto organización de un equipo Agile
Mob programming como forma de auto organización de un equipo AgileOscar Amelunge
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDSantiago Blanco
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidadLeonardo Soto
 
XP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la prácticaXP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la prácticaSantiago Blanco
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfRicard Clau
 
Charla Roberto Canales Codemotion 2017 Madrid
Charla Roberto Canales Codemotion 2017 MadridCharla Roberto Canales Codemotion 2017 Madrid
Charla Roberto Canales Codemotion 2017 MadridRoberto Canales
 
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?Vane Amaya
 
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?Software Guru
 
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?Software Guru
 
Software testing dragon lesson spanish - latam.pptx
Software testing dragon lesson   spanish - latam.pptxSoftware testing dragon lesson   spanish - latam.pptx
Software testing dragon lesson spanish - latam.pptxJavierAlejandroChave5
 
Devsecooops Los Caso de no éxito en DevSecOps
Devsecooops Los Caso de no éxito en DevSecOpsDevsecooops Los Caso de no éxito en DevSecOps
Devsecooops Los Caso de no éxito en DevSecOpsLuciano Moreira da Cruz
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasRicard Clau
 
Introducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a ObjetosIntroducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a Objetosedwinlemmon
 

Similar a Mob programming Agiles 2015 (20)

Mob Programming
Mob ProgrammingMob Programming
Mob Programming
 
Mob programming como forma de auto organización de un equipo Agile
Mob programming  como forma de auto organización de un equipo AgileMob programming  como forma de auto organización de un equipo Agile
Mob programming como forma de auto organización de un equipo Agile
 
XP_PairProgramming_y_TDD
XP_PairProgramming_y_TDDXP_PairProgramming_y_TDD
XP_PairProgramming_y_TDD
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
 
XP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la prácticaXP - Pair Programming y TDD - en la práctica
XP - Pair Programming y TDD - en la práctica
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdf
 
El TAO de la programación
El TAO de la programaciónEl TAO de la programación
El TAO de la programación
 
Charla Roberto Canales Codemotion 2017 Madrid
Charla Roberto Canales Codemotion 2017 MadridCharla Roberto Canales Codemotion 2017 Madrid
Charla Roberto Canales Codemotion 2017 Madrid
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Desensamble del portatil
Desensamble del portatilDesensamble del portatil
Desensamble del portatil
 
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
 
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
 
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
¿Qué harían Yoda y el Sr. Spock si fueran Scrum Masters?
 
Software testing dragon lesson spanish - latam.pptx
Software testing dragon lesson   spanish - latam.pptxSoftware testing dragon lesson   spanish - latam.pptx
Software testing dragon lesson spanish - latam.pptx
 
Devsecooops Los Caso de no éxito en DevSecOps
Devsecooops Los Caso de no éxito en DevSecOpsDevsecooops Los Caso de no éxito en DevSecOps
Devsecooops Los Caso de no éxito en DevSecOps
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticas
 
Introducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a ObjetosIntroducción a la Tecnología Orientada a Objetos
Introducción a la Tecnología Orientada a Objetos
 
El tao de la programación
El tao de la programaciónEl tao de la programación
El tao de la programación
 
Corporate agile
Corporate agile Corporate agile
Corporate agile
 
No Silver Bullet
No Silver BulletNo Silver Bullet
No Silver Bullet
 

Mob programming Agiles 2015

  • 1. MOB  PROGRAMMING    como   forma  de  auto-­‐  organización   de  un  equipo  SCRUM @oscaramelunge
  • 2. 2
  • 3. “All  of  the  monsters  who  fill  nightmares  of  our  folklore,  none  terrify   more    then  werewolves,  because  they  transform  unexpectedly  from  a   familiar  into  horrors.  For  these  ,  we  seek  bullets  of  silver  than  can   magically  lay  them  to  rest” No  Silver  Bullet-­‐  Frederick  Brooks  1986 3
  • 4. “SoAware  has  something  with  this  character,  usually  innocent  and   straighBorward,  but  capable  of  becoming  a  monster  of  messed   schedules,  blown  budgets,  and  flawed  products.  SO  WE  HEAR   DESPERATE  CRIES  FOR  A  SILVER  BULLET” No  Silver  Bullet-­‐  Frederick  Brooks  1986 4
  • 5.
  • 6. 6
  • 7. 7 Complejidad  Accidental Complejidad  Esencial FRED  BROOKS   "No  Silver  Bullet  —  Essence  and     Accidents  of  Software  Engineering"     1986
  • 8. 8 Complejidad  Accidental   Variable  Independiente Complejidad  Esencial   Variable  Dependiente VARIABLE  INTERVINIENTE
  • 9. 9
  • 10. 10 Complejidad  Accidental   Variable  Independiente Complejidad  Esencial   Variable  Dependiente VARIABLE  INTERVINIENTE
  • 11. 11 “En lugar de que cada miembro haga cortes sobre el problema, uno sólo hace el corte y los demás le dan todo el soporte posible, lo que mejorará la eficiencia y productividad de toda la actividad” F. Brooks, Cap2, The Mythical Man-Month 1975
  • 12. MOB  PROGRAMMING “Mob  programming  is  a   software  development   approach  where  the  whole   team  works  on  the  same  thing   at  the  same  time,  in  the  same   space,  and  at  the  same   computer.” Woody  Zuill
  • 14. 14
  • 15. Principle “Treat  each  other  with   kindness,  consideration,  and   respect.”
  • 16. Practice Driver/navigator  pair   programming  adapted  to  work   with  the  whole  team
  • 19. Practice: Reflect,  Tune,  and  Adjust   Frequently   

  • 20. Donde  Aplicamos  MOB 1. Historias  de  usuario  que  son   muy  grandes  no  se  puede   partir.   2. No  todos  los  miembros  del   equipo  son  expertos  en  la   historias  de  usuario  o  no  tienen   la  habilidades  para  desarrollar   toda  la  historia  de  usuario.
  • 21. Historias  Grandes 1. Brainstorming  para  generar   ideas  de  por  donde  empezamos.   2. Dividir  la  historias(tareas)  en   posibles  tareas  (sub-­‐tareas)   3. Empezar  a  trabajar  las  tareas   menos  claras.   4. Volver  al  paso  1  si  las  tareas  son   muy  grandes   5. Codificar  (Se  recomienda  TDD)   Recomendación:  Tener  siempre  a   mano  al  P.O.  o  experto  del  negocio
  • 22. On  Boarding  =   Aprendizaje  +  Educación 1. Una  tarea  seleccionada  es  trabajada   por  un  “driver  expert”.   2. Los  “navigators  dummy”  observan   3. Se  termina  la  tarea  y  se  discute  y   conceptualiza  que  se  realice   4. “Borro  todo  el  código”  y  el   “navigator  dummy”  se  vuelve  a   tartar  de  escribir  todo.   4. El  “navigator  dummy”  hace  una   tarea  similar  
  • 23. Problemas  del  MOB • Navigators  “Pasivos”.   • Puede  no  ser  productivo  para  historias   de  usuarios  simples.   • Los  Drivers  “Genios”   • Los  Navigators  “Teóricos  que  saben   como  resolver  el  problema”   • Si  la  visión  de  la  empresa  es  Horas/ Hombre,  va  a  ser  un  desastre   • Problemas  Técnicos
  • 24. Beneficios • El  código  tiene  el  talento  y  el  ingenio  de   todo  el  equipo.   • Implícitamente  se  da  el  code  review   • Si  la  empresa  se  enfoca  en  el  valor  de   negocio  es  genial.   • Se  genera  un  proceso  de  aprendizaje   técnico  y  del  negocio.   • Se  optimiza  la  productividad  al  trabajar   todos  en  una  maquina.   • Se  eliminan  los  silos  de  conocimiento.
  • 25. Conclusiones • A  equipos  ágiles  les  es  mas  sencillo  adoptar  esta  practica   • Funciona  cuando  las  personas  se  respetan,  colaboran  y  están   dispuestas  a  aprender  y  enseñar.   • Se  nos  da  muy  bien  para  trabajar  historias  de  usuario  o  requerimientos   poco  claros.   • Facilita  el  On  Boarding  =  Educación  +  Aprendizaje  de  los  miembros  del   equipo  en  el  Complejidad  Accidental  o  Complejidad  Esencial.   • No  siempre  es  bien  visto  por  los  directivos  de  la  empresa.   • No  es  un  SilverBullet.
  • 26. 26 “Si caminas solo, irás más rápido; si caminas acompañado, llegarás más lejos.” Anonimo.
  • 27.