SlideShare una empresa de Scribd logo
1 de 15
Pair Programming
y TDD
¿Qué, por qué, cómo?
Agenda
• ¿Que es Pair Programming?
• Mitos y leyendas
• ¿Por qué Pair Programming?
• ¿Que es TDD?
• ¿Por qué TDD?

• A ponerlo en práctica!
Definición de Pair Programming
"Pair programming es un estilo de
programación en el cual dos programadores
trabajan en una misma
máquina, colaborando en forma contínua en
el mismo diseño, algoritmo o prueba”
– Laurie Williams

3
Roles
• El conductor
– La persona que tiene el control sobre la
máquina
– Basicamente, es quien tipea

• El acompañante
– Acompaña en forma activa al conductor
– Puede pasar a ser el conductor en cualquier
momento
4
Mitos y leyendas
• Mito: La productividad se reduce a la mitad
• Mito: La programación es una actividad
solitaria, en un cubículo cerrado
• Mito: Voy a pagarle a dos personas por lo que
puede hacer una.
• Mito: Las distracciones se duplican

5
¿Por qué Pair Programming?
• Hay muchos mitos, pero en realidad…
– Pair programming mejorar la productividad
y aumenta la calidad
– Asegura la transferencia de conocimiento
– Suaviza la curva de aprendizaje
– Mejora el ambiente de trabajo entre
PERSONAS que producen SOFTWARE

6
TDD – Test Driven Development

• Ciclo virtuoso: RED, GREEN, REFACTOR
• Práctica de diseño (no de testing)
• No comenzar a programar hasta no tener una
especificación escrita como un test, fallando.
• La especificación debe ser lo mínimo indispensable (KISS)
• Siempre hay tiempo para mejorar técnicamente
7
Unit testing
• Divide y venceras
• Prueba una pequeña
porción de
funcionalidad, en forma
separada.
• Simples, fáciles de
entender
• Corren muy rápido
• Son la base para asegurar
la calidad
8
Refactoring
• Tomar código existente y cambiarlo para hacerlo
mas eficiente
• No cambia la funcionalidad, solo como se
implementa
• Puede incorporar cambias significativos

9
¿por qué TDD?

• TDD produce código 100% testeable
• No se pierde tiempo con código que no puede
ejecutar
• El código siempre cumple las especificaciones de
diseño
10
TDD - Herramientas
• Hay herramientas para todos
los gustos:
– Java: junit
– .NET: Visual Studio Test
Explorer, nunit
– JavaScript: jasmine – karma
– C: cmocka, cunit, check
– PL: Plunit
– Ruby: Test::Unit
–…
11
Aprendamos haciendo
• Elegi un compañero
• Les proponemos una Kata
• Se ponen a trabajar!

12
Aprendamos haciendo
La Kata
Piedra, papel o tijeras
•
•
•
•

Si las dos elecciones son las mismas es un empate
Las tijeras cortan el papel
El papel cubre a la piedra
La piedra aplasta las tijeras.

Desarrollar un programa capaz de determinar en un
torneo de dos jugadores cual de ellos gana o si empatan
al enfrentarse a este juego.

13
Aprendamos haciendo
La Kata – parte 2
En la serie de televisión The Big Bang Theory , el popular personaje
Sheldom Cooper, propone una extensión del popular juego piedra
papel tijera. Con el fin de hacerlo más divertido añade dos variables
nuevas al juego: lagarto y spock.
•
•
•
•
•
•
•
•
•
•
•

Si las dos elecciones son las mismas es un empate
Las tijeras cortan el papel
El papel cubre a la piedra
La piedra aplasta al lagarto
El lagarto envenena a Spock
Spock destroza las tijeras
Las tijeras decapitan al lagarto
El lagarto se come el papel
El papel refuta a Spock
Spock vaporiza la piedra
La piedra aplasta las tijeras.

14

Modificar el programa para
cubrir los nuevos
requerimientos
Aprendamos haciendo

Pair Programming
y TDD
Cierre, conclusiones y preguntas

15

Más contenido relacionado

Destacado

XS4ALL Contentstrategie consult sessie - TAKEOUT
XS4ALL Contentstrategie consult sessie - TAKEOUT XS4ALL Contentstrategie consult sessie - TAKEOUT
XS4ALL Contentstrategie consult sessie - TAKEOUT AtMost and AtMostTV
 
