Savez-vous ce qu'est le DPE ?

Gerónimo
Gerónimo
Fractional CTO
3 min de lecture

DPE signifie Developer Productivity Engineering et c’est le nom d’une nouvelle discipline qui vise à améliorer la productivité des développeurs à travers l’automatisation, l’observabilité et l’amélioration des outils.

Le travail d’un développeur lorsqu’il programme comporte trois phases : code -> build -> test. Le développeur répète cette séquence des dizaines voire des centaines de fois par jour. Et dans de nombreux cas, les phases de build et de test peuvent prendre de l’ordre de plusieurs minutes. Par exemple : si le build d’une application prend 5 minutes et que le développeur effectue 10 builds par jour, cela fait 50 minutes d’attente par jour pour le développeur. De même, la phase de test peut augmenter le temps d’attente du développeur. Multipliez cela par le nombre de développeurs dans une entreprise et le coût est significatif.

C’est un problème bien connu dans de nombreuses grandes entreprises, qui depuis des années ont des équipes et des divisions entières dédiées à y travailler. Je me souviens que lorsque je travaillais chez Amadeus, il y a plus de dix ans, il y avait une équipe Dev Support chargée de développer et d’optimiser les outils que nous, développeurs, utilisions pour les builds et autres tâches de développement. Et depuis quelques années, l’industrie parle de la Developer Experience (ou DevEx), qui met l’accent sur la façon d’améliorer l’expérience de développement logiciel et, avec elle, les résultats financiers de l’entreprise.

Cependant, dans les entreprises plus petites ou moins matures technologiquement, le degré d’optimisation de l’environnement et de l’expérience de développement dépend largement du temps consacré par chaque programmeur individuellement. Personnellement, j’ai vu d’énormes différences dans les outils et l’environnement de développement de deux programmeurs d’une même équipe, se traduisant par des heures de différence de productivité par semaine. Cela équivaudrait à donner un PC beaucoup plus lent à certains programmeurs, par exemple.

Le DPE propose une série de techniques et de pratiques qui peuvent être appliquées pour améliorer la productivité de toute l’équipe.

  • Build Caches (locaux et distants) : Exploiter les builds passés pour accélérer les nouveaux builds.

  • Distributed Test Execution : Permet l’exécution de tests de manière parallèle et distribuée sur une infrastructure dédiée, réduisant le temps de manière significative.

  • Predictive Test Selection : Au lieu d’exécuter tous les tests, exécuter uniquement les tests pertinents, en fonction du code modifié.

  • Monitoring : Permet d’extraire des métriques de productivité, de détecter les problèmes, d’appliquer des optimisations globales et de mesurer les améliorations.

Ces techniques ne s’appliquent pas uniquement à l’environnement local, mais aussi à l’amélioration de l’infrastructure CI/CD et de test. Permettant des gains et des réductions de temps tout au long du cycle de développement logiciel.

Je pense que donner un nom à cette discipline est la première étape pour lui donner de la visibilité, commencer à en parler et la démocratiser. Tout comme le DevOps est devenu un pilier de chaque entreprise de logiciel, le DPE peut être la prochaine étape vers un environnement de développement plus productif, qui réduit le time to market, augmente la qualité du logiciel, augmente le bonheur des développeurs (et leur rétention) et contribue en fin de compte à des clients plus satisfaits.

L’appliquez-vous déjà dans votre entreprise ? Si vous souhaitez en savoir plus et voir comment vous pouvez en bénéficier, je peux vous aider. Vous pouvez me contacter ici.

cto devex dpe productivité développement logiciel