Réintégrer le Service dans le Produit et renforcer nos capacités opérationnelles
Dans le domaine du développement de produits logiciels, l’accent est de plus souvent mis sur la création de fonctionnalités. Cependant, cette focalisation relègue au second plan l’intégration fluide des services associés et du fonctionnement des équipes en charge du produit.
Pour que le produit soit véritablement efficace, il est nécessaire de repenser l’approche de développement en intégrant de manière plus étroite les équipes impliquées dans la création, le support et la maintenance du produit. Cette intégration garantit non seulement une meilleure résolution des problèmes rencontrés par les utilisateurs du produit, ou bénéficiaires du service, mais assure également sa viabilité technique et organisationnelle.
Cette intégration harmonieuse des équipes favorise la rétroaction continue, essentielle pour une amélioration itérative du service. Elle offre également une vision plus complète des besoins spécifiques des utilisateurs, ce qui permet d’orienter les futures mises à jour et les évolutions du produit. En définitive, cette approche holistique assure la pérennité et la compétitivité du service.
Gestion des compétences et procédures
Dans le processus de développement de produits, la gestion des compétences au sein des équipes revêt une importance capitale. Investir dans la formation et le développement des compétences des collaborateurs est bien plus qu’une simple dépense ; c’est un investissement stratégique essentiel. Des équipes bien formées, compétentes et collaboratives sont un atout majeur pour la conception, la création et le maintien de produits de qualité.
La perte d’un collaborateur expérimenté peut non seulement entraîner des coûts directs, mais également avoir un impact significatif sur la continuité du service et la productivité de l’équipe. De plus, évaluer le temps nécessaire à la formation et à l’intégration d’un nouvel employé, ainsi que la qualité de l’onboarding, sont des facteurs déterminants pour maintenir un flux de travail fluide.
La lisibilité et la découvrabilité des processus internes de l’entreprise peuvent également jouer un rôle crucial. Si les procédures de l’entreprise ne sont pas clairement définis et compris par les équipes, cela peut entraîner des retards, des erreurs ou des dysfonctionnements dans le service. Une bonne compréhension du produit, de ses enjeux métiers et de ses aspects techniques est indispensable pour garantir une cohésion et une efficacité optimales dans le processus de développement.
De plus, une gestion proactive des compétences et des procédures peut contribuer à rationaliser les coûts. En optimisant l’intégration des nouveaux collaborateurs, en réduisant les pertes dues au départ des employés et en améliorant l’efficacité opérationnelle grâce à des procédures claires et efficaces, l’entreprise peut réaliser des économies substantielles à long terme et élargir son panel de garanties.
Infrastructure, acquisitions et gestion des actifs
Dans le cadre du développement de produits logiciels, la gestion des actifs, qu’ils soient matériels ou virtuels, joue un rôle crucial souvent sous-estimé et absent des méthodes de développement les plus populaires. Ces actifs comprennent une multitude d’éléments nécessitant une surveillance constante et une gestion adéquate.
Cela peut englober le code source, les serveurs web, les logiciels installés, les zones DNS, les clés cryptographiques, les certificats TLS, les fichiers de configuration, les systèmes d’exploitation, et autres composants logiciels, des actifs physiques tels que les locaux, des machines et tous composants hardware, une complexité qui peut etre partiellement éliminée par l’usage d’infrastructures clouds mais qui se traduiront son la forme d’actifs legaux et financiers. La maintenance et la surveillance de ces actifs est donc cruciales pour garantir une continuité opérationnelle et minimiser les risques potentiels.
Pour prendre en charge efficacement ces actifs, il est essentiel d’assurer un bon outillage organisationnel et fonctionnel. De la même façon qu’une équipe médicale opère mieux dans une salle d’opération parfaitement équipée avec une équipe de spécialistes et des outils sélectionnés au préalable. Disposer d’une infrastructure organisée, d’équipes spécialisées et d’outils adaptés garantit une gestion efficiente et une maintenance adéquate des actifs. Travailler sans cette structure adéquate peut entraîner des inefficacités, des erreurs coûteuses et un manque de contrôle sur ces précieux actifs.
L’infrastructure, qu’elle soit physique ou dématérialisée dans des services cloud, représente une composante vitale souvent négligée. La délégation complète de la maintenance et de l’observation de l’infrastructure à des services cloud peut entraîner un manque de visibilité et de contrôle sur les actifs physiques. Il est crucial de ne pas oublier la surveillance et la maintenance des actifs physiques pour garantir une continuité opérationnelle.
De plus, une gestion inefficace des acquisitions et des paiements associés à l’acquisition de nouveaux actifs ou ressources peut entraîner diverses problématiques. Une mauvaise gestion peut conduire à des dépenses inutiles sur des ressources non utilisées, à une incapacité à prendre des décisions d’achat pour adapter l’évolutivité du service, ainsi qu’à des interruptions de celui-ci pour des problèmes souvent évitables. Par exemple, des dysfonctionnements liés à la facturation des zones DNS et des certificats TLS peuvent entraîner des arrêts complets du service. De même, la perte d’accès à un outil nécessaire au bon fonctionnement d’une équipe peut avoir un impact direct sur la productivité et le niveau de service.
L’importance de maintenir une gestion rigoureuse et proactive des acquisitions et des actifs logiciels ne peut être surestimée. Cette gestion doit être accompagnée d’une attention constante à la disponibilité et à la fonctionnalité de ces actifs pour garantir une continuité opérationnelle sans failles. Pour cette raison, les différentes composantes et dépendances du service doivent etre considérée comme centrales, elles seront sinon des élément d’ennui flottant autour d’une équipe de développement aux responsabilités extensibles.
Le Support en tant que pôle d’expertise technique et métier
Le support au sein du développement de produits logiciels ne se limite pas à un simple service de relation client, à un call center ou un chat bot implémenté en a peine 2 mois. Il représente un pôle d’expertise métier et technique indispensable. Contrairement aux idées préconçues, il ne s’agit pas d’un simple intermédiaire entre les utilisateurs et les équipes de développement, mais d’une entité capable de comprendre les besoins des utilisateurs, de porter leur voix de manière pertinente et de transformer les retours utilisateurs en informations utilisables pour l’équipe produit.
Une caractéristique essentielle du support est sa double expertise : technique et métier. Idéalement, l’équipe de support devrait posséder une compréhension technique au moins équivalente, voire supérieure, à celle des équipes de développement. De plus, une bonne connaissance du métier sans l’influence ou les biais éventuels provenant de la gestion ou du management est primordiale pour assurer une communication efficace entre les utilisateurs et les équipes techniques. Pour cette raison, le support fait aussi un excellent QA pour les produits développés, là le développement peut développer la plupart des applications métier sans avoir à les comprendre.
Le support doit également interagir avec diverses équipes ainsi qu’avec les actifs logiciels et physiques de manière autonome. Cette autonomie est réalisable lorsqu’il existe des accès et des processus clairement définis. Dans ce cadre, les risques encourus par l’entreprise sont minimisés, et cela permet au support de fournir une assistance efficace sans compromettre la sécurité ou la confidentialité des données.
Lorsqu’un problème est identifié, une vue d’ensemble rapide de l’écosystème concerné est cruciale. Cela inclut une description détaillée des différents actifs, projets associés, processus de (re)mise en service, un carnet de maintenance (et/ou un registre des interventions), et une description de son cycle de vie et des diverses dépendances physiques, logicielles et de facturation. Disposer de ces informations dans un environnement standardisé et connu facilite grandement la résolution des problèmes et accélère les délais d’intervention.
Des systèmes d’information au service de l’intérêt public
Dans notre recherche d’innovation technologique, il est impératif de recentrer nos efforts pour que l’innovation ait un sens et serve véritablement l’intérêt général. Il ne s’agit pas seulement d’innover, mais d’orienter nos avancées technologiques pour améliorer durablement la qualité de vie dans nos société.
Aujourd’hui, tous le monde sait plus ou moins créer une application métier sans connaissance technique profonde, il ne s’agit pas d’une vraie innovation mais plutôt d’utiliser une technologie déjà à disposition. Nous sommes par contre encore relativement mauvais quand il s’agit d’offrir un service de qualité, surtout une fois que l’investissement vient à manquer.
Il devient nécéssaire de sensibiliser à l’importance de réfléchir en service et pas seulement en produit, d’enrichir nos connaissance à ce sujet et les adapter à l’informatique moderne qui se développe dans de plus petites structures, de la startup qui en fait son expertise principale, à l’entreprise de service qui supporte son activité ou au service public dont la pleine digitalisation a été mise dans les mains de quelques agents.
Au cœur de cette démarche, se trouve la nécessité d’une organisation complexe mais efficace. Son objectif principal est de replacer l’humain, bénéficiaire ultime du service, au centre des préoccupations quotidiennes. En priorisant cette approche, le développement logiciel devient un outil au service de l’amélioration de la qualité de vie de nos pairs, ce qui devrait être l’objectif fondamental de toute démarche de développement.
Cette réorientation permet non seulement d’apporter des solutions technologiques, mais aussi de créer un environnement où l’innovation sert à résoudre des problèmes concrets et à répondre aux besoins réels des individus, contribuant ainsi à un progrès significatif et durable de la société.
Les idées sont les miennes, mais l’article à été partiellement écrit avec chatGPT afin d’en permettre la publication.