Appliquer les principes du « 5 S » dans votre code – Ranger

Publié par David Beaumier, Jean-Francois Gilbert le jeudi 9 avril 2015 à 07:45

Dans ce second article de la série sur l’application de la méthode 5S en développement logiciel nous abordons le second concept : ranger (ou Seiton, en japonais). On peut résumer le concept de cette façon : « Une place pour chaque chose, et chaque chose à sa place » (source : Wikipedia).

Le but derrière cette notion de rangement est de s’assurer que les équipiers ne perdent pas de temps de travail à chercher les éléments dont ils ont besoin dans le cadre de leur travail. Dans le cas du développement logiciel il peut s’agir autant des classes communes, d’utilitaires pour effectuer certaines opérations que de documentation sur les patrons de conception. Quoi de plus frustrant que de chercher pendant plusieurs minutes où a été déposé l’utilitaire qui permet de convertir une base de données!

Vous trouverez ci-dessous quelques suggestions pour optimiser le rangement dans votre équipe de développement logiciel.

Bien structurer votre projet

Le découpage (dossiers) de votre projet devrait s’appuyer sur le vocabulaire du domaine d’affaires. Il est important d’avoir une uniformité dans le langage utilisé et cela doit se refléter dans le code aussi. Si on parle de « gestion des accès » dans votre application on ne devrait pas retrouver un dossier « autorisations » dans le projet.

Dans un projet Web, il peut être aussi intéressant de penser à une structure qui permette de rapidement distinguer les artéfacts selon qu’ils s’appliquent à la structure du document (html), aux styles (CSS) ou au code (JS).

Assurer une cohérence physique des dossiers et des paquetage

Des outils comme Resharper vous indiqueront s’il existe des écarts entre les dossiers physiques et le nom des paquetages (namespaces dans ce cas-ci). Avec le temps, on peut avoir renommé quelques dossiers, mais avoir oublié de faire les ajustements dans le code.

5S Ranger Resharpernamespacelocation

Valider la dépendance entre les paquetages

 La dépendance entre les paquetages devrait,  elle aussi, respecter le découpage fonctionnel. Ces dépendances sont souvent exprimées en UML sous forme de diagramme de paquetages.

Les fonctionnalités de Dependency Graph et de CodeMap de Visual Studio permettent de dresser une cartographie des dépendances qui vous permettra de valider que celles-ci sont conformes à la cible.

5S Ranger Dependencygraph

5S Ranger Vscodemap

Des outils comme JArchitect peuvent produire diverses métriques sur le niveau de dépendance entre les différentes parties du code. Celles-ci vous permettront de vérifier si les principes architecturaux ont été respectés et vous éviteront d’avoir un couplage trop fort entre les entités de votre système, ce qui a tendance à rendre l'entretien et la réingénierie plus difficile à long terme.

5S Ranger Dependencymatrix

N’oubliez pas la documentation

On ne parle pas ici de la documentation du code source en lui-même (bien qu’elle soit importante), mais plutôt de celle qui forme la base de connaissances de votre équipe. Comment un nouvel équipier saura quel outil utiliser pour produire un script de mise à jour de la base de données relationnelle? Où trouvera-t-il les règles de nomenclatures à respecter?

Que vous utilisiez un wiki ou un autre outil de gestion documentaire, assurez-vous d’y consigner les informations importantes. Souvent, un bref résumé et quelques liens pertinents permettent de conserver une documentation suffisante sur un sujet. Comme le disait Albert Einstein, « Ne mémorisez pas une information que l’on peut facilement retrouver ».

Mise à jour

Voici les liens pour consulter les autres articles.

D'autres billets qui pourraient vous intéresser

blog comments powered by Disqus

0 Comments:

Post a comment

Comments have been closed for this post.