Architecture pour les démarrages

La création d’une start-up est un défi unique. La tâche principale consiste à trouver une place d’une innovation en tant que produit ou service sur le marché. Ce processus nécessite de tester plusieurs hypothèses intégrées à l’innovation. Une start-up réussie doit itérer à travers ces hypothèses, croître et évoluer à mesure que son produit trouve l’adéquation du produit et du marché. Après avoir trouvé cette adéquation, la start-up doit se mettre à l’échelle pour répondre aux demandes du marché.

Au cours des différentes étapes de la vie d’une start-up, les développeurs, les architectes et les directeurs techniques (CTO) gèrent des phases distinctes de développement. Ces étapes nécessitent des approches fondamentalement différentes et des choix technologiques distincts. Une partie de la tâche consiste à déterminer dans quelle phase se trouve votre start-up. Choisissez les technologies et les architectures qui correspondent à cette phase.

Les étapes de l’innovation

Kent Beck décrit un processus d’innovation des produits logiciels en trois étapes. Ces étapes sont l’exploration, l’expansion et l’extraction. Vous pouvez considérer les différentes parties de ce processus sous la forme d’un graphique :

Graphique montrant les phases d’exploration, d’expansion et d’extraction du développement de produits.

Graphique représentant une courbe sigmoïde tracée en fonction d’un axe Y « Certainty/Investment/Risk of Change » (Certitude/Investissement/Risque de changement) et d’un axe X « Time » (Temps). Trois zones sont mises en évidence sur le graphique : la partie initiale avant l’inflexion vers le haut appelée « Exploration », la partie à forte croissance de la courbe sigmoïde appelée « Expansion » et le plateau appelé « Extraction ».

  • La phase Exploration commence avec une faible pente, pendant laquelle vous essayez de trouver ce qui fonctionne. La certitude est faible, vous n’investissez que de petites sommes et le risque lié aux changements que vous apportez est également faible.

  • À un moment donné, le graphique augmente plus rapidement. Cette croissance rapide est la phase Expansion. Votre certitude augmente considérablement, vous investissez beaucoup plus et vous êtes beaucoup plus conscient des risques.

  • Enfin, lorsque le graphique s’aplatit, vous atteignez la phase Extraction. La certitude, l’investissement et le risque de changement sont tous élevés, mais le taux de croissance a atteint un plateau.

Explorer

Lorsque votre start-up est en phase d’exploration, il est impératif d’investir de petites quantités de temps et d’efforts sur de nombreuses idées de produits différents. Le fait que la plupart des idées ne soient pas bonnes incite à l’exploration. Ce n’est qu’en itérant et en apprenant que vous pourrez trouver l’adéquation du produit et du marché. En faisant de nombreux petits paris, vous cherchez à trouver une idée de produit qui rapporte.

Cette étape exige de la discipline. Il est facile de surinvestir dans une idée que vous pourriez tester avec moins de temps et d’énergie. Il est particulièrement facile pour un technologue de tomber dans ce piège. Pour faire des choix architecturaux qui facilitent l’exploration, n’oubliez pas que vous êtes en train d’explorer. Vous ne savez pas encore si l’idée de produit actuelle est celle qui sera mise à l’échelle.

Du point de vue de l’architecture, choisissez des services qui optimisent la vitesse, le coût et les options. Utilisez des services gérés et des modèles PaaS comme Azure App Service pour démarrer rapidement sans vous soucier d’une infrastructure complexe. Gérez les coûts en choisissant les niveaux gratuits et des instances de petite taille pendant votre exploration. Les conteneurs prennent en charge le développement avec les outils qui vous conviennent et vous offrent des options de déploiement flexibles pour l’avenir.

Créer votre première pile

Comme pour la première version de votre produit, votre première pile technologique doit être fermement ancrée dans l’exploration. Cela signifie que la pile technologique doit faciliter l’itération rapide du produit sans gaspillage d’efforts. Vous ne voulez pas consacrer du temps ou des efforts à une infrastructure ou une architecture qui n’est pas nécessaire pour répondre aux questions actuelles.

