Le logiciel moderne doit répondre aux exigences du marché

Cropped Favicon Economi Matin.jpg
Par Alexandre Derome Modifié le 8 août 2019 à 7h38
Babar Logiciel Espion Keylogger France

Le développement logiciel moderne exige de répondre aux 3 impératifs suivants : Coûts, qualité, délais.

Coûts, qualité et délais sont incontournables

En matière de développement logiciel, privilégier deux objectifs et faire l’impasse sur le troisième ne suffit plus. Coûts, qualité et délais sont des incontournables. En effet, dans l’univers des logiciels modernes d’aujourd’hui, cette notion de compromis n’est plus acceptable. De nos jours, les clients veulent une qualité irréprochable, des mises à jour régulières et un prix compétitif, mais en réalité, leurs exigences vont bien plus loin. Réussir dans le développement logiciel implique désormais d’apporter une valeur ajoutée beaucoup plus grande.

Les produits et services offert par les éditeurs de logiciels doivent répondre à pas moins d’une douzaine de critères différents, sans la moindre place pour des compromis car la compétition se fait presqu’exclusivement entre acteurs parvenant à atteindre le score parfait de 12/12.

En raison de l’importante baisse du coût des infrastructures technologiques, l’utilisation de systèmes de stockage, de mémoire et de calcul davantage performants sont désormais accessibles à tous les développeurs, à un prix plus abordable. En parallèle, les outils et les méthodes de développement logiciel ont évolué de manière significative. Les applications « cloud-native », qui bénéficient de microservices indépendants et autonomes, regroupés au sein de conteneurs, et développés à l’aide de langages et de frameworks toujours plus performants, permettent aux développeurs d’aborder différemment les questions de coût, de complexité et de risque liées aux architectures applicatives.

De la même manière, les méthodologies, les modes de fonctionnement opérationnels et la culture d’entreprise concernant le développement logiciel ont évolué afin de tirer parti de ces innovations. Les méthodes agile et DevOps, une gestion plus efficace du cycle de vie applicatif, et la généralisation de l’automatisation permettent aux développeurs de livrer les logiciels de façon plus rapide et plus stable, avec un niveau de qualité très supérieur à ce qui s’est fait jusqu’à maintenant.

Désormais, il suffit d’un seul ingénieur pour déployer une application web prenant en charge l’auto-scaling, composé d’une file de messages et d’une base de données, le tout en quelques minutes seulement, en dupliquant des tâches qui mobilisaient auparavant toute une équipe pendant des journées ou des semaines. L’utilisation d’une infrastructure cloud hautement évolutive et disponible entraine une chute du prix du le coût de l’hébergement d’une application en comparaison à ce qu’il était il y a à peine dix ans.

Mais les changements ne sont pas qu’une question de performance et de coûts. Les conséquences de cette révolution vont plus loin que le développement logiciel : les attentes et les expériences des utilisateurs ont été redéfinies. Ceux-ci exigent et comptent désormais sur des applications leur offrant, à tout moment, une expérience utilisateur irréprochable. Ce qui ne cesse de placer la barre toujours plus haut en termes de nouvelles fonctionnalités rajoutées avec un coût minimal.

Le résultat de ces deux phénomènes est que faire « mieux, moins cher et plus rapide » ne représente plus qu’une simple mise de départ. Pour réussir, il faut aller au-delà de ces critères en apportant des fonctionnalités plus innovantes, et en améliorant la pérennité, la maintenance et le monitoring des applications.

