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