Utilizamos cookies propias y de terceros para mejorar nuestros servicios mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración y obtener más información aquí.

Artículos

Artículos

Test Driven Development

9 · May · 2018

Aprender a programar no es difícil. Hay multitud de formas de conseguirlo. Desde cursos de programación gratuitos online, de pago, libros, etc. Es bastante más complicado llegar a ser un programador profesional: hay multitud de tecnologías y metodologías que se demandan para acceder al mercado laboral. Entre ellas, el TDD, que no se aprende con solo un video.

Paradigmas que llegan, se van, se quedan o evolucionan

TDD o Test Driven Development es una práctica de programación que implica escribir primero los tests que el código que se hará después debería superar. Se usa desde hace muchos años y se puede encontrar en multitud de ofertas de empleo en InfoJobs o LinkedIn, pero su uso no era (en general) habitual en el día a día. En los últimos meses, ha habido un cambio en este aspecto: cada vez más nuestros alumnos nos dicen que lo usan a diario en sus trabajos, y las empresas con las que colaboramos lo valoran en ellos.

Esta metodología no se aprende en una charla. No es una materia concreta, sino que forma parte de un conjunto de materias que son transversales y que afectan a la forma como queremos que nuestros estudiantes lleguen a ser programadores profesionales. Es por esta razón que en las últimas tres ediciones de nuestro Bootcamp de Desarrollo Web hemos introducido el uso de testing desde los primeros días de Javascript. De este modo, obligamos a que nuestros alumnos estén durante casi diez semanas conociendo, interiorizando y practicando con esta metodología mientras aprenden otras materias.

TDD es un mundo por si mismo y entrar en profundidad haría que nuestros estudiantes cojearan de alguna otra materia. Guiándonos por el concepto de Test Pyramid de Martin Fowler conseguimos el equilibrio necesario para que los alumnos entiendan en qué puntos es más óptimo testear el código y dominen también el resto de materias.

Más difícil a corto plazo pero más fácil a largo plazo

Las primeras semanas del curso son duras por la cantidad de conceptos nuevos con los que impactamos a los alumnos. Introducir TDD era incorporar un concepto nuevo, anti-intuitivo en muchos casos, pero que hace que nuestros alumnos destaquen en las entrevistas y sus posteriores puestos de trabajo. El Bootcamp de Skylab Coders es especialmente difícil por el nivel de exigencia que requerimos a nuestros estudiantes.

Entendiendo que nuestros alumnos están aprendiendo a programar, TDD nos sirve para que piensen primero en qué tienen que hacer y luego lo traduzcan a código. Esta reflexión previa es muy útil para que se tomen el tiempo necesario para hacerse diagramas mentales, contemplar todas las casuísticas y desplegar todas las herramientas que conocen de Javascript.

Estar seguros que, desde un inicio, el código cumplirá los requerimientos necesarios hace que consigamos más foco en las funcionalidades básicas. Puede parecer un proceso más lento, pero educativamente es muy beneficioso y el tiempo de corrección de errores a posteriori se minimiza. Es decir, conseguimos que nuestros alumnos tarden menos tiempo en entregar un código correcto y funcional en menos tiempo.