Développement pour applications innovantes
Comme nous l’avons vu dans Démocratiser les données avec l’invention numérique, les données alimentent la plupart des innovations qui sont réalisées dans l’économie numérique. Dans le contexte de cette analogie, les applications représentent les stations d’approvisionnement et l’infrastructure nécessaires pour fournir ce carburant aux bonnes personnes.
Dans certains cas, les données seules sont suffisantes pour produire des changements et répondre aux besoins des clients. De façon plus générale, la solution répondant aux besoins des clients nécessite des applications pouvant structurer les données et créer une expérience. Les applications innovantes interagissent avec l’utilisateur, en lui fournissant des informations et des conseils. Cet article résume quelques principes qui peuvent vous aider à trouver la bonne solution de développement d’applications en fonction des hypothèses à valider.
Code partagé
Les équipes qui innovent le plus sont généralement celles qui sont les plus rapides à appliquer les commentaires des clients, à s’adapter aux changements du marché et à saisir les opportunités. Le premier principe sur lequel reposent les applications innovantes fait partie de l’esprit de croissance. Il s’agit du principe « Partager le code ». Le partage de code invite diverses perspectives et contributions, et favorise l’innovation. Par conséquent, tout développement d’application doit commencer par un dépôt de code partagé.
GitHub est l’outil de gestion de dépôts de code le plus utilisé. Il vous permet de créer rapidement un dépôt de code partagé. Une autre possibilité est Microsoft Azure Repos. Il s’agit d’un service Azure DevOps qui fournit un nombre illimité de dépôts privés hébergés dans le cloud pour votre projet. Pour la gestion de versions, lorsque vous utilisez Azure Repos, vous pouvez choisir Git, qui est un type distribué, ou Team Foundation Version Control (TFVC), qui est centralisé. Pour plus d’informations sur Azure Repos, Git et TFVC, consultez la documentation Azure Repos.
Développeurs citoyens
Les développeurs professionnels sont importants pour l’innovation. Lorsqu’une hypothèse se révèle exacte à grande échelle, ils peuvent stabiliser la solution et la préparer en vue de sa mise à l’échelle. Malheureusement, les développeurs professionnels peuvent ne pas être assez nombreux. Le développement professionnel peut donc augmenter les coûts et ralentir l’innovation.
Les développeurs citoyens sont des utilisateurs qui créent de nouvelles applications métier à l’aide d’environnements de développement et de runtime approuvés par le service informatique de l’entreprise. Le fait de faire appel aux développeurs citoyens permet d’augmenter les efforts de développement et d’accélérer les premiers tests d’hypothèse. Cette stratégie est viable et efficace quand les premières hypothèses peuvent être validées à l’aide d’outils tels que Power Apps pour les interfaces d’application, AI Builder pour les processus et les prédictions, Power Automate pour les workflows et Power BI pour la consommation de données.
Remarque
Quand vous vous appuyez sur des développeurs citoyens pour tester les hypothèses, il est recommandé de demander à des développeurs professionnels de guider et de réviser leur travail. Les professionnels peuvent vous aider à développer une conception robuste qui accélère les retours sur innovation. En impliquant des développeurs professionnels au bon moment, vous pourrez réaliser des transitions plus propres ultérieurement.
Expériences intelligentes
Les expériences intelligentes combinent la vitesse et l’échelle des applications web modernes à l’intelligence des bots et services cognitifs qui, individuellement, sont des technologies qui peuvent être suffisantes pour répondre aux besoins de vos clients. Lorsqu’elles sont combinées intelligemment, elles élargissent le spectre des besoins qui peuvent être pourvus via une expérience numérique, tout en aidant à maîtriser les coûts de développement d’application.
Applications web modernes
Les applications web modernes peuvent constituer le moyen le plus rapide de répondre aux besoins des clients internes ou externes. Les expériences qu’elles offrent peuvent engager rapidement les clients et permettre une évolution rapide de la solution.
Ajout de l’intelligence
Il devient plus facile pour les développeurs professionnels et les citoyens d’ajouter des fonctionnalités de Machine Learning et d’IA aux applications qui répondent aux besoins du client et de créer une expérience interactive. Voici quelques exemples de ces fonctionnalités :
- Reconnaissance vocale
- Synthèse vocale
- Vision par ordinateur
- Recherche visuelle
- IA prédictive
Les innovateurs doivent être réactifs pour tirer parti de ces fonctionnalités dans le but de créer une expérience interactive et moderne.
Bots
Un bot est une application d’IA conversationnelle qui offre aux utilisateurs une expérience plus semblable à une interaction avec une personne qu’à une interaction avec une application informatique conventionnelle. Les utilisateurs conversent avec le bot par le biais de texte, de cartes interactives et avec la voix. Une interaction avec un bot peut aller d’une question-réponse rapide (pour réserver une table dans un restaurant, par exemple) à une conversation plus élaborée fournissant un accès à des services de manière plus intelligente.
Les bots peuvent effectuer les mêmes opérations que d’autres types de logiciels : lire et écrire des fichiers, utiliser des bases de données et des API, et traiter des tâches de calcul classiques. Ce qui rend les bots uniques, c’est leur utilisation de mécanismes généralement réservés à la communication entre humains. Les bots sont comparables à des applications web modernes. Ils résident sur Internet et utilisent des API pour envoyer et recevoir des messages. Le contenu d’un bot varie considérablement selon son type. Les logiciels de bots modernes s’appuient sur une pile de technologies et d’outils qui offrent des expériences de plus en plus complexes sur un éventail de plateformes. Toutefois, un bot simple peut se contenter de recevoir un message et de répondre à l’utilisateur avec très peu de code.
Solutions cloud natives
L’architecture native cloud vous permet de vous adapter aux changements rapides et d’exécuter des applications résilientes et scalables plus facilement. Les applications natives cloud sont généralement créées à l’aide de conteneurs, de microservices, de services managés, de fonctions serverless et de la programmation basée sur les événements. Le plus souvent, les solutions natives cloud utilisent la livraison continue pour accélérer le délai de mise sur le marché.
Une solution cloud native permet aux équipes de développement centralisées de conserver le contrôle de la logique métier sans avoir à recourir à des solutions centralisées monolithiques. Cela crée également un ancrage favorisant la cohérence entre les développeurs citoyens et les expériences modernes. Enfin, les solutions cloud natives offrent un accélérateur d’innovation. En effet, elles donnent toute latitude aux développeurs citoyens et professionnels pour innover de façon sûre avec très peu d’obstacles.
Innover avec des solutions existantes
La version moderne d’une solution existante peut représenter le meilleur moyen de satisfaire de nombreuses hypothèses clients. Cela peut se produire lorsque la logique métier actuelle est tout près de répondre aux besoins des clients.
La plupart des formes de modernisation (y compris la refactorisation) s’inscrivent dans la méthodologie de migration du Cloud Adoption Framework. Cette méthodologie guide les équipes d’adoption du cloud dans le processus de migration d’un patrimoine numérique vers le cloud. Le Guide de migration Azure fournit une approche simplifiée de la même méthodologie, qui convient à un petit nombre de charges de travail ou même à une seule application.
Une fois la migration et la modernisation de la solution terminées, vous pourrez l’utiliser de nombreuses façons pour créer des solutions innovantes répondant aux besoins des clients. Par exemple, les développeurs citoyens peuvent tester des hypothèses, ou les développeurs professionnels peuvent créer des expériences intelligentes ou des solutions cloud natives.
Extension d’une solution existante
L’extension d’une solution est une forme courante de modernisation. Cela peut représenter la voie la plus rapide vers l’innovation quand l’hypothèse client présente les caractéristiques suivantes :
- La logique métier existante répond aux besoins des clients ou en est proche.
- Une expérience améliorée, et non une nouvelle, répond mieux aux besoins des clients.
- La logique métier nécessaire à la solution de produit minimum viable (MVP) a été centralisée, généralement par le biais d’une approche multiniveau, microservices, basée sur des services web ou basée sur des API. Cette approche consiste à wrapper la solution existante avec une nouvelle expérience hébergée dans le cloud. Dans Azure, cette solution est probablement disponible dans Azure App Service.
Regénérer une solution existante
Si une solution existante répond aux besoins des clients ou s’en rapproche, mais ne peut pas être facilement étendue, il peut être nécessaire de la refactoriser. Dans le cadre de cette approche, l’application fait l’objet d’une migration vers le cloud. Une fois la migration de l’application effectuée, certaines parties de l’application sont modifiées ou dupliquées en tant que services web ou microservices déployés parallèlement avec la solution existante. La solution parallèle basée sur les services peut être traitée comme une solution étendue. Cette approche consiste simplement à wrapper la solution existante avec une nouvelle expérience hébergée dans le cloud. Cette solution est probablement disponible dans Azure App Service.
Attention
La refactorisation ou la réorganisation des solutions ou la centralisation de la logique métier peut rapidement déclencher un spike technique chronophage, au lieu d’une source de valeur client. Il s’agit d’un risque pour l’innovation, particulièrement au début de la validation de l’hypothèse. En faisant preuve d’un peu de créativité dans la conception d’une solution, il doit être possible de créer un MVP n’impliquant pas la refactorisation de solutions existantes. Il est recommandé de retarder la refactorisation jusqu’à ce que l’hypothèse initiale puisse être validée à grande échelle.
Innovations relatives aux modèles de fonctionnement
En plus des approches modernes et novatrices du développement d’applications, il y a eu des innovations notables dans les opérations d’application. Ces approches ont engendré de nombreux mouvements organisationnels. L’un des plus importants est le modèle de fonctionnement du centre d’excellence du cloud. Quand elles sont complètes et matures, les équipes commerciales peuvent fournir leur propre support opérationnel pour une solution.
Le type de modèle de gestion opérationnelle en libre-service, que l’on trouve dans un centre d’excellence du cloud, offre des contrôles plus stricts et des itérations plus rapides au sein de l’environnement de la solution. Pour accomplir ces buts, la responsabilité et le contrôle des opérations sont transférés à l’équipe commerciale.
Si vous essayez de mettre à l’échelle ou de répondre à une demande mondiale vis-à-vis d’une solution existante, cette approche peut être suffisante pour valider une hypothèse client. Une fois qu’une solution a été migrée et légèrement modernisée, l’équipe d’entreprise peut la mettre à l’échelle pour tester un large éventail d’opérations. Celles-ci impliquent généralement des cohortes de clients qui se soucient de l’impact des opérations informatiques sur les performances, la distribution mondiale et d’autres besoins qu’ils pourraient avoir.
Réduire la surcharge et l’effort de gestion
Plus il y a de composants à gérer dans une application ou une solution innovante, plus l’itération de celle-ci sera lente. Cela signifie que vous pouvez accélérer l’innovation en réduisant l’impact des opérations sur la bande passante disponible.
Pour préparer les nombreuses itérations nécessaires à la fourniture d’une solution innovante, il est important de réfléchir à l’avance. Par exemple, minimisez les charges opérationnelles au début du processus en privilégiant les options serverless. Dans Azure, Azure App Service et les conteneurs peuvent représenter des options d’application serverless.
En parallèle, examinez les options de données de transaction serverless dans Azure, car elles peuvent également vous aider à réduire les frais. Le catalogue de produits Azure fournit des options de base de données qui hébergent des données sans avoir besoin d’une plateforme de données complète.
Étapes suivantes
Selon l’hypothèse et la solution, les principes décrits dans cet article peuvent vous aider à concevoir des applications en phase avec les définitions de MVP et impliquant les utilisateurs. Vous pouvez maintenant lire l’article sur la favorisation de l’adoption et sur les principes correspondants, qui traite des méthodes permettant de mettre plus rapidement et plus efficacement l’application et les données entre les mains des clients.