Sustaining Engineering teams

Nous avons récemment mis en place au sein de notre organisation des équipes de soutien à l’ingénierie (Sustaining Engineering Teams). Ces équipes ont pour rôle d’aider les équipe de développement des fonctionnalités, à pouvoir développer de manière qualitative et sécurisée.
En effet, plus un logiciel vieillit, plus la sécurité du développeur amené à le faire évoluer est difficile à assurer. La sécurité du développeur étant intimement liée à sa capacité à maintenir la qualité de ses productions

set

Nos logiciels commencent à approcher les 10 ans d’âge, et cela se ressent dans certaines parties du code : technologies obsolètes, accumulation de réédition du code pour l’ajout de fonctionnalités, mauvais découpage en couches…
Lorsqu’un développeur est amené à faire évoluer ces parties logicielles, son métier devient subitement plus risqué que sur les parties « neuves ». Difficulté à tester à cause du design du code, technologie compliquée, absence de tests permettant de comprendre le domaine fonctionnel couvert par les méthodes… les raisons de cette insécurité sont en fait très variées.

Afin d’y remédier, nous avons mis en place des équipes de soutien à l’ingénierie. Ces équipes définissent elles mêmes leur roadmap à partir des besoins des équipes en charge de développer les fonctionnalités de nos clients. Par exemple, elles vont rationaliser l’architecture en charge de la gestion des autorisations d’accès des utilisateurs au produit, afin que la prochaine fonctionnalité développée soit sécurisée plus simplement qu’avec l’architecture précédente. Ou encore, elles vont proposer une nouvelle manière de découper ses services pour les rendre plus facilement testables.

Le but primordial derrière la sécurité apportée au développeur de fonctionnalité, est aussi la capacité à produire plus vite. En augmentant la sécurité à manipuler le code, on va intrinsèquement augmenter la capacité à faire de la qualité et de la productivité.

On peut par exemple symboliser l’état du logiciel existant par une machine, qui a une certaine productivité. En effet, le logiciel dans lequel on va ajouter une fonctionnalité est l’environnement du code de cette fonctionnalité. Ainsi les nouvelles fonctionnalités peuvent être symbolisées par le produit réalisé par ses machines
Voici un état fictif de l’usine (l’entreprise) et de ses machines avant intervention des équipes de soutien
factory1

La mission de l’équipe de soutien va être de cibler les refactorings, les projets de rationalisation de l’architecture, qui vont augmenter la productivité des machines. Afin que les équipes qui produisent les nouvelles fonctionnalités puissent le faire plus rapidement qu’avant leur intervention.

factory2

Ainsi, les équipes de soutien à l’ingénierie sont les équipes en charge de la maintenance de l’environnement dans lequel évoluent les équipes de développement des fonctionnalités à usage des clients

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s