Aujourd’hui je vous propose de parler développement informatique, mais aussi de cuisine. On va essayer de démonter en quoi préparer un gâteau au chocolat et faire du développement peut être similaire. L’idée étant de rapprocher le développement d’applications à une recette de cuisine.

Pourquoi ? C’est simple, il n’existe pas de recette de gâteau au chocolat universelle qui puisse plaire à tout le monde. Mais il y a quand même de grands principes de base. Nous savons tous que, si l’on veut faire un gâteau au chocolat il faut du chocolat. C’est peut-être logique à dire mais c’est le minimum nécessaire. Ensuite, il faut aussi respecter des proportions de plusieurs ingrédients : farine, œufs, lait, etc.

Et le rapport avec le développement ? C’est pareil, il n’existe pas de recette miracle qui fera que votre application fonctionnera sans bug ou qu’elle sera parfaite. En revanche, on est tous d’accord pour dire qu’il faut respecter certains principes : clean code, tests unitaires ou encore SOLID.

 

Première étape, la préparation

La préparation du gâteau consiste à s’organiser, préparer son plan de travail, ses ingrédients, etc. C’est l’équivalent de l’organisation que vous allez instaurer dans vos équipes ou dans votre environnement de développement. Plus le gâteau est complexe et plus vous devez faire preuve d’organisation. Une bonne préparation passe par plusieurs principes. Il vous faut déterminer une méthode de travail. Il n’y a pas de méthode universelle. Il faut vous baser sur des méthodes existantes, pour le développement on utilisera la méthode Agile par exemple.

Grâce à ces méthodes, vous allez pouvoir apprendre de vos erreurs et faire évoluer votre organisation. Il ne faut pas hésiter à faire évoluer vos méthodes en apportant des nouveautés empruntées à d’autres organisations.

Attention cependant à être en mesure de bien juger votre organisation. Êtes-vous un pâtissier de quartier passionné mais pas encore expert ? Ou un pâtissier avec de l’expérience et une équipe ? Ou encore un pâtissier industriel ? Identifiez bien ce critère et faites-le progresser en fonction de l’évolution de votre environnement.

L’organisation est l’étape qui va vous permettre d’évoluer. Sans cette phase préparatoire, vous ne pourrez pas répondre à la demande de votre client.

 

Les clients et leurs besoins

Un bon pâtissier aura peut être tendance à vouloir se faire plaisir, un peu comme un développeur sur ses choix techniques. Mais il ne doit pas oublier qu’avant tout, il travaille pour un client. C’est ce client qui va dicter ses besoins. Il est important de bien comprendre ce que souhaite cette personne.

Plus on connaît son client, plus la réalisation correspondra à ce que le client attend. Ne pas hésiter à faire des prototypes pour valider les grands points stratégiques de la réalisation finale.

Travailler pour un client peut créer de la frustration. Le cuistot, comme le développeur, n’est pas libre de ses choix, il est confronté à un cadre précis, à un cahier des charges spécifique. Dans tous les cas, c’est le client qui décide. Si le client veut un gâteau rose bonbon c’est son choix. A nous de faire en sorte qu’il soit le plus beau et bon possible. L’important n’est pas la réalisation finale, mais le chemin pour atteindre l’objectif commun fixé avec le client.

A vous de trouver dans chaque réalisation un intérêt, plus orienté sur la démarche que sur le résultat. On apprend toujours plus d’une démarche que d’un résultat.

 

Le cuistot / le développeur

Une bonne recette commence par le choix d’un bon chef. Mais c’est quoi un bon cuistot ? Qu’est-ce qui fait que vous obtiendrez la décoration du meilleur pâtissier de France ?

Il n’existe pas de plan détaillé et précis vous expliquant comment devenir le meilleur pâtissier. Cependant, je pense qu’il y a des fondamentaux à maîtriser.

La passion est souvent un bon moteur, c’est d’ailleurs l’une des trois couches dont nous avons parlé dans un récent article sur ce qui fait de vous un bon Software Craftsmanship. C’est la passion qui vous pousse à avancer et à progresser. C’est elle qui va guider vos gestes et vos choix. À certains moments, il arrive que nous fassions de mauvais choix, tant pis, le gâteau ne sera pas très bon. Mais il est sûr qu’on fera mieux la prochaine fois !

Un bon pâtissier se remettra en question en permanence. Peaufinera ses recettes, cherchera de meilleurs ingrédients. Chaque recette peut être réinventée. On peut faire un gâteau au chocolat en y ajoutant de la framboise. Et découvrir que le goût est délicieux.