La check-list d’évaluation de réussite du logiciel moderne

  1. Rapidité : Il faut parvenir à apporter de la valeur aux clients plus rapidement que ses concurrents, tout en anticipant les attentes croissantes desdits clients.

  2. Coûts : Même avec des coûts de développements logiciels au plus bas, il faut pouvoir être capable de continuer à livrer un produit à un coût prévisible et acceptable

  3. Qualité : Dans un monde où les clients considèrent la qualité comme une évidence, et où une simple erreur peut avoir des répercussions catastrophiques sur l’image d’une marque qui s’est construite sur des années, il est impératif d’élever en continu le niveau de ses produits afin de répondre aux exigences toujours plus fortes.

  4. Résilience : en cas de problème, un logiciel doit être capable de rétablir son fonctionnement, de restaurer rapidement les fonctionnalités perdues, ou encore d’empêcher les pertes de données pour s’assurer que cela n’a pas d’impact négatif sur l’activité et l’expérience des clients.

  5. Fiabilité : les éditeurs de logiciels modernes doivent tout mettre en œuvre pour limiter les temps d’arrêts, planifiés ou non, des environnements de production en assurant la disponibilité des logiciels à tout moment, 365 jours par an.

  6. Evolutivité : l’évolutivité doit être au cœur de l’architecture logicielle, et engendrer le minimum de coûts et de risques. Cette évolutivité doit être véritablement ouverte pour permettre le passage de 20 à 20 000 et de 20 000 à 20 millions d’utilisateurs sans qu’il soit nécessaire de toucher à l’architecture du logiciel ou d’imposer au client une situation où il faut remplacer entièrement le produit. L’évolutivité concerne également le volume des données, la complexité de l’application et le nombre de développeurs qui travaillent à son développement.

  7. Mobilité : les éditeurs doivent produire des logiciels capables de s’adapter à un type d’appareils de plus en plus disparates et en évolution constante. Leur déploiement doit pouvoir se faire localement sur des ordinateurs portables, dans des environnements de tests, ainsi que dans des environnements de production variés, et ce en fonction des préférences des clients et de leurs besoins géographiques et métiers.

  8. Observabilité : un logiciel doit fournir des indicateurs clés, des traces connectées, et des résultats métiers que les équipes DevOps et opérationnelles, les ingénieurs en fiabilité de site (SRE) et les équipes métiers peuvent exploiter pour améliorer la performance et la réussite commerciale de l’entreprise.

  9. Maintenabilité : l’innovation technologique n’est toujours pas venue à bout d’une vérité dérangeante : 75% du coût d’un logiciel est lié à des questions de maintenance et d’administration. La conception logicielle doit contribuer à la simplification et l’optimisation des processus de maintenance.

  10. Automatisation : en matière de développement, il est essentiel de tirer parti des outils et méthodes d’automatisation pour les phases de conception et de déploiement, et de limiter les ralentissements causés lorsque les processus s’appuient sur des tâches manuelles.

  11. Cadence : il est important que le processus de livraison du logiciel réduise le temps de démarrage, s’arrête correctement et que les cycles de vie se mesurent en millisecondes plutôt qu’en minutes.

  12. Continuité : il est essentiel de ne pas laisser s’écouler des semaines ou des mois entiers entre les sorties des versions de production. Celles-ci doivent s’échelonner toutes les heures, voire minute par minute.

En conclusion, il ne s’agit pas de choisir six, huit, dix ou même onze des douze critères cités ici. Il est impératif de les remplir tous, sans quoi la concurrence s’en chargera. Aussi difficile qu’elle puisse sembler, cette recette du succès illustre néanmoins une période particulièrement excitante du développement logiciel. Les avancées considérables en matière d’outils logiciels et d’infrastructure amènent même certains à parler d’un « âge d’or » du développement logiciel. Enfin, de plus en plus d’entreprises se transformant en éditeur de logiciels, les opportunités, mais aussi les récompenses, sont sans précédent.

Cropped Favicon Economi Matin.jpg

Alexandre Derome est Senior Solution Consultant chez New Relic. Travaillant en étroite collaboration avec les équipes commerciales, il est notamment en charge de superviser l’adoption, l’optimisation et l’intégration des produits New Relic dans l’environnement des clients grands comptes en Europe du Sud. Alexandre bénéficie d’une vaste expérience dans le secteur du monitoring, du réseau aux applications. Auparavant, il a occupé différents postes de consultant chez Orange Business Services ou encore chez SII. Alexandre est diplômé du Conservatoire National des Arts et Métiers.

Suivez-nous sur Google News Economie Matin - Soutenez-nous en nous ajoutant à vos favoris Google Actualités.

Aucun commentaire à «Le logiciel moderne doit répondre aux exigences du marché»

Laisser un commentaire

* Champs requis