Quels facteurs clés de succès pour un projet logiciel ?

Se lancer dans un projet de logiciel métier sur mesure, ce n’est pas toujours évident. Les craintes sont nombreuses de voir le budget exploser, le logiciel ne pas répondre aux besoins ou la complexité technique le rendre non maintenable. Chez 2le, nous développons des logiciels métier depuis près de 25 ans et nous avons essayé de nombreuses méthodes. Découvrez les enseignements de cette expérience à travers quelques facteurs clés de succès.

L’architecture : le socle indispensable pour logiciel robuste

architecture projet logicielLe cauchemar d’un développeur ? « Hériter » d’un projet conçu en mode chou-fleur, avec des ajouts protéiformes se superposant en couches successives. Un tel imbroglio s’appelle du code « spaghetti » et rend toute maintenance effroyablement compliquée. A tel point qu’aucun développeur n’ose toucher quoi que ce soit de peur de « casser la prod ». Malheureusement, dans ce cas, les mises à jour de sécurité ne sont pas faites non plus et l’évolutivité des fonctionnalités est quasi-nulle.

Une architecture pensée dès le départ pour assurer à la fois la maintenabilité et l’évolutivité du code est ainsi indispensable. Cela ne veut pas dire avoir toutes les réponses à toutes les questions qui vont immanquablement se poser durant la (longue) vie du logiciel. Cela veut dire que quelles que soient les évolutions demandes, quelle que soit la durée de vie du logiciel, l’architecture sera suffisamment robuste et bien conçue pour tout encaisser.

Nous avons aujourd’hui des logiciels qui sont en production depuis plus de 10 ans. Faute de moyens, ils n’ont pas évolué côté technique, mais ils restent évolutifs et fonctionnels. Bien sûr, d’autres soucis se posent dans ce cas-là, notamment la diminution du nombre de membres de l’équipe formés aux technologies utilisées.

Comment choisir la bonne architecture ? Comme pour beaucoup de choses, c’est un vrai métier nécessitant de solides connaissances théoriques mais également d’avoir été confronté à de nombreux échecs. Car on apprend énormément de ses erreurs.

Ainsi les 2 piliers d’une architecture solide sont :

  • le respect des règles de conceptions comme celle des formes normales
  • l’expérience de l’architecte.

Les choix techniques : les briques du projet logiciel

Là encore, l’expérience est primordiale. Quel développeur n’a jamais été tenté d’essayer une nouvelle technologie « à la mode » pour son prochain projet ? Le pari peut être payant ou s’avérer une catastrophe, mais dans tous les cas, cela reste un pari. Et pour un logiciel d’une durée de vie de 8 à 10 ans, le pari n’est pas un bon calcul. Le risque est de se retrouver sur une voix de garage, sans mises à jour de sécurité, sans évolutivité et sans aucun développeurs pour continuer le travail.

Ainsi, des choix éprouvés, mêmes s’ils paraissent moins « fun » sont toujours la bonne solution. En ce qui nous concernent, nous utilisons depuis des années le framework Symfony, français et leader mondial des frameworks PHP, mais également VueJS, Sulu pour les besoins de type site internet couplé à un ERP ou Sylius pour les e-boutiques.

Certification Symfony 6Une équipe de développeurs formés et compétents sur les technologies utilisée est également un facteur clé important. Une technologie, même performante, si elle est mal utilisée n’apportera pas les résultats escomptés.

Chez 2le, nous sommes fiers de compter 3 développeurs certifiés Symfony : Sébastien, Nathan et Bastien, ainsi que 4 certifiés

 Opquast : Céline, Emilie, Quentin et Valentin !

Les facteurs clés de succès des technos :

  • Le choix de technologies éprouvées et fiables
  • Une équipe technique formée et compétente

 

L’importance de la méthodologie

Dernier point et non des moindres, la méthode utilisée. Elle doit être à la fois souple et rigoureuse, sérieuse et ludique. De nombreuses méthodes existent, notamment les méthodes dites agiles, qui combinent souvent tous ces points.

Seul « point noir » au tableau : elles nécessitent une forte implication des équipes métier chez le client. Investissement en temps, en énergie, qui est néanmoins absolument indispensable à un projet logiciel réussi. Ainsi la charge, qui peut paraître lourde de prime abord, est en fait un facteur clé de succès important.

Une méthode agile permet de pouvoir changer d’avis, de se tromper, d’échanger des fonctionnalités prévues contre d’autres qui paraissent plus importantes. Cette force nécessite un dialogue constant avec les équipes techniques, généralement via un chef de projet. Celui-ci centralise et éclaircit le terrain pour les développeurs. Cela nécessite également d’avoir suffisamment de souplesse au niveau du code pour pouvoir réorienter sans dommage les développements.

L’outil utilisé est également primordial. Il doit être partagé par tous les membres de l’équipe projet, qu’ils soient chez le client ou chez le prestataire. Il doit également permettre un suivi facilité de l’avancement du projet.

Nous utilisons au quotidien l’outil Gitlab, qui nous permet à la fois de gérer l’ensemble du code source, mais également de suivre dans le temps toutes les tâches d’un projet. le fait de pouvoir suivre l’ensemble des échanges sur un sujet donné dans un ticket clairement défini remplace allègrement tous les tableaux excel et envois de mails.

Les facteurs clés de succès de la méthodologie :

  • Une équipe métier disponible
  • Des points réguliers pour avancer par itération
  • Un outil collaboratif pour suivre le projet

Si ces sujets vous passionnent autant que nous, si vous avez un projet en vue mais que vous ne savez pas par quel bout commencer, venez nous rejoindre le 23 novembre prochain pour les Rencontres du Logiciel Métier !