Faire une chose à la fois

Arrêtez de faire deux choses à la fois. Dans la vie et dans le développement logiciel. C’est simple, mais je me bats chaque jour pour essayer de faire appliquer cette idée. Certains pensent gagner du temps en mélangeant plusieurs sujets, en les validant et les poussant en même temps.

Pourquoi ça foire ?

Vous êtes super fort, vous testez tout. Vous avez un méga framework de tests, et il n’y a jamais de problème lors du déploiement. Vous êtes probablement génial et très chanceux. Mais c’est rare. En règle général, l’Emmerdement Maximum stipule clairement que si quelque chose peut foirer, cela va foirer. Je l’ai vérifié, c’est vrai.

Pourquoi c’est le bordel si ça foire ?

Si vous avez déployé 2 sujets différents en même temps, les avez mis dans la même pull-request, et que l’un introduit un bug en production, vous devrez reverter les 2 sujets, et donc vous perdez le bénéfice de ce qui marche. S’il n’y a pas de dépendance dans le code, vous en avez créé une à cause de votre processus de développement.

Conclusion

  • ne jamais mêler deux nouvelles features indépendantes dans la même pull-request
  • ne jamais déployer deux features en prod en même temps

C’est pour cela que l’integration et le déploiement continus existent, pour permettre de déployer rapidement, sans douleur et revenir en arrière si besoin facilement.