SlideShare una empresa de Scribd logo
1 de 15
Pair Programming
y TDD
¿Qué, por qué, cómo?
@santiagomblanco
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

Autopromoción e identidad de canal de la sexta
Autopromoción e identidad de canal de la sextaAutopromoción e identidad de canal de la sexta
Autopromoción e identidad de canal de la sexta
MonicaArzua
 
La audiencia frente a la televisión y la
La audiencia frente a la televisión  y laLa audiencia frente a la televisión  y la
La audiencia frente a la televisión y la
Ginis Cortes
 
Editar videos online con YouTube
Editar videos online con YouTubeEditar videos online con YouTube
Editar videos online con YouTube
Alberto Albarrán
 
Innovación Audiovisual: Conferencia de Francisco Asensi:
Innovación Audiovisual: Conferencia de Francisco Asensi: Innovación Audiovisual: Conferencia de Francisco Asensi:
Innovación Audiovisual: Conferencia de Francisco Asensi:
Innovación Audiovisual
 

Destacado (20)

La transmediatización del contenido en la era de las Meaningful Brands (confe...
La transmediatización del contenido en la era de las Meaningful Brands (confe...La transmediatización del contenido en la era de las Meaningful Brands (confe...
La transmediatización del contenido en la era de las Meaningful Brands (confe...
 
Innovación Audiovisual + FLUOR
Innovación Audiovisual + FLUORInnovación Audiovisual + FLUOR
Innovación Audiovisual + FLUOR
 
Estrategias
EstrategiasEstrategias
Estrategias
 
Autopromoción e identidad de canal de la sexta
Autopromoción e identidad de canal de la sextaAutopromoción e identidad de canal de la sexta
Autopromoción e identidad de canal de la sexta
 
Redes Sociales en #Educación (3)
Redes Sociales en #Educación (3)Redes Sociales en #Educación (3)
Redes Sociales en #Educación (3)
 
La audiencia frente a la televisión y la
La audiencia frente a la televisión  y laLa audiencia frente a la televisión  y la
La audiencia frente a la televisión y la
 
Workshop 'Innovación Transmedia: The Connect + Develop Methodology'
Workshop 'Innovación Transmedia: The Connect + Develop Methodology'Workshop 'Innovación Transmedia: The Connect + Develop Methodology'
Workshop 'Innovación Transmedia: The Connect + Develop Methodology'
 
Editar videos online con YouTube
Editar videos online con YouTubeEditar videos online con YouTube
Editar videos online con YouTube
 
Las 10 (+20) cosas que he aprendido creando contenidos
Las 10 (+20) cosas que he aprendido creando contenidos Las 10 (+20) cosas que he aprendido creando contenidos
Las 10 (+20) cosas que he aprendido creando contenidos
 
autopromoción
autopromociónautopromoción
autopromoción
 
Neox vs fdf
Neox vs fdfNeox vs fdf
Neox vs fdf
 
Efectos sociales y comunicacionales del terremoto en chile, marzo2010
Efectos sociales y comunicacionales del terremoto en chile, marzo2010Efectos sociales y comunicacionales del terremoto en chile, marzo2010
Efectos sociales y comunicacionales del terremoto en chile, marzo2010
 
Innovación Audiovisual: Conferencia de Francisco Asensi:
Innovación Audiovisual: Conferencia de Francisco Asensi: Innovación Audiovisual: Conferencia de Francisco Asensi:
Innovación Audiovisual: Conferencia de Francisco Asensi:
 
Transmedia Innovation: The Connect & Develop Theory
Transmedia Innovation: The Connect & Develop TheoryTransmedia Innovation: The Connect & Develop Theory
Transmedia Innovation: The Connect & Develop Theory
 
El salto de lo analógico a lo digital
El salto de lo analógico a lo digitalEl salto de lo analógico a lo digital
El salto de lo analógico a lo digital
 
Analisis derechos television deportes y futbol España 2013 2014 - Sports Tv r...
Analisis derechos television deportes y futbol España 2013 2014 - Sports Tv r...Analisis derechos television deportes y futbol España 2013 2014 - Sports Tv r...
Analisis derechos television deportes y futbol España 2013 2014 - Sports Tv r...
 
El público -por fin-demanda estrategias Transmedia
El público -por fin-demanda estrategias TransmediaEl público -por fin-demanda estrategias Transmedia
El público -por fin-demanda estrategias Transmedia
 
Benchmark patrocinadores futbol 2013 2014 clubes liga bbva Champions, UEFA, F...
Benchmark patrocinadores futbol 2013 2014 clubes liga bbva Champions, UEFA, F...Benchmark patrocinadores futbol 2013 2014 clubes liga bbva Champions, UEFA, F...
Benchmark patrocinadores futbol 2013 2014 clubes liga bbva Champions, UEFA, F...
 
La Teoría del Brillo en las marcas
La Teoría del Brillo en las marcasLa Teoría del Brillo en las marcas
La Teoría del Brillo en las marcas
 
Case study: patrocinio Intel Futbol Club Barcelona. Sponsorship Intel Corpor...
Case study:  patrocinio Intel Futbol Club Barcelona. Sponsorship Intel Corpor...Case study:  patrocinio Intel Futbol Club Barcelona. Sponsorship Intel Corpor...
Case study: patrocinio Intel Futbol Club Barcelona. Sponsorship Intel Corpor...
 

Similar a XP - Pair Programming y TDD - en la práctica

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
Martin Siniawski
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
Jordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
Jordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
Akamon Engineering
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
Leonardo Soto
 

Similar a XP - Pair Programming y TDD - en la práctica (20)

Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprograming
 
Day01
Day01Day01
Day01
 
Frontend Developer
Frontend DeveloperFrontend Developer
Frontend Developer
 
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
 
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
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)
 
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?
 
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
 
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
 
Agile fundamentals - Campus Party
Agile fundamentals  - Campus Party Agile fundamentals  - Campus Party
Agile fundamentals - Campus Party
 
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...
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Creando rascacielos con tdd
Creando rascacielos con tddCreando rascacielos con tdd
Creando rascacielos con tdd
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 

Último (18)

presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

XP - Pair Programming y TDD - en la práctica

  • 1. Pair Programming y TDD ¿Qué, por qué, cómo? @santiagomblanco
  • 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