SlideShare una empresa de Scribd logo
Coding Dojo
 @apiconz - Armando Picón
¿Qué es un Coding Dojo?
Un Coding Dojo es un lugar donde los
programadores asisten para mejorar sus
"skills", siguiendo un patrón similar al de un
dojo de artes marciales. Los participantes se
reunen para dar solución a un desafío de
programación, aplicando sus conocimientos y
aprendiendo nuevas técnicas para mejorar su
desarrollo, a través, de la interacción con sus
compañeros.
TDD (Test Driven Development)

                  Test



Refactor                        Fail


                                  KISS!
           Pass          Code     (Simple)
Dinámica

Pair programming:
    2 personas x
    1 computadora

Kake Coding Dojo:
5 - 7 minutos por ronda
Driver regresa a la audiencia.
Copilot pasa a ser Coder.
Un miembro de la audiencia pasa a ser
Copilot.
Desafío – Greed Kata
• Greed es un juego de dados. En el juego, se
  hacen rodar los dados tratando de obtener la
  mayor cantidad de puntos como sea posible.
• Se nos pide desarrollar una solución en la que
  se reciba una colección de valores de dados y
  nos permita conocer el puntaje obtenido.
• Para este kata, solo nos enfocaremos en un
  solo lanzamiento de cinco dados.
Desafío – Greed Kata
•   Escribir el código en el cuál se calcule el mejor puntaje basado en cualquier
    lanzamiento empleando la siguiente serie de puntuación:
      o Un solo 1 (100)
      o Un solo 5 (50)
      o Triple 1 [1,1,1] (1000)
      o Triple 2 [2,2,2] (200)
      o Triple 3 [3,3,3] (300)
      o Triple 4 [4,4,4] (400)
      o Triple 5 [5,5,5] (500)
      o Triple 6 [6,6,6] (600)
•   Ejemplos:
     o [1,1,1,5,1] = 1150 puntos
     o [2,3,4,6,2] = 0 puntos
     o [5,5,5,5,5] = 600 puntos
     o [1,5,1,2,4] = 250 puntos
Desafío – Greed Kata (Bonus)
•   Algunas reglas extras (cambiarán la forma de puntuación de algunos de los
    ejemplos anteriores):
     o El jugador puede lanzar 6 dados.
     o Cuatro en línea [2,2,2,2]: Multiplica el Triple por 2 (cuatro 2 deberían ser
        400).
     o Cinco en línea [2,2,2,2,2]: Multiplica el Triple por 3 (cinco 2 deberían
        hacer 800).
     o Seis en línea [2,2,2,2,2,2]: Multiplica el Triple puntaje por 8 (seis 2
        deberían hacer 1600).
     o Tres pares [2,2,3,3,4,4]: 800 puntos.
     o Raya [1,2,3,4,5,6]: 1200 puntos.
Feedback - Retrospectiva
Participa en la comunidad…




          AgilePerú en Google Groups
Armando Picón Z.
IBM WebSphere Portal Specialist
     & Agile Professional
  Certified Scrum Developer


      web | about.me/apiconz
   e-mail | apiconz@gmail.com
twitter | www.twitter.com/apiconz

Más contenido relacionado

Más de Armando Picón Z.

Introducción a la agilidad el manifiesto v2.0
Introducción a la agilidad   el manifiesto v2.0Introducción a la agilidad   el manifiesto v2.0
Introducción a la agilidad el manifiesto v2.0
Armando Picón Z.
 
Lima GTUG - Startup Android Workshop
Lima GTUG - Startup Android WorkshopLima GTUG - Startup Android Workshop
Lima GTUG - Startup Android Workshop
Armando Picón Z.
 
Android 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrolloAndroid 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrollo
Armando Picón Z.
 

Más de Armando Picón Z. (18)

Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
 
Integra tu Aplicación Android con Firebase
Integra tu Aplicación Android con FirebaseIntegra tu Aplicación Android con Firebase
Integra tu Aplicación Android con Firebase
 
Android Espresso
Android EspressoAndroid Espresso
Android Espresso
 
GDG Open - Herramientas para desarrolladores
GDG Open - Herramientas para desarrolladoresGDG Open - Herramientas para desarrolladores
GDG Open - Herramientas para desarrolladores
 
Introducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para AndroidIntroducción al desarrollo de aplicaciones para Android
Introducción al desarrollo de aplicaciones para Android
 
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
Ágiles 2014 Medellín - En el Cielo y en el Infierno, aplicando el agilismo en...
 
GDG Open - Overview de la Google Cloud Platform
GDG Open - Overview de la Google Cloud PlatformGDG Open - Overview de la Google Cloud Platform
GDG Open - Overview de la Google Cloud Platform
 
