TDD: Comment partir du bon pied?

Publié par Félix-Antoine Bourbonnais le jeudi 27 juin 2013 à 00:00

Suite à ma présentation sur le TDD Mockiste de la semaine dernière, plusieurs personnes m’ont demandé des références afin de bien débuter en TDD. D’autres m’ont demandé des liens sur le BDD.

Voici donc une série de billets sur le sujet: (1) comment débuter? (2) comment partir votre équipe en TDD? (3) des liens et des pistes pour les plus experts.

Comment débuter

Si votre premier objectif est de voir quelques professionnels à l’oeuvre pour vous donner une meilleure idée de ce que peut être le TDD, je vous recommande les vidéos de cleancoders.com.

Peut-être aurez-vous alors été impressionné par la vitesse et l’aisance avec laquelle il est possible de faire du TDD et vous ou votre équipe désirez faire de même.

La mauvaise nouvelle est que le TDD est une discipline et que les pros du TDD pratiquent depuis des années pour atteindre ce niveau d’aisance. Vous devrez donc, malheureusement, vous aussi pratiquer, pratiquer, vous tromper, perdre du temps, vous décourager, vouloir laisser tomber, changer d’idée, vous ressaisir, puis pratiquer encore, …

Il n’existe pas de chemin linéaire pour devenir un praticien du TDD, il n’y a que la pratique...

Premières lectures en TDD

Pour commencer, vous voudrez probablement avoir une référence vous permettant d’acquérir les bases.

Je vous recommande l’une des options suivantes:

  1. Les vidéos traitant de TDD de Robert C. Martin sur cleancoders.com ;

  2. Le livre Growing Object-Oriented Software Guided by Tests (GOOS) ;

  3. Le livre Test Driven: TDD and Acceptance TDD for Java Developers ;

  4. Le livre Test Driven Development: By Example ;

  5. Une formation TDD .

Pour les plus pressés, les vidéos sur cleancoders.com (1) sont idéaux, car ils présentent des exemples pas à pas, sont concis et permettent d’avoir rapidement l’information provenant de l’un des plus grands maîtres. Le tout, condensé dans des vidéos amusants que vous pouvez regarder dans le confort de votre salon. D’ailleurs, la qualité des derniers épisodes est nettement meilleure et ils peuvent être regardés en HD.

Ceux ou celles qui s’intéressent à l’école de Londres ou qui veulent en même temps améliorer leur architecture ou leurs pratiques OO voudront certainement lire GOOS (2). Un débutant en TDD peut cependant très bien lire cet excellent livre au 1er degré sans s'attarder à la trame de fond de l’école Mockiste. C’est un livre qui a changé ma pratique du TDD et qui est un point tournant pour moi.

Le livre de Lasse Koskela (3) est assez nouveau et présente simplement le TDD. À mon avis, son principal avantage est de parler du TDD au sens large, incluant l’ATDD. Il contient beaucoup de trucs et astuces, des odeurs et des difficultés communes. Les points abordés correspondent aux questions récurrentes lors des mes formations. Il traite à la fois de la base et de sujets avancés.

Finalement, le livre de Kent Beck (4) est un classique et reste toujours pertinent. Très bien écrit, il présente le TDD d’origine.

Malgré toutes ces lectures, vous ressentirez peut-être le besoin de valider votre compréhension ou de vous faire conseiller. Peut-être voulez-vous laisser un expert vous guider? Dans ce cas, il y a toujours nos formations ou notre mentorat virtuel. Oui, je sais que je suis en conflit d’intérêts ici, mais reste que si je donne ces formations, c’est que je crois qu’elles sont bénéfiques pour les participants...

Premières expériences en TDD

Bien. Maintenant que vous avez une vague compréhension du TDD et que vous rêvez de pouvoir coder le jeu de Bowling aussi rapidement que Bob Martin, la question reste: comment y parvenir?

En pratiquant... Mais quoi?

Commencez par des exercices très simples qui vous permettent de vous concentrer sur le TDD et non le problème. Choisissez des problèmes triviaux comme une pile, inverser une chaîne de caractères, etc.

Augmentez graduellement le niveau de difficulté. Par exemple, l’exercice du Jeu de la vie est un bon exercice de deuxième niveau. C’est le type de Kata très versatile que l’on peut faire et refaire toute notre vie et encore apprendre...

Plusieurs Katas sont disponibles et sont spécialement conçus pour pratiquer le TDD. Vous pouvez consulter ce catalogue ou encore celui-ci. D’autres problèmes sont disponibles ici. Une foule de solutions à ces Katas sont disponibles sur Internet (ex.: ce site).

Pourquoi est-ce difficile?

Rien ne sera facile, car vous devrez désapprendre à programmer... En termes plus scientifiques, vous devrez reconstruire un nouveau réseau neuronal...

Cela vous demandera de faire appel à toute la plasticité de votre cerveau pendant un petit moment en attendant que ce nouveau circuit soit le plus fort...

Je n’ai alors qu’un seul conseil: ne lâchez pas!

blog comments powered by Disqus

0 Comments:

Post a comment

Comments have been closed for this post.