Pour des logiciels de qualité qui répondent aux besoins
Transcription
Pour des logiciels de qualité qui répondent aux besoins
Pour des logiciels de qualité qui répondent aux besoins des communes Stéphan Geulette - Avril 2008 Régulièrement, des communes acquièrent ou font développer de nouvelles applications informatiques en vue de faciliter l'accomplissement de leurs missions. Mais comment juger de la qualité et de l'adéquation d'un logiciel? Dans tous les cas, un test par les utilisateurs finaux s'impose. L’adéquation aux besoins et le bon fonctionnement des logiciels utilisés au sein de l'administration sont importants pour que les agents puissent remplir leurs tâches avec succès. Hélas, on rencontre souvent tantôt des logiciels qui fonctionnent mal ou qui sont obsolètes, tantôt des logiciels achetés qui ne sont pas utilisés car ne répondant pas vraiment aux besoins des utilisateurs, tantôt des logiciels qui ne s’intègrent pas correctement parmi les logiciels déjà présents. L’adéquation Le choix d'un logiciel devrait idéalement se faire, en grande partie, après que les personnes qui devront l’utiliser l’aient testé. On peut s’interroger sur un fournisseur qui ne voudrait pas mettre à disposition un espace de test pour un futur client. Car l'achat d'un outil informatique devant répondre aux besoins particuliers de la commune ne peut pas se faire sur catalogue. L'informaticien communal devra également juger de la bonne intégration du logiciel dans le parc existant ainsi que de l'interopérabilité possible avec les logiciels existants. Les agents communaux possèdent, chacun dans leur domaine, les compétences nécessaires pour tester et juger une application informatique dédiée à leur domaine. Si cette dernière leur paraît vraiment trop compliquée, c'est qu'elle n’est pas bien adaptée à leurs besoins. Dès lors, il y a de fortes chances qu'ils ne l’utiliseront pas correctement, voire pas du tout. Contacter des utilisateurs d’autres communes qui ont déjà une expérience avec un logiciel permet également d’avoir un avis complémentaire intéressant qui sera donné avec plus de recul. Si un logiciel déjà existant peut être testé, il n’en est pas de même pour un logiciel qui doit être développé. Comment s’assurer, dans ce cas, de la qualité future de celui-ci, qui n’est souvent évaluée a posteriori par le "commanditaire" qu’à travers les problèmes qui apparaissent et/ou subsistent lors de son utilisation, et donc à un moment où il est trop tard pour commencer à penser à une démarche "qualité". La qualité Qu’entend-on par la qualité d’un logiciel ? Elle englobe des notions variées qui concernent: - l’utilisation du logiciel: répondre aux fonctionnalités demandées, avoir un usage facile dans une interface simple, proposer une aide (intégrée ou dans une documentation), …; - le cœur du logiciel: sa conception et sa structure modulaires, la lisibilité du code source, la documentation du code source, l’adaptabilité, … Autant d’éléments nécessaires pour assurer une évolution des fonctionnalités et une reprise éventuelle du développement par d’autres personnes que le développeur original; - le comportement du logiciel: ses bonnes performances, fiabilité et sécurité. La bonne qualité d’un logiciel dépend de ces 3 notions qui ont toutes la même importance. En effet, on pourrait croire que la qualité de conception du cœur du logiciel a moins d’importance que sa qualité d’utilisation mais c’est essentiellement la qualité de conception qui va le plus influencer la "maintenabilité" et l’évolutivité du logiciel, et donc sa qualité d’utilisation future. Le développement d’un logiciel ne se termine pas lorsque la première version est utilisée. On considère en général que l’effort de développement en maintenance du logiciel est aussi important - si pas plus - que l’effort de développement initial. La méthodologie de travail L’assurance d’une bonne qualité de logiciel tient essentiellement dans les méthodologies utilisées lors de la phase de conception et de maintenance. Ces méthodologies peuvent être utilisées aussi bien pour un développement en interne à l’administration que pour un développement réalisé par une société. Dans ce dernier cas, la commune peut développement réalisé par une société. Dans ce dernier cas, la commune peut renseigner dans son cahier des charges l’utilisation de ces méthodes de travail afin de s’assurer d’une longue vie pour son logiciel. La phase d’analyse et de conception la plus rencontrée dans les faits se présente comme suit: une analyse exhaustive est réalisée, elle est suivie par une phase de développement complet du logiciel, qui est enfin présenté aux utilisateurs pour qu’ils le testent. L’inconvénient de cette méthodologie est que l’utilisateur final ne peut donner son avis sur le logiciel qu’en fin de phase de développement. Cela pose problème car l’utilisateur, face à un outil concret, demande à juste titre des modifications ou des améliorations pour que celui-ci soit adapté à ses besoins ou à sa façon de travailler. Ces modifications posent parfois de gros problèmes aux développeurs qui doivent éventuellement repenser de manière profonde le logiciel. Cette phase de modification n’a en général pas été suffisamment prise en compte dans les délais initiaux, ce qui provoque des retards et un travail dans l’urgence. Les méthodes de développement dites "agiles" permettent de pallier à ces inconvénients. L’idée est, en effet, de faire succéder à intervalles réguliers (par ex. 2 à 3 semaines) des courtes phases d’analyse, de conception et de test avec les utilisateurs. Les utilisateurs participent donc à la conception du logiciel tout au long de la phase de développement, ce qui leur donne le sentiment positif de construire le logiciel et favorise l’innovation. Les méthodes de développement agiles intègrent très souvent une méthodologie de tests écrits parallèlement au logiciel. Les tests unitaires consistent à écrire, pour chaque fonctionnalité du logiciel, un test correspondant servant à tester la fonctionnalité écrite. Ces tests unitaires peuvent être complétés par d’autres types de tests (fonctionnels, performance, …). A tout moment, il est possible de lancer la batterie de tests automatiques afin de vérifier que les dernières modifications faites dans le code source n’ont pas impacté le logiciel. Certaines méthodes agiles prônent même de commencer par écrire le test unitaire d’une nouvelle fonctionnalité avant de l’implémenter dans le code source. Cette méthodologie facilite grandement le travail de maintenance du code source et sa reprise par un autre développeur. Le travail en communauté a l’avantage de permettre la relecture du code source par d’autres développeurs. Plus le nombre de développeurs relisant le code source est important, moins le logiciel comportera de failles de programmation et plus son code source sera techniquement de qualité. Ce travail en communauté n’est pas exclusivement réservé aux projets Open Source. Certaines grosses sociétés informatiques fonctionnent suivant ce même principe. Cependant, dans la grande majorité des cas, les sociétés privées n’ont pas les ressources nécessaires pour le faire et le développement d’une application est souvent confié à une ou deux personnes seulement. Le travail en communauté a aussi l’avantage de rendre la solution plus pérenne étant donné que la maîtrise du logiciel est partagée entre plusieurs personnes ou acteurs. Le fait de travailler sous licence Open Source est un prérequis nécessaire si l’on vise à augmenter le nombre de développeurs dans une communauté. Cela ne signifie pas automatiquement qu’un logiciel sous licence Open Source dispose d’une communauté importante et utilise les bonnes méthodologies de développement (raccourci qu’on a souvent tendance à faire). Pour évaluer la future qualité d'un logiciel Open Source, il faut donc évaluer les méthodes de développement utilisées et l'importance de la communauté. La disponibilité du code pousse également les développeurs à peaufiner leur code sachant qu’il sera relu et devra éventuellement être adapté par d’autres personnes. Un outil de "versionnement" des sources permet de disposer d’une base centrale contenant les sources d’un logiciel. Cet outil est absolument nécessaire lorsque plusieurs développeurs travaillent sur le même code source mais peut aussi être utilisé par une seule personne. En effet, il est très intéressant de pouvoir commenter chaque modification réalisée dans le code, de comparer certaines versions d’une même source ou de pouvoir facilement récupérer une version précise du logiciel. L’accès à un historique du code facilite grandement la maintenance et la reprise du code par un autre développeur. Différents outils de communication permettent d’échanger, d’enregistrer et de garder un historique des informations voyageant entre les différents acteurs d’un projet (chefs de projet, utilisateurs, développeurs, testeurs, …). Les forums, wiki, listes de diffusion, outils de gestion des failles ou des demandes d’évolution, et centres de documentation en font partie. Mais les outils de communication seuls ne suffisent évidemment pas! La volonté et l’effort de communication dépendent évidemment des personnes qui font partie du projet. Conclusion Que ce soit pour le choix d’un logiciel existant ou pour le développement d’un nouvel outil, l’adéquation de ce logiciel doit toujours être validée par les personnes qui vont l’utiliser. Exiger d’un fournisseur de pouvoir tester correctement une application dans des conditions réelles est un minimum pour valider le choix d'un logiciel. La qualité d’un logiciel dépend essentiellement des méthodologies de développement utilisées. Celles qui ont été présentées dans cet article sont plus souvent utilisées dans le cadre des communautés Open Source que dans les sociétés qui fournissent des logiciels. Cela s’explique par plusieurs raisons: - les projets Open Source, de par la communauté de développeurs nombreux et dispersés, nécessitent des méthodes strictes de travail; - ces méthodologies sont pour la plupart issues des communautés Open Source qui, pour la raison précitée, en avaient besoin. L’évolution de ces méthodologies est également favorisée de par la nature de la communauté Open Source composée en partie de chercheurs, universitaires, consultants privés, etc. On est loin de l’idée reçue "de communautés d’étudiants barbus"; - la meilleure communication dans l’Open Source avantage également la connaissance de ces méthodes par les développeurs; - ces méthodologies demandent un temps initial de mise en œuvre (ce qui va à contre-courant de la politique d’une société privée qui vise souvent à réduire les coûts), qui est cependant compensé grâce à des temps de maintenance et de développement de nouvelles fonctionnalités moins importants et surtout grâce à la meilleure qualité du logiciel. Les "indicateurs de qualité" présentés dans cet article vous aideront à mieux juger de la qualité d’un logiciel ou à faire développer des logiciels de qualité. *** Pour en savoir plus : - Les méthodes agiles: http://fr.wikipedia.org/wiki/Méthode_agile - Les tests unitaires: http://fr.wikipedia.org/wiki/Test_unitaire - La gestion de versions des sources: http://fr.wikipedia.org/wiki/Système_de_gestion_de_versions Ce document, imprimé le 23-02-2017, provient du site de l'Union des Villes et Communes de Wallonie (www.uvcw.be). Les textes, illustrations, données, bases de données, logiciels, noms, appellations commerciales et noms de domaines, marques et logos sont protégés par des droits de propriété intellectuelles. Plus d'informations à l'adresse www.uvcw.be/plan-du-site/disclaimer.cfm © Union des Villes et Communes de Wallonie asbl