Méthode “agile”


J’applique la méthode de développement agile depuis sa définition officielle en 2001.

Rappel des principes de la méthode agile :

Les 4 valeurs essentielles de l'approche Agile :
1. Communication: Les interactions entre les équipes chargées du projet sont primordiales, cela passe avant les outils.
2. Changement: Le prestataire est ouvert à tous changements et modifications au cours du déroulement du projet
3. Collaboration: les relations avec le client ne reposent pas sur un contrat mais sur une volonté des parties à collaborer ensemble pour répondre aux besoins précis du client.
4. Fonctions opérationnelles: livrer au client un produit opérationnel.

Les 12 principes de la méthode Agile :
1. La satisfaction client
2. Voir le changement comme un avantage concurrentiel (Et toujours accepter les changements même tardivement dans le projet)
3. Remettre au client des versions opérationnelles du produit le plus régulièrement possible ( toutes les 1 à 2 semaines).
4. Collaboration constante au sein des équipes de travail et entre le client.
5. Le projet ne peut se faire qu’avec des personnes motivées et soudées.
6. Favoriser les échanges en face à face, plus simple et efficace pour transmettre les informations.
7. L’avancement du projet peut se mesurer grâce à un logiciel opérationnel.
8. Le projet doit se construire autour d’un rythme soutenable et constant.
9. Porter une attention toute particulière à l’excellence technique et à une bonne conception.
10. Favoriser la simplicité en limitant au maximum le volume de travail sans intérêts.
11. Encourager les équipes auto organisées qui produisent une meilleur conception, architecture et spécification.
12. Réflexion constante de l’équipe pour améliorer son efficacité en ajustant régulièrement son comportement.


Ça se traduit par une approche modulaire du développement :

- définir avec le client les objectifs à court terme.
- Parmi ceux-ci, déterminer quels sont les fondamentaux, qui seront à mettre en œuvre en priorité et conditionneront la suite du développement. Définir un ordre de développement des modules
- A la fin de chaque module, mettre en place une procédure de test plus ou moins poussée selon l’importance des risques opérationnels liés à l’implémentation de ce module.
- Mise en production du module, validation des principes régissant ce module, et notamment de tout ce quoi s’appuiera le développement des modules suivants.
- Développement du module suivant.

En pratique, les développement des modules pouvant se chevaucher dans le temps, il est capital de conserver des versions intermédiaires, réputées stables, du développement, afin de pouvoir revenir en arrière en cas de problème non détecté en amont.

J’ai l’habitude de mener trois ou quatre projets de front. Je veille aussi à ne pas me surcharger pour pouvoir toujours satisfaire mes clients, et mon statut d’indépendant travaillant à domicile me permet de disposer d’une importante réserve de temps libre (soirées, week-end) en cas de surcharge temporaire. Dans les faits je tiens toujours les délais annoncés, et j’ai rarement besoin de puiser dans ces réserves de temps libre.

Ma très grande habitude de 4D (plus de 25 ans essentiellement consacrés à ce logiciel) et des bases de données en général me permet aussi de définir la structure de données la mieux adaptée au besoin, qui rend généralement l’écriture du code facile et rapide.

Mes excellentes relations avec les piliers de la société 4D SAS me permettent aussi d’avoir accès à un support privilégié en cas de besoin, même si c’est devenu très rare, 4D étant parvenu à un très bon niveau de maturité.

Enfin, je dispose d’une importante bibliothèque de modules réalisés lors de mes précédents développements, et que je réutilise dans les nouveaux projets. Le développement modulaire que je pratique depuis toujours me permet de récupérer très facilement des briques d’un projet pour les implémenter dans un autre.


Ces modules sont documentés et faciles à maintenir et à faire évoluer.


L’ensemble de mon code est documenté, à la fois en interne dans la base, et en annexe du cahier des charges remis par le client avec des renvois aux points correspondants du code.
Menant plusieurs projets, dont certains depuis plus de 20 ans, j’attache une importance particulière au maintien d’une documentation et de méthodes de travail permettant de se replonger facilement dans un projet après un délai pouvant atteindre plusieurs années.

Par ailleurs l’approche modulaire avec préfixage des méthodes et des objets permet de naviguer facilement dans le code.