A contrario, les entreprises qui peinent à ajouter des développeurs sans réduire la cadence de delivery sont celles qui ont des briques d’architecture trop couplées entre elles.
Pierre propose donc de revisiter la loi de Brooks en y ajoutant une petit subtilité :
“Ajouter des personnes à un projet en retard et avec un couplage fort entre ses parties, accroît son retard”
Le découpage organisationnel est rendu possible par le découplage des composants. Il est donc concevable de découper l’équipe en 2, sans accroche, l’une pour la partie applicative et l’autre pour le système de recommandations.
Il est donc possible d’agrandir une équipe sans ralentir le projet lorsque les composants d’une architecture sont bien découplés.
Possibilité d'agrandir et de découper les équipes lorsque les composants sont bien découplés
Le système de recommandation est tellement sollicité que des ralentissements sur l’application se font ressentir.
Ne serait-il pas le moment de sortir le service de recommandation du monolithe ?
En effet, le service de recommandation consomme beaucoup de ressources et il faudrait éviter que cela mette à mal l’application entière. Il est donc justifié d’isoler le service.
Le découpage organisationnel a déjà été réalisé à l’étape précédente et un soin particulier a été pris quant au découplage des composants. Au vu de toutes les précautions prises en amont, sortir le service se fait naturellement et sans douleur. Un découpage technique n’est donc qu’une formalité.
Le système de recommandation est sorti du monolithe et placé dans un service dédié sur un serveur aux performances adaptées
Commencez par un monolithe au début de vos projets. Pas besoin d’une architecture microservices compliquée, un monolithe fera l’affaire et sa simplicité permettra de mieux préparer l’avenir du projet.
Le découplage est un prérequis au découpage. Bien découpler son monolithe permet de mieux appréhender les découpages organisationnels et techniques.
Agrandir une équipe sans ralentir le projet est possible lorsque les composants d’une architecture sont bien découplés.
Faire un découpage technique lorsque les besoins de performances sont très différents du reste de l’application.