Test Driven Learning (TDL)

Chez Zenika nous aimons apprendre en nous amusant, et nous avons testé dernièrement une nouvelle approche : le Test Driven Learning (TDL).

Proche de son cousin le Test Driven Development (TDD), le TDL consiste à apprendre à utiliser un nouvel outil technique (par exemple un langage ou un framework) en s’appuyant sur les tests.
Nous allons à travers une série d’articles vous présenter les principes du TDL et les raisons pour lesquelles nous l’avons adopté. Ce premier article sera suivi d’autres, présentant la manière dont nous l’avons mis en place pour apprendre de nouveaux langages.

Conditions nécessaires à un apprentissage agréable et efficace

Quand il s’agit d’apprendre quelque chose de nouveau, il est important de sortir du contexte de stress potentiel que représente un projet professionnel. De plus, la découverte d’un nouveau contexte fonctionnel demande de l’attention, celle-ci ne sera pas disponible pour apprendre le sujet. Nous vous recommandons donc de choisir un sujet que vous maîtrisez parfaitement et de petite taille (par exemple des katas que vous maîtrisez).
Enfin, il est important d’avoir déjà eu des expériences notables avec TDD car TDL se base sur les mêmes principes. Faire du TDL sans connaître TDD revient à vouloir réparer une voiture sans savoir serrer un boulon !

Avantages de cette méthode

Les tests permettent d’avoir une boucle de feedback très rapide ce qui permet d’éviter de s’embourber dans un mauvais chemin et de ne pas se noyer dans un détail.
Ils permettent aussi d’être objectif sur son avancée dans la maîtrise de la technologie (ce qui bien souvent fait du bien au moral).
Enfin, les tests de petite taille, nous permettent de donner libre court à nos envies d’explorations. Nous pouvons faire passer les mêmes tests de plusieurs manières différentes avec le même outil et donc essayer sans crainte des nouvelles méthodes.
De plus, l’automatisation des tests est de plus en plus présente en entreprise (et heureusement). Apprendre avec TDL permet de savoir utiliser et tester une technologie. Il sera alors plus aisé de l’introduire dans un contexte professionnel en maîtrisant ces deux aspects.

Conclusion

Plusieurs articles vont suivre dans les mois qui viennent sur cette méthode d’apprentissage. Nous allons utiliser cette technique afin d’apprendre de nouveaux langages (Go, Scala, Haskell,…) et nous utiliserons divers katas comme “cadre connu”.
Nos articles n’auront donc pas pour but de vous montrer comment faire un “Hello World” mais bien d’aborder toute nouvelle notion par un test. Ces expériences seront partagées au fur et à mesure avec vous car toute expérience n’a de valeur que si elle est partagée.
Cet article a été écrit en collaboration avec Ludo Fernandez, Vincent Demeester et Khaled Souf.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

%d blogueurs aiment cette page :