REX Accélérer avec des features team, Scrum, DevOps et une approche microservice.

Auto-organisation
Passionné de technologie
Passionné de vie en équipe

Mikael KROK

Valeur client
#OpenSeriousGame
Agilité & DevOps
curieux

DISCLAIMER

Introduction

 Il était une fois….

  • Editeur  de logiciel de santé
  • Service R&D 
  • Augmentation rapide d'équipiers (35 personnes)
  • 4 équipes
  • Multi sites

 

Nos contraintes de départ

  • 1 ou X produits
  • nécessité de démontrer rapidement
  • des objectifs métiers flous au départ
  • le plan d’action

 

Nos contraintes de départ 

 

1 ou X produits ?

Nos contraintes de départ 

 

Nécessité de démontrer rapidement

Nos contraintes de départ 

 

Des objectifs métiers flous au départ

Nos contraintes de départ 

 

Le plan d’action

Gérer la complexité grandissante, une organisation en plein ébullition.

  • l'axe organisationnel
  • l'axe fonctionnel
  • l'axe technique

 

Gérer la complexité 

 

L’axe organisationnel 

 Less ? SoS? Spotify?
 De l’humain, de l’inspiration et de l'auto organisation
 Donner du sens 

Gérer la complexité 

 

L’axe technique

Déployer et livrer en continu 

Grande liberté dans le choix technique (à créer, à reprendre, à acheter)

Harmoniser les pratiques et les technos 

Gérer la complexité 

 

L’axe fonctionnel

Présentation fonctionnelle des sujets

Adoption d’un workflow UX, visite des utilisateurs, fiches personae,

PO très proches des équipes

LeSS Les features team

Orienté métier

Multicompétente

Peut se faire aider (expertise)

Peut acheter des services (AWS/ Kafka)

Livrer de la valeur

Mettre l’effort sur ce qui nous freine et y trouver des solutions.

Découper l’unité de livrable : le micro service

Livrer de la valeur en continu : l’approche DevOps

Livrer de la valeur?

 

Mettre l’effort sur ce qui nous freine et y trouver des solutions.

Mesurer le temps de livraison

Prendre du temps pour inspecter

Apprendre à prendre des décisions en groupe

Suivre l'amélioration

Livrer de la valeur?

 

l’unité de livrable = le micro service

Livrer de la valeur?

 

Livrer de la valeur en continu : l’approche DevOps

Infra as code 

CI/CD

Continuous Deployment (commit)

​Automatisation (test API, UI, performance, livraison, import, export)

L’inversion de contrôle 

passer d'équipe centrales à une répartition de la compétence.

L’inversion de contrôle

 

feature team VS component team

L’inversion de contrôle

 

l’équipe plateforme

L’inversion de contrôle

 

l’équipe de la librairie graphique

L’inversion de contrôle

 

 le testeur dans l’équipe

L’inversion de contrôle

 

 le testeur dans l’équipe

Ecrit les critères d'acceptation des US

Ecrit les Cucumber (BDD)

Développe la fonctionnalité

Implémente les Cucumber en code

 

Aide et valide le DEV

Implémente les tests End 2 End

Pratiques et décisions

Comment harmoniser les pratiques  et fluidifier la prise de décision avec consensus

Les guildes

Regroupement par sujet  (technique ou domaine)

1 membre par équipes

Partage de pratiques

Peut prendre des décisions

   Java, React, Devops, Backend, Tests, Front End

Le Comite d'architecture

Regroupement global

1 architecte par équipe

Prend des décisions plus structurantes

 

Responsabilisation

Tout le monde peut proposer des avancées technologiques

Responsabilisation globale

Effort de leadership,

Plus difficile de savoir qui est responsable

LES NOUVELLES FORMES DE MÉTA ÉQUIPE

Les méta équipes

 

les commandos

Durée de vie limitée à l’objectif

Sans backlog propre

 

         Migrations technique

         Leadership difficile

 

Exemple : 

Java 8

React 16

Les méta équipes

 

l'équipe éphémère

Durée de vie limitée à l’objectif

Backlog propre

 

         Focus

         Déstabilise les équipes

 

Exemple : 

Refonte CI

Les méta équipes

 

les constellations

Feature Group

Responsabilité d'un ensemble de feature sur plusieurs équipes

 

Comment le management s’est adapté à cette organisation?

Management

Une vision adaptée du management

Responsabilité partagée?

Perte de visibilité

Grande confiance

 

         Entretien One On One

         Rétrospectives plateau

         Entretiens Scrum Masters / Managers

 

Management

Rapprocher les besoins métiers

Adapter besoins et équipes "sans gérer les ressources"

Promoteur de l'équipe

 

         Co construction des discours

         Constellations

          

Les difficultés

Les difficultés

La bonne tailles des microservices

 Des microservices qui sont trop petits

 Coût de maintenance et de mise à jour

 Complexités et interdépendances croissantes

 

      Repenser le domaine métier

      Event Storming

      Plateforme / équipe (créé à la volée)

Les difficultés

Comité d'architecture général et directif

 Trop généraliste = surchargé

 Trop directif + hors du groupe de travail = contreproductif

 

   

      Architecte dans les équipes

      Architecte = leaders != meilleurs

      Plusieurs niveau de prise de décisions : Guilde / Archi / Urba 

Les difficultés

Une plateforme trop technique

 Risque microservice spaghetti

 Risque de trop d'industrialisation =  perte de capacité d'innovation

 

   

      Architecte dans les équipes

      Architecte = leaders != meilleurs

      Plusieurs niveau de prise de décisions : Guilde / Archi / Urba 

Les 5 idées à retenir

Les 5 idées à retenir (selon moi)

  • La Feature Team engage et responsabilise l’équipe

 

  • Le testeur dans l'équipe est très efficace dans le cadrage et la prévention des bugs

 

  • Mesurer la capacité à livrer de la valeur.  Identifier constamment les freins et les lever > auto organisation

 

  • L’auto organisation implique un changement d’état d’esprit (attention aux conflits et aux déceptions)

 

  • Ne pas en faire trop!  (gérer le déséquilibre constant)

Le rôti 

FeatureTeams Devops & Microservices

By Mikael KROK

FeatureTeams Devops & Microservices

Quand l'organisation grandit on peut soit dédier des équipes à des tâches techniques spécifiques (organisation horizontale) soit développer toutes les compétences pour qu'une équipe soit capable de développer, tester, déployer (organisation verticale). Comment peut on s'organiser pour réduir les adhérences en s'inspirant de la culture Agile (Scrum et organisation à l'échélle) s'inspirant de la culture DevOps (réduire l'écart Dev-Ops et rendre l'équipe capable de livrer - vite et bien) donnant une approche produit / fonctionnalité avec une approche microservice Il y a des défauts à cette organisation, et nous donnerons des pistes pour lutter contre une trop grande hétérogénéité des équipes (techno, compétence) avoir une gouvernance globale au niveau de l'architecture créer un mindset global

  • 765