Pendant la phase d’exploration, vous devez optimiser la vitesse, le coût et le caractère facultatif. La vitesse désigne la rapidité avec laquelle vous pouvez construire et faire avancer une idée, ou passer à l’idée suivante. Le coût désigne le montant que vous dépensez pour faire fonctionner votre infrastructure. Le caractère facultatif décrit la rapidité avec laquelle vous pouvez changer de direction compte tenu de l’architecture actuelle.

Il est important de trouver un équilibre entre le coût, la vitesse et le caractère facultatif. Si l’on se concentre trop sur le coût, on limite la vitesse et le caractère facultatif. Une trop grande importance accordée à la vitesse peut entraîner une augmentation des coûts et une diminution du caractère facultatif. Concevoir pour un trop grand nombre d’options accroît la complexité, ce qui augmente les coûts et réduit la vitesse.

Envisagez d’utiliser notre première pile technologique suggérée. Cette architecture utilise les services PaaS pour faciliter l’implémentation, peut être démarrée avec une échelle minimale et utilise des technologies de conteneur et de open source qui peuvent facilement être déployées sur différentes piles de technologies à mesure que vous gagnez en maturité.

Développez

Une fois que votre start-up a trouvé la croissance par l’exploration, vous passez à l’expansion. Vous vous concentrez sur l’élimination de tous les obstacles à la croissance continue de votre produit et de votre entreprise. D’un point de vue technique, vous résolvez les problèmes d’infrastructure mis à l’échelle et augmentez la vitesse de développement. Les objectifs sont de répondre aux besoins de vos nouveaux clients et de faire progresser la feuille de route votre produit.

Étendre votre architecture

Au fur et à mesure de l’itération de votre produit, vous trouverez inévitablement des zones où votre architecture doit être étendue. Il se peut que vous deviez effectuer des tâches de longue haleine en arrière-plan ou gérer les mises à jour fréquentes des appareils de l’Internet des objets (IoT). Vous devrez peut-être ajouter la recherche en texte intégral ou l’intelligence artificielle à votre produit.

Vous pouvez être amené à modifier l’architecture pour prendre en compte des éléments de votre feuille de route. Résistez à la tentation d’effectuer ces changements trop longtemps à l’avance. Les extensions risquent d’ajouter de la complexité à votre architecture et des coûts d’infrastructure à votre bilan.

Dans les premières phases d’une start-up, toute extension de l’architecture doit se faire juste-à-temps. L’extension ne doit prendre que le temps et l’énergie nécessaires pour tester l’hypothèse suivante. Soyez prêt à supprimer des extensions pour réduire la complexité. Regardez les fonctionnalités du produit que vos clients n’utilisent pas comme des opportunités de simplifier votre architecture et de réduire vos dépenses en matière d’infrastructure.

Votre architecture peut être développée de plusieurs façons, par exemple :

Extraction

Dans la phase d’extraction, le rythme de croissance ralentit, car vous atteignez les limites des opportunités du marché. Comme vous vous êtes développé au cours de la phase précédente, vous avez maintenant beaucoup à perdre et vous adoptez une approche plus prudente. L’expansion des marges, la réduction des coûts et l’amélioration de l’efficacité caractérisent la phase d’extraction. Pendant la phase d’extraction, veillez à ne pas compromettre le produit pour les clients que vous avez gagnés pendant la phase d’expansion.

Gérer la croissance et faire mûrir votre pile

Une fois qu’un produit atteint l’adéquation du produit et du marché, de nombreuses exigences déterminent son architecture. Une utilisation accrue peut nécessiter une mise à l’échelle de l’infrastructure pour gérer la charge. Les nouvelles exigences en matière de conformité des entreprises peuvent nécessiter une plus grande isolation. Ces changements sont des étapes courantes de la maturation d’une application réussie.

Les changements que vous apportez pour gérer la croissance et ajouter de la maturité diffèrent de l’extension de l’architecture. Ces changements ne sont pas des exigences fonctionnelles, mais concernent la déverrouillage de l’échelle. L’augmentation de l’échelle peut provenir de nouveaux clients nets, d’une utilisation accrue des clients existants et de clients ayant des exigences réglementaires plus élevées.

Résistez à la tentation d’optimiser prématurément. Veillez à prendre des mesures de croissance et de maturation qui vous aideront à poursuivre l’itération et l’amélioration de votre produit.

Étapes suivantes