Définir la structure de l’organisation pour les pratiques agiles
Pour la plupart des organisations, la réorganisation pour être agile est difficile. Il faut un état d’esprit fondamental et une transformation culturelle qui défie de nombreuses politiques, processus et structures de pouvoir existantes au sein de l’organisation.
Le défi de transformation organisationnelle
Une bonne gouvernance dans les organisations, en particulier les grandes entreprises, mène souvent à :
- Structures hiérarchiques rigides qui ralentissent la prise de décision
- Flux de travail intensifs en processus qui accordent la priorité à la conformité par rapport à la vitesse
- Cultures ayant une aversion au risque qui découragent l’expérimentation
- Services en silo qui optimisent localement plutôt que globalement
Bien que la plupart des grandes organisations n’aient pas entièrement déménagé à des structures agiles, la plupart expérimentent des approches hybrides, car :
- Les environnements métier sont de plus en plus volatiles et complexes
- Les systèmes traditionnels luttent avec des exigences de changement rapides
- Les start-ups perturbent régulièrement les industries établies avec des approches agiles
- Les attentes des clients demandent une innovation et une réponse plus rapides
Stratégies de transformation culturelle
De la hiérarchie au réseau
Approche traditionnelle : prise de décision descendante avec plusieurs couches d’approbation Approche Agile : prise de décision distribuée avec une responsabilité claire
Étapes d’implémentation :
- Identifier les points de décision qui peuvent être poussés vers les équipes
- Établir des limites claires pour la prise de décision autonome
- Créer des chemins d’escalade pour les décisions en dehors de l’autorité de l’équipe
- Former des gestionnaires pour devenir des entraîneurs plutôt que des contrôleurs
Du processus aux résultats
Approche traditionnelle : Suivre les processus définis, indépendamment des résultats Approche Agile : Optimiser pour les résultats tout en adaptant les processus
Modifications clés :
- Concentrez-vous sur l'apport de valeur pour l'entreprise plutôt que sur l'achèvement des tâches.
- Mesurer la réussite par la satisfaction des clients et les métriques d’entreprise
- Permettre aux équipes de modifier les processus qui ne fonctionnent pas
- Rétrospectives régulières pour identifier et implémenter des améliorations
Modèles de structure d’équipe : horizontal et vertical
Équipes horizontales (traditionnelles)
Les structures d’équipe horizontale divisent les équipes en fonction des couches techniques ou des composants d’architecture logicielle. Les équipes sont organisées par spécialité technique plutôt que par capacité métier.
Exemple de structure :
- Équipe d’interface utilisateur : développeurs frontaux, concepteurs d’expérience utilisateur
- Équipe de service : développeurs principaux, spécialistes de l’API
- Équipe de données : administrateurs de base de données, ingénieurs données
Défis liés aux équipes horizontales :
- Surcharge de communication : les fonctionnalités nécessitent une coordination entre plusieurs équipes
- Changement de blâme : les problèmes tombent souvent entre les équipes
- Livraison lente : les dépendances créent des goulots d’étranglement et des retards
- Contexte commercial limité : Les équipes se concentrent sur les préoccupations techniques au détriment de la valeur utilisateur
Équipes verticales (recommandées)
Les structures d’équipe verticales s’étendent sur l’ensemble de la pile technologique et sont alignées sur les fonctionnalités métier ou les flux de valeur client.
Exemple de structure :
- Équipe Email : développeurs full-stack, designer UX, spécialiste des données
- Équipe vocale : développeurs full-stack, designer UX, spécialiste de l'infrastructure
- Équipe TV : développeurs full-stack, designer UX, ingénieur de plateforme
Avantages des équipes verticales :
- Propriété de bout en bout : Teams peut fournir des fonctionnalités complètes indépendamment
- Livraison plus rapide : dépendances réduites et remises
- Meilleure responsabilisation : Clarté de la propriété de l’idée à la production
- Focus client : Teams comprend le contexte métier et les besoins des utilisateurs
- Qualité améliorée : Teams est responsable de toute l’expérience utilisateur
Mise à l’échelle des équipes verticales
Les équipes verticales sont mises à l’échelle plus efficacement, car vous pouvez ajouter des équipes entières plutôt que d’essayer de coordonner plusieurs équipes horizontales. Au lieu des équipes de projet, créez des équipes dédiées aux fonctionnalités avec une responsabilité à long terme.
Principes de mise à l’échelle :
- Taille de l’équipe : Garder les équipes petites (5 à 9 personnes) pour une communication efficace
- Loi de Conway : votre architecture logicielle reflète votre structure d’équipe
- Réduire les remises : chaque équipe doit être en mesure de livrer indépendamment
- Services partagés : créer des équipes de plateforme pour prendre en charge les équipes de fonctionnalités ayant des besoins courants