8 choses à savoir sur le développement logiciel
Les solutions logicielles sur le marché ne suffisent plus à vos besoins ? Vous envisagez de recourir à un développement logiciel sur mesure pour soutenir votre croissance ? Voici 8 choses qui vous seront utiles, surtout s’il s’agit de votre premier projet de développement.
Un langage spécifique
Comme c’est le cas pour de nombreux métiers, les professionnels de l’informatique ont leur langage. Des développeurs peuvent employer des mots ou faire appel à des notions que vous ne connaissez pas. N’hésitez pas à demander qu’on vous explique, il n’y a pas de honte à ça. Réclamez toujours des clarifications quand des choses vous paraissent obscures. C’est fondamental, car votre bonne compréhension est la condition de la qualité des échanges et d’une prise de décision bien éclairée. Les bons développeurs se feront un plaisir à vous rendre accessibles leurs savoirs et s’assureront de votre bonne compréhension des éléments clés.
Expliquer votre métier
Si les développeurs vous expliquent leur métier, il vous faut aussi bien expliquer le vôtre. Ne soyez pas avare en informations ; il est rare qu’un client en donne trop. Plus l’équipe connaît les spécificités de votre entreprise, de votre marché, de vos processus, plus elle a une bonne vue de vos attentes, de votre activité actuelle et de vos plans futurs, plus elle sera imprégnée de votre vision, mieux elle sera à même d’apporter la meilleure réponse à la problématique que vous souhaitez résoudre et mieux elle sera en mesure d’anticiper vos besoins futurs. Et on ne le rappellera jamais assez, une bonne communication bidirectionnelle est cruciale au succès d’un projet logiciel.
Ça prend du temps
La plupart des projets des logiciels prennent des semaines, souvent des mois à aboutir. Même avec une équipe étoffée, il y a des étapes incontournables qui prennent toujours du temps si on a à cœur la qualité du produit livré : planification, conception, développement, tests. Bien sûr, nous savons que vous aimeriez que votre logiciel vous soit livré le plus rapidement possible, que votre investissement puisse commencer à porter ses fruits dès que possible, mais il n’y a pas de solution magique, à moins de faire l’impasse sur des fonctionnalités ou sur la qualité. Si vos délais sont vraiment courts en raison de différents impératifs, peut-être faudra-il envisager de démarrer avec un produit minimum viable (MVP), c’est-à-dire un logiciel qui réponde juste aux exigences essentielles, et de reporter le développement de certaines fonctions à une version ultérieure.
Ça ne prend pas que des programmeurs
Le développement logiciel fait appel à une large palette de spécialistes qui n’écrivent pas, ou pas toujours, du code. C’est un travail d’équipe : analystes d’affaires, designers, créateurs d’interfaces, chefs de projets, Scrum Masters, analystes qualité, chargés du support, etc., sont autant de professionnels qui concourent à rendre votre logiciel exceptionnel. Certains accompagnent la totalité du projet, d’autres interviennent pour des phases précises.
Les fonctionnalités ne font pas la qualité
Se concentrer sur la quantité de fonctionnalités plutôt que sur la qualité de celles qui sont essentielles est faire fausse route. Il faut questionner l’existence de chaque fonction et la définition d’un produit minimum viable (MVP) vous aidera à ce que les efforts soient concentrés sur ce qui est vraiment important. En cours de développement ou après la livraison d’une première version, il est tout à fait courant de se rendre compte que certaines fonctions envisagées en début de projet sont en fait inutiles, et qu’on a bien fait de n’y perdre ni temps ni argent. Et a contrario, il est fréquent que les retours des premiers utilisateurs donnent de bonnes pistes sur la perfectibilité de certaines fonctions et la création d’autres que vous n’aviez pas imaginées et qui vous paraissent désormais aller de soi. Ce qui fait la qualité d’un logiciel n’est pas le nombre de fonctionnalités, mais la satisfaction des utilisateurs. Celle-ci passe par la réponse à leurs besoins, par des interfaces conviviales et ergonomiques, par un logiciel exempt de bogues, etc., mais pas par l’accumulation de fonctionnalités dont certaines ne seront jamais utilisées. Ce genre d’accumulation ajoute aussi une couche de complexité qui risque de mettre en péril l’évolution harmonieuse du projet et le respect des délais. Vous économiserez de l’argent en faisant le choix d’un produit évolutif, avec améliorations incrémentales, plutôt que vouloir réaliser tout, tout de suite, et souvent mal.
Vous en avez pour votre argent
Il en va en matière de développement logiciel comme dans bien d’autres domaines. Si vous construisez une maison avec des matériaux bas de gamme, elle sera sans doute moins durable, et, au fil des années, sa valeur aura tendance à décliner et elle vous coûtera plus cher en entretien. Une étagère Ikea à 50 $, en panneaux de particules mélaminés, sera toujours moins solide et pérenne qu’une en bois massif à plusieurs centaines de dollars. On peut multiplier les exemples de la vie courante. Il y a toujours des conséquences à faire le choix du plus économique, à faire les choses à moitié ou encore à bâcler pour aller plus vite. Les économies immédiates se traduisent toujours par des coûts proportionnellement plus élevés sur le moyen et long terme. Aussi, si votre logiciel est amené à évoluer, il est essentiel de correctement investir sur la qualité de la première version qui servira de fondations aux suivantes. De solides fondations sont la garantie d’économies dans l’avenir.
L’art du changement
Il est quasiment impossible de tout planifier au départ, à moins d’un projet simple. Une multitude de facteurs font que peu de choses restent à jamais gravées dans le marbre et l’imprévisible fait intrinsèquement partie du processus de développement logiciel. Votre demande peut évoluer avec le temps, les conditions de votre marché ou les attentes de vos clients peuvent changer, vous pouvez devoir avancer le lancement pour des impératifs marketing, une fonctionnalité complexe peut exiger plus de temps que prévu, l’évolution des environnements logiciels peut exiger des adaptations, etc. Le développement d’un logiciel demande de garder l’esprit ouvert aux changements, car ceux-ci sont inéluctables. C’est pour cette raison que l’industrie logicielle a massivement adopté les méthodologies de l’Agilité qui permettent de gérer les changements de la manière la plus économique, sûre et flexible possible.
Tout ne s’arrête pas à la livraison
Pour le maintenir fonctionnel et efficace, un logiciel nécessite un entretien après sa livraison. On pourrait poursuivre avec l’analogie d’un bien immobilier, c’est similaire. En informatique, nous appelons ça le support postproduction. Et il est important de savoir dès le début du projet qui s’en chargera et combien ça coûtera, car il faudra des gens pour veiller sur votre logiciel et anticiper les écueils qu’il pourrait rencontrer. En plus de l’entretien courant, c’est-à-dire la résolution des problèmes qui vont inévitablement se produire avec, par exemple, les évolutions de votre parc matériel et logiciel, il y a aussi vos utilisateurs qui vont venir avec de nouvelles demandes auxquelles vous voudrez répondre. Bref, un logiciel continue à vivre après sa livraison et il faut bien le comprendre dès le départ.