Savez-vous ce qu'est le DPE ?

Savez-vous ce qu'est le DPE ?
Gerónimo
Gerónimo
Fractional CTO
3 min read

DPE signifie Developer Productivity Engineering et c’est le nom d’une nouvelle discipline qui vise \u00e0 am\u00e9liorer la productivit\u00e9 des d\u00e9veloppeurs \u00e0 travers l’automatisation, l’observabilit\u00e9 et l’am\u00e9lioration des outils.

Le travail d’un d\u00e9veloppeur lorsqu’il programme comporte trois phases : code -> build -> test. Le d\u00e9veloppeur r\u00e9p\u00e8te cette s\u00e9quence 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\u00e9veloppeur effectue 10 builds par jour, cela fait 50 minutes d’attente par jour pour le d\u00e9veloppeur. De m\u00eame, la phase de test peut augmenter le temps d’attente du d\u00e9veloppeur. Multipliez cela par le nombre de d\u00e9veloppeurs dans une entreprise et le co\u00fbt est significatif.

C’est un probl\u00e8me bien connu dans de nombreuses grandes entreprises, qui depuis des ann\u00e9es ont des \u00e9quipes et des divisions enti\u00e8res d\u00e9di\u00e9es \u00e0 y travailler. Je me souviens que lorsque je travaillais chez Amadeus, il y a plus de dix ans, il y avait une \u00e9quipe Dev Support charg\u00e9e de d\u00e9velopper et d’optimiser les outils que nous, d\u00e9veloppeurs, utilisions pour les builds et autres t\u00e2ches de d\u00e9veloppement. Et depuis quelques ann\u00e9es, l’industrie parle de la Developer Experience (ou DevEx), qui met l’accent sur la fa\u00e7on d’am\u00e9liorer l’exp\u00e9rience de d\u00e9veloppement logiciel et, avec elle, les r\u00e9sultats financiers de l’entreprise.

Cependant, dans les entreprises plus petites ou moins matures technologiquement, le degr\u00e9 d’optimisation de l’environnement et de l’exp\u00e9rience de d\u00e9veloppement d\u00e9pend largement du temps consacr\u00e9 par chaque programmeur individuellement. Personnellement, j’ai vu d’\u00e9normes diff\u00e9rences dans les outils et l’environnement de d\u00e9veloppement de deux programmeurs d’une m\u00eame \u00e9quipe, se traduisant par des heures de diff\u00e9rence de productivit\u00e9 par semaine. Cela \u00e9quivaudrait \u00e0 donner un PC beaucoup plus lent \u00e0 certains programmeurs, par exemple.

Le DPE propose une s\u00e9rie de techniques et de pratiques qui peuvent \u00eatre appliqu\u00e9es pour am\u00e9liorer la productivit\u00e9 de toute l’\u00e9quipe.

  • Build Caches (locaux et distants) : Exploiter les builds pass\u00e9s pour acc\u00e9l\u00e9rer les nouveaux builds.

  • Distributed Test Execution : Permet l’ex\u00e9cution de tests de mani\u00e8re parall\u00e8le et distribu\u00e9e sur une infrastructure d\u00e9di\u00e9e, r\u00e9duisant le temps de mani\u00e8re significative.

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

  • Monitoring : Permet d’extraire des m\u00e9triques de productivit\u00e9, de d\u00e9tecter les probl\u00e8mes, d’appliquer des optimisations globales et de mesurer les am\u00e9liorations.

Ces techniques ne s’appliquent pas uniquement \u00e0 l’environnement local, mais aussi \u00e0 l’am\u00e9lioration de l’infrastructure CI/CD et de test. Permettant des gains et des r\u00e9ductions de temps tout au long du cycle de d\u00e9veloppement logiciel.

Je pense que donner un nom \u00e0 cette discipline est la premi\u00e8re \u00e9tape pour lui donner de la visibilit\u00e9, commencer \u00e0 en parler et la d\u00e9mocratiser. Tout comme le DevOps est devenu un pilier de chaque entreprise de logiciel, le DPE peut \u00eatre la prochaine \u00e9tape vers un environnement de d\u00e9veloppement plus productif, qui r\u00e9duit le time to market, augmente la qualit\u00e9 du logiciel, augmente le bonheur des d\u00e9veloppeurs (et leur r\u00e9tention) et contribue en fin de compte \u00e0 des clients plus satisfaits.

L’appliquez-vous d\u00e9j\u00e0 dans votre entreprise ? Si vous souhaitez en savoir plus et voir comment vous pouvez en b\u00e9n\u00e9ficier, je peux vous aider. Vous pouvez me contacter ici.

Blog cto devex dpe productivit\u00e9 programmation