Des technologies décisives dans une boite à outils.

Pour ce bonus, je vais vous parler de quelques éléments que vous pouvez ajouter en plus dans votre boite à outils qui vous pousseront à prendre de meilleures décisions, en plus du gain de temps et d’organisation.


Technologies décisives

C’est le nom que je donne aux technologies qui vont jouer un rôle central dans le développement de l’application. Pour ne citer que quelques exemples : langages de programmation, frameworks, environnements d'exécution, SGBD, plateformes

Là où les bibliothèques et les dépendances externes représentent des pièces du puzzle, les technologies décisives représentent la table sur laquelle vous allez l’assembler.

Le choix de ces technologies est donc critique. Il doit être fait au début du projet pendant la conception, et en cas d’erreur, les conséquences se feront ressentir tout le long du développement. C’est la fameuse dette technique.

Comme pour les dépendances externes, les technologies décisives ne doivent pas être directement téléchargées. Il s’agit plutôt d’une documentation qui va contenir :

  • La procédure d’installation.
  • Différents liens vers de la documentation, voir une petite touche personnelle.
  • Les cas d’utilisation.

Ce dernier point est de loin le plus important, car ils vont vous permettre de choisir les bonnes technologies qui emmèneront le projet vers son objectif.

Évidement, les cas d’utilisation sont très simplifiés ici. En réalité, il faut qu’ils soient les plus complets possibles.

Les cas d’utilisation permettent d’orienter le choix d’une technologie en fonction de sa réelle pertinence dans un projet, et de ne plus faire de choix instinctifs ~parce que c’est tendance~.

Ici, par exemple, les limitations de PHP sont clairement indiquées, et on peu d’entrée de jeu éliminer ce langage si le projet ne correspond pas aux critères sans avoir à faire de recherches supplémentaires.

Et plus votre panel de technologies décisives sera large, plus vous allez prendre de bonnes décisions rapidement, car vous aurez toutes les clefs en main dés les premières minutes de la conception.

Le processus de décision doit se faire de la sorte, où chaque flèche est un cas d’utilisation, et chaque nœud est une technologie décisive. Le but étant bien sûr d’arriver à l’objectif.

Note : un framework construit par vos soins compte aussi comme une technologie décisive, donc vous pouvez l’ajouter à votre boite.


Outils

Je fais référence à tous les outils (internes ou externes) qui viendront vous assister pendant le développement, que ce soit des IDE (et leurs extensions), des outils de tests unitaires, de rapports, de déploiement, des préprocesseurs, des générateurs de documentation, et pourquoi pas des outils de design ou de gestion de projet.

L’intérêt de renseigner ces outils dans votre boite est bien sûr de les avoir sous la main et à jour au début du projet pour éviter qu’ils ne tombent dans l’oubli, mais pas que !

Si votre outil a besoin d’une intégration particulière, vous pouvez la documenter afin de pouvoir le remettre en place rapidement, sans avoir besoin à passer des heures à rechercher vos post-its sur lesquels vous avez écrit la procédure.

Souvenez vous que la documentation, même simple, est une étape essentielle pour construire une boite à outils.

Pour des outils comme ceux-ci sans intégration particulière, une très petite documentation est suffisante.

Par exemple, j’ai récemment intégré sur un projet d’entreprise un outil permettant de lancer une série de tests unitaires .NET Framework et de sortir un rapport en HTML. La mise en place de ce système m’a pris des heures, mais maintenant qu’il est documenté dans ma boite à outils, je peux le réintégrer dans tous mes projets en quelques minutes.

Pour info, l’outil que j’utilise pour créer mes rapports de tests s’appelle Trxer. C’est gratuit et open source !

Et si vous travaillez en équipe, un autre avantage est que votre boite à outils va permettre aux autres développeurs de découvrir de nouveaux outils, et inversement !

Cela permet aussi d’éviter les outils fantômes au sein d’un projet, qui sont utilisés par une seule personne sans que les autres n’en sache quoi que ce soit. Avec ce système, une personne peut proposer ses outils favoris, et les ajouter dans la boite pour que tout le monde en profite.

Dans l’idéal, seuls les outils référencés dans la boite devraient être utilisés, et chaque nouvelle proposition devrait être validé par l’équipe afin que le projet ne parte pas en un festival de technologies aussi brillantes qu’inutiles.


Avec tout ça, vous devriez être en mesure de faire une boite à outils à toutes épreuves ! Encore une fois, si vous voulez plus de conseils sur ce système, ou que vous voulez l’appliquer dans un environnement plus précis (JavaScript, .NET, PHP…), laissez moi un commentaire en dessous, j’y répondrais avec plaisir.