Et le rapport avec le développement dans tout ça ? Eh bien la logique est la même ! Vous pouvez créer une application et ajouter un nouveau pattern d’architecture, et découvrir que finalement la qualité n’en est que meilleure.

Attention tout de même, ne réinventez pas la roue. Pour cela écoutez vos compères.

En tant que cuistot du code, vous devez posséder ces fondamentaux :

  • La passion
  • La  capacité à vous remettre en question
  • La recherche de la perfection
  • L’écoute de vos pairs.

 

Les Ingrédients d’un bon développement

Toutes les recettes commencent par le choix de bons ingrédients. C’est notamment ce qui fera la différence entre une pâtisserie moyenne et une très grande pâtisserie. Même le meilleur des pâtissiers ne fera rien d’une plaque de chocolat qui n’a pas de goût.

En développement c’est pareil, il faut savoir choisir les bons ingrédients pour produire une application de qualité. En développement informatique, on peut comparer les ingrédients aux Frameworks et librairies que vous allez utiliser. Faites bien attention à utiliser des librairies de qualité. Regardez bien qui a développé la librairie, par qui elle est utilisée. Est-ce qu’elle répond à votre besoin ?

Dans un gâteau, il faut faire attention à respecter les justes proportions. Eh bien c’est la même chose en développement. Attention à bien proportionner les différents composants de votre recette. Il ne faut pas utiliser un Framework parce qu’il vous plait. Mais est-ce qu’il répond à un besoin de notre client ? Est-ce qu’il n’est pas trop compliqué pour la solution que l’on développe ? Étudiez la complexité de votre projet. Faites attention à l’intégration du Framework dans votre solution existante.

Les ingrédients que vous allez utiliser dans votre application vont diriger la complexité d’évolution et de maintenance de l’application. Trouvez le bon compris, et pour ce faire, il faut tout simplement procéder à des tests, essayer et tenter. Chaque essai peut être un échec. A vous de vous laisser la possibilité de rattraper le résultat final.

 

Les outils et les ustensiles à maîtriser

Un bon cuistot vas s’entourer d’outils. Ces outils seront importants pour pâtisser. Ses ustensiles vont lui permettre de gagner du temps, de mieux maîtriser la cuisson ou d’autres détails. C’est grâce à ses outils qu’il va réussir à relever des challenges de plus en plus grands.

Je vous mets au défi de faire un gâteau au chocolat sans aucun ustensile. Difficile de faire un gâteau à la fois bon et beau. Sans moule, sans fouet, sans four. Il ne faut oublier aucun outils.

En développement c’est la même chose. On oublie souvent des outils primordiaux, par exemple l’IDE. Mais pensez à votre four de développeur, en l’occurrence ce qui s’en rapprcherait le plus serait votre usine de Build. Bien choisir et bien construire son usine de Build sera tout aussi important que votre IDE.

Quand on parle d’outils, on oublie souvent les soft tools. Des outils définissant des pratiques de développement, ces outils de conceptions et d’organisation. N’oubliez pas ces outils qui vous feront gagner du temps et qui vous permettront de vous organiser.

De la même manière, les outils évoluent pour vous donner plus de souplesse, plus d’autonomie, n’oubliez pas de remettre en question régulièrement vos outils.

 

L’entraînement

Le premier gâteau au chocolat que vous ferez ne sera pas parfait. Peut-être trop cuit ? Peut-être qu’il ne sera pas très esthétique ? Ou alors trop sucré ?

Une chose est sûre, il vous faudra recommencer ce gâteau régulièrement. Voir même, vous entraîner sur certaines parties de votre recette. Vous devrez apprendre à doser vos ingrédients. Mais aussi vous entraîner pour acquérir de la technique et accélérer la création de vos futurs gâteaux. Ainsi, en refaisant plusieurs fois le même gâteau vous apprendrez à vous organiser. Vos futurs gâteaux seront meilleurs.

 

La recette d’un développement parfait

Pour aller jusqu’au bout de la démonstration tout en concluant cet article, voici deux recettes.

 

Pour un gâteau au chocolat :

  • 200 g de chocolat à pâtisser noir
  • 100 g de beurre + une noix pour le moule
  • 3 œufs
  • 50 g de farine
  • 100 g de sucre en poudre

 

Recette d’une application :

  • Tests Unitaires
  • Code Lisible
  • Découpage des responsabilités
  • Ouvert au changement

En tant que pâtissier du code, vous devez répéter vos recettes de code. Le meilleur gâteau est au bout du chemin. Il faut vous nourrir des autres et apprendre grâce à des pairs.

Maintenant vous savez quoi faire. À vos fourneaux !
Vous prendrez bien une part de gâteau ?