Taller Android - FLISOL Lima Este 2014
Taller Android - FLISOL Lima Este 2014Taller Android - FLISOL Lima Este 2014
Taller Android - FLISOL Lima Este 2014
 
Coding Dojo - Presentation Template
Coding Dojo - Presentation TemplateCoding Dojo - Presentation Template
Coding Dojo - Presentation Template
 
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesferaUsabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
Usabilidad de Practicas y Procesos por Diego Fontdevila-grupoesfera
 
Introducción a la agilidad el manifiesto v2.0
Introducción a la agilidad   el manifiesto v2.0Introducción a la agilidad   el manifiesto v2.0
Introducción a la agilidad el manifiesto v2.0
 
Introducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoIntroducción a la agilidad - El Manifiesto
Introducción a la agilidad - El Manifiesto
 
Introducción a la agilidad - El Manifiesto
Introducción a la agilidad - El ManifiestoIntroducción a la agilidad - El Manifiesto
Introducción a la agilidad - El Manifiesto
 
Lima GTUG - Startup Android Workshop
Lima GTUG - Startup Android WorkshopLima GTUG - Startup Android Workshop
Lima GTUG - Startup Android Workshop
 
Android 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrolloAndroid 00 - Instalando nuestro ambiente de desarrollo
Android 00 - Instalando nuestro ambiente de desarrollo
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
Distributed Scrum por Heitor Roriz
Distributed Scrum por Heitor RorizDistributed Scrum por Heitor Roriz
Distributed Scrum por Heitor Roriz
 
Como Enviar Sms Desde La Web De Movistar
Como Enviar Sms Desde La Web De MovistarComo Enviar Sms Desde La Web De Movistar
Como Enviar Sms Desde La Web De Movistar
 

Último

PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
ssusere34b451
 

Último (20)

Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
Bloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas DistribuidosBloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas Distribuidos
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
Sistemas distribuidos de redes de computadores en un entorno virtual de apren...
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 

Coding Dojo - Greed Kata

  • 1. Coding Dojo @apiconz - Armando Picón
  • 2. ¿Qué es un Coding Dojo? Un Coding Dojo es un lugar donde los programadores asisten para mejorar sus "skills", siguiendo un patrón similar al de un dojo de artes marciales. Los participantes se reunen para dar solución a un desafío de programación, aplicando sus conocimientos y aprendiendo nuevas técnicas para mejorar su desarrollo, a través, de la interacción con sus compañeros.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. TDD (Test Driven Development) Test Refactor Fail KISS! Pass Code (Simple)
  • 9. Dinámica Pair programming: 2 personas x 1 computadora Kake Coding Dojo: 5 - 7 minutos por ronda Driver regresa a la audiencia. Copilot pasa a ser Coder. Un miembro de la audiencia pasa a ser Copilot.
  • 10. Desafío – Greed Kata • Greed es un juego de dados. En el juego, se hacen rodar los dados tratando de obtener la mayor cantidad de puntos como sea posible. • Se nos pide desarrollar una solución en la que se reciba una colección de valores de dados y nos permita conocer el puntaje obtenido. • Para este kata, solo nos enfocaremos en un solo lanzamiento de cinco dados.
  • 11. Desafío – Greed Kata • Escribir el código en el cuál se calcule el mejor puntaje basado en cualquier lanzamiento empleando la siguiente serie de puntuación: o Un solo 1 (100) o Un solo 5 (50) o Triple 1 [1,1,1] (1000) o Triple 2 [2,2,2] (200) o Triple 3 [3,3,3] (300) o Triple 4 [4,4,4] (400) o Triple 5 [5,5,5] (500) o Triple 6 [6,6,6] (600) • Ejemplos: o [1,1,1,5,1] = 1150 puntos o [2,3,4,6,2] = 0 puntos o [5,5,5,5,5] = 600 puntos o [1,5,1,2,4] = 250 puntos
  • 12. Desafío – Greed Kata (Bonus) • Algunas reglas extras (cambiarán la forma de puntuación de algunos de los ejemplos anteriores): o El jugador puede lanzar 6 dados. o Cuatro en línea [2,2,2,2]: Multiplica el Triple por 2 (cuatro 2 deberían ser 400). o Cinco en línea [2,2,2,2,2]: Multiplica el Triple por 3 (cinco 2 deberían hacer 800). o Seis en línea [2,2,2,2,2,2]: Multiplica el Triple puntaje por 8 (seis 2 deberían hacer 1600). o Tres pares [2,2,3,3,4,4]: 800 puntos. o Raya [1,2,3,4,5,6]: 1200 puntos.
  • 14. Participa en la comunidad… AgilePerú en Google Groups
  • 15. Armando Picón Z. IBM WebSphere Portal Specialist & Agile Professional Certified Scrum Developer web | about.me/apiconz e-mail | apiconz@gmail.com twitter | www.twitter.com/apiconz