X torneio aberto escola joão de meira regulamento
X torneio aberto escola joão de meira regulamentoX torneio aberto escola joão de meira regulamento
X torneio aberto escola joão de meira regulamentoNXST
 
Xxii tacb2013 class apuramento ao regional (1)
Xxii tacb2013   class apuramento ao regional (1)Xxii tacb2013   class apuramento ao regional (1)
Xxii tacb2013 class apuramento ao regional (1)Clube Naval Maria
 
X semana cutural la magia de la lectura
X  semana cutural la magia de la lecturaX  semana cutural la magia de la lectura
X semana cutural la magia de la lecturaCole Navalazarza
 
XXL2013 - G2 - (Pre)Final Presentati...
XXL2013 - G2 - (Pre)Final Presentati...XXL2013 - G2 - (Pre)Final Presentati...
XXL2013 - G2 - (Pre)Final Presentati...Michela Turrin
 
Xvii Cic Configuração da linguagem de padrões SiGCLi no Captor
Xvii Cic Configuração da linguagem de padrões SiGCLi no CaptorXvii Cic Configuração da linguagem de padrões SiGCLi no Captor
Xvii Cic Configuração da linguagem de padrões SiGCLi no Captordenstorti
 

Destacado (12)

XS4ALL Contentstrategie consult sessie - TAKEOUT
XS4ALL Contentstrategie consult sessie - TAKEOUT XS4ALL Contentstrategie consult sessie - TAKEOUT
XS4ALL Contentstrategie consult sessie - TAKEOUT
 
Xút hạt ( sodium hydroxide na oh)
Xút hạt ( sodium hydroxide na oh)Xút hạt ( sodium hydroxide na oh)
Xút hạt ( sodium hydroxide na oh)
 
X torneio aberto escola joão de meira regulamento
X torneio aberto escola joão de meira regulamentoX torneio aberto escola joão de meira regulamento
X torneio aberto escola joão de meira regulamento
 
Xxii tacb2013 class apuramento ao regional (1)
Xxii tacb2013   class apuramento ao regional (1)Xxii tacb2013   class apuramento ao regional (1)
Xxii tacb2013 class apuramento ao regional (1)
 
X semana cutural la magia de la lectura
X  semana cutural la magia de la lecturaX  semana cutural la magia de la lectura
X semana cutural la magia de la lectura
 
XOliday 2015_July_ru
XOliday 2015_July_ruXOliday 2015_July_ru
XOliday 2015_July_ru
 
New Jersey Vegetated Roofs Gardening Guidebook
New Jersey Vegetated Roofs Gardening GuidebookNew Jersey Vegetated Roofs Gardening Guidebook
New Jersey Vegetated Roofs Gardening Guidebook
 
Xsd basics
Xsd basicsXsd basics
Xsd basics
 
XStream Flyer
XStream FlyerXStream Flyer
XStream Flyer
 
XXL2013 - G2 - (Pre)Final Presentati...
XXL2013 - G2 - (Pre)Final Presentati...XXL2013 - G2 - (Pre)Final Presentati...
XXL2013 - G2 - (Pre)Final Presentati...
 
Xvii Cic Configuração da linguagem de padrões SiGCLi no Captor
Xvii Cic Configuração da linguagem de padrões SiGCLi no CaptorXvii Cic Configuração da linguagem de padrões SiGCLi no Captor
Xvii Cic Configuração da linguagem de padrões SiGCLi no Captor
 
XSharp
XSharpXSharp
XSharp
 

Similar a XP_PairProgramming_y_TDD

Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprogramingestudiante
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Cesar Acosta
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaManuel Rubio
 
Scrum Y Xp Desde Las Trincheras
Scrum Y Xp Desde Las TrincherasScrum Y Xp Desde Las Trincheras
Scrum Y Xp Desde Las Trincherasslimshadyx18
 
Scrum y XP desde Las Trincheras
Scrum y XP desde Las TrincherasScrum y XP desde Las Trincheras
Scrum y XP desde Las TrincherasSaviotec
 
Agile fundamentals - Campus Party
Agile fundamentals  - Campus Party Agile fundamentals  - Campus Party
Agile fundamentals - Campus Party Tania Silva
 
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
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasOrlando Bustos Mateluna
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidadLeonardo Soto
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilJohnny Ordóñez
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...César Hernández
 

Similar a XP_PairProgramming_y_TDD (20)

Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprograming
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Day01
Day01Day01
Day01
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la Práctica
 
