José Juan Sánchez Hernández

Lifelong Learner

About me
Research
Android
Talks
Experiments
Personal Projects
NanoPlayBoard
Blog

Charla TDD y Dojo en Almería

May 13, 2014


El martes, 13 de Mayo, contaremos con la presencia de Javier Gutiérrez, profesor de la ETSII en la Universidad de Sevilla, que impartirá una sesión doble de mañana y tarde de Test-Driven Development en la Universidad de Almería.

Muchos habéis preguntado en qué van a consistir estas sesiones así que os voy a dejar la información que Javier nos ha preparado para que no tengamos ninguna duda.

1) Sesión de mañana: Charla “Cómo aplicar TDD”

Hora y lugar

Hora: 12:00h.
Lugar: Sala de grados EPS de la Universidad de Almería.

Objetivos

  • Explicar brevemente cómo se realiza TDD.
  • Hacer un rápido repaso de las herramientas y librerías que nos facilitan aplicar TDD, así como el perfil de TDD: los conocimientos que un gran programador y practicante de TDD debe conocer.
  • Entrar en detalle de los por qués de TDD y justificar por qué TDD funciona de esta manera y qué conseguimos con ello.
  • Ver el lado oscuro de TDD trayendo opiniones relevantes que critican TDD y, a partir de ellas, ver qué cosas s epodrían mejorar.
  • Hacer una rápida introducción a TDD
  • Ver un ejemplo durante la charla de cómo ir aplicando TDD a un ejercicio sencillo.

¿Qué es TDD?

Una de las técnicas ágiles que más difusión ha alcanzado es el desarrollo dirigido por pruebas o TDD en sus siglas en inglés. Esta técnica propone el diseño del código de manera interactiva, planteando el desarrollo desde la perspectiva de cuál es la manera más adecuada de utilizar el código en lugar de qué elementos debe tener, y creando un conjunto de pruebas que nos avisen inmediatamente hemos introducido algún cambio que modifique su funcionamiento.

2) Sesión de tarde: TDD Dojo

Duración y lugar

Hora: 16:00h.
Lugar: Aula 11 del Edificio de Informática.

### Objetivo

Aprender desarrollo dirigido por pruebas (Test-Driven Development o TDD) mientras haces TDD y te lo pasas bien. Propondremos alguna kata básica de TDD (por ejemplo la kata FizzBuzz).

Descripción

En este dojo de código realizaremos una kata aplicando TDD y, después, una puesta en común de los resultados y pequeño coloquio sobre TDD, como comenzar, como mantenerlo, los errores más habituales, etc.

Comenzaremos con una brevísima introducción a TDD y organizando el trabajo. Así, además, daremos tiempo para que se unan los compañeros que no puedan llegar antes.

Después explicaremos el enunciado de la kata y comenzaremos a aplicar TDD timeboxing. Con esta variante plantearemos cuál es el siguiente paso que queremos lograr, propondremos un tiempo para lograrlo (de pocos minutos en el mejor de los casos) y después comentaremos brevemente posibles soluciones. Así aprenderás rápidamente la mecánica y filosofía de TDD.

Una vez que ya te hayas acostumbrado a seguir los ciclos de TDD será el momento de que continúes por tu cuenta y a tu propio ritmo. Después, haremos una puesta en común de la solución y terminaremos hablando entre todos sobre los problemas y las ventajas de utilizar TDD y lo que surja.

Más sobre una kata

Las katas de programación y TDD, al igual en el las artes marciales, son una serie de ejercicios pensados para practicar las habilidades de programación y convertirte en un mejor programador. El objetivo de una kata no es terminarla rápidamente o de cualquier manera, sino el tener la oportunidad de aplicar nueva sideas o variantes y descubrir maneras más elegantes y efectivas que te ayuden a resolver el trabajo del día a día.

### Perfil de los asistentes

Cualquier persona con interés en la programación y ganas de aprender, mejorar y conocer a otros compañeros de profesión y de pasión es bienvenida.

Para ser capaz de resolver la kata es necesario tener conocimientos de programación y ser capaz de escribir pruebas automáticas. Si puedes escribir una prueba que verifique la suma de dos números entonces tienes el nivel perfecto para una kata.

Recuerda que el dojo no es un lugar dónde aprender programación sino un lugar dónde aprender a ser un mejor programador. Si no tienes el nivel también estás invitado a venir a ver los ejercicios o a hacer pareja con otro participante. Seguro que puedes ayudarle.

Los asistentes pueden usar el lenguaje y herramienta que quieran. el facilitador proporcionará ejemplos en Java / Eclipse y en Python / Pycharm.

Breve currículum de Javier Gutiérrez

Javier Gutiérrez es profesor en la ETSII en la Universidad de Sevilla y TDD infected e infector. Colabora con varios blogs como AprendiendoTDD, Pybonacci, IndieORama, etc. con artículos sobre pruebas, participa en congresos como la Conferencia Agile Spain, codemotion, etc. también con artículos de prueba y cuando tiene oportunidad de colarse en alguna empresa dónde aún no le conocen enseguida organiza una tarde de pruebas TDD, café y pasteles.

Además de las pruebas, también es un gran aficionado a ayudar los demás en sus proyectos. Ha colaborado y colabora en distintos proyectos de software libre y anima todo el que quiera hacer videojuegos a que se ponga a ello con el club GameUS y distintas visitas a las Betabeers de Andalucía.