Scrum Y Xp Desde Las Trincheras
Scrum Y Xp Desde Las TrincherasScrum Y Xp Desde Las Trincheras
Scrum Y Xp Desde Las Trincheras
 
Scrum y XP desde Las Trincheras
Scrum y XP desde Las TrincherasScrum y XP desde Las Trincheras
Scrum y XP desde Las Trincheras
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
Agile fundamentals - Campus Party
Agile fundamentals  - Campus Party Agile fundamentals  - Campus Party
Agile fundamentals - Campus Party
 
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
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 
Creando rascacielos con tdd
Creando rascacielos con tddCreando rascacielos con tdd
Creando rascacielos con tdd
 

Último

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (20)

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

XP_PairProgramming_y_TDD

  • 2. Agenda • ¿Que es Pair Programming? • Mitos y leyendas • ¿Por qué Pair Programming? • ¿Que es TDD? • ¿Por qué TDD? • A ponerlo en práctica!
  • 3. Definición de Pair Programming "Pair programming es un estilo de programación en el cual dos programadores trabajan en una misma máquina, colaborando en forma contínua en el mismo diseño, algoritmo o prueba” – Laurie Williams 3
  • 4. Roles • El conductor – La persona que tiene el control sobre la máquina – Basicamente, es quien tipea • El acompañante – Acompaña en forma activa al conductor – Puede pasar a ser el conductor en cualquier momento 4
  • 5. Mitos y leyendas • Mito: La productividad se reduce a la mitad • Mito: La programación es una actividad solitaria, en un cubículo cerrado • Mito: Voy a pagarle a dos personas por lo que puede hacer una. • Mito: Las distracciones se duplican 5
  • 6. ¿Por qué Pair Programming? • Hay muchos mitos, pero en realidad… – Pair programming mejorar la productividad y aumenta la calidad – Asegura la transferencia de conocimiento – Suaviza la curva de aprendizaje – Mejora el ambiente de trabajo entre PERSONAS que producen SOFTWARE 6
  • 7. TDD – Test Driven Development • Ciclo virtuoso: RED, GREEN, REFACTOR • Práctica de diseño (no de testing) • No comenzar a programar hasta no tener una especificación escrita como un test, fallando. • La especificación debe ser lo mínimo indispensable (KISS) • Siempre hay tiempo para mejorar técnicamente 7
  • 8. Unit testing • Divide y venceras • Prueba una pequeña porción de funcionalidad, en forma separada. • Simples, fáciles de entender • Corren muy rápido • Son la base para asegurar la calidad 8
  • 9. Refactoring • Tomar código existente y cambiarlo para hacerlo mas eficiente • No cambia la funcionalidad, solo como se implementa • Puede incorporar cambias significativos 9
  • 10. ¿por qué TDD? • TDD produce código 100% testeable • No se pierde tiempo con código que no puede ejecutar • El código siempre cumple las especificaciones de diseño 10
  • 11. TDD - Herramientas • Hay herramientas para todos los gustos: – Java: junit – .NET: Visual Studio Test Explorer, nunit – JavaScript: jasmine – karma – C: cmocka, cunit, check – PL: Plunit – Ruby: Test::Unit –… 11
  • 12. Aprendamos haciendo • Elegi un compañero • Les proponemos una Kata • Se ponen a trabajar! 12
  • 13. Aprendamos haciendo La Kata Piedra, papel o tijeras • • • • Si las dos elecciones son las mismas es un empate Las tijeras cortan el papel El papel cubre a la piedra La piedra aplasta las tijeras. Desarrollar un programa capaz de determinar en un torneo de dos jugadores cual de ellos gana o si empatan al enfrentarse a este juego. 13
  • 14. Aprendamos haciendo La Kata – parte 2 En la serie de televisión The Big Bang Theory , el popular personaje Sheldom Cooper, propone una extensión del popular juego piedra papel tijera. Con el fin de hacerlo más divertido añade dos variables nuevas al juego: lagarto y spock. • • • • • • • • • • • Si las dos elecciones son las mismas es un empate Las tijeras cortan el papel El papel cubre a la piedra La piedra aplasta al lagarto El lagarto envenena a Spock Spock destroza las tijeras Las tijeras decapitan al lagarto El lagarto se come el papel El papel refuta a Spock Spock vaporiza la piedra La piedra aplasta las tijeras. 14 Modificar el programa para cubrir los nuevos requerimientos
  • 15. Aprendamos haciendo Pair Programming y TDD Cierre, conclusiones y preguntas 15