Programmation sans ego

La programmation sans ego (Egoless programming) est un style de programmation des ordinateurs dans lequel les facteurs personnels sont minimisés, de façon à améliorer la qualité. Les méthodes de coopération suggérées sont semblables à celles utilisés dans d'autres projets collectifs, comme Wikipédia.

Origine modifier

Gerald Weinberg a proposé le premier ce concept dans son livre The Psychology of Computer Programming[1].

Revues de code modifier

Pour vérifier la qualité, le code est passé en revue par d'autres programmeurs. Le concept de programmation sans ego insiste sur le fait que ces revues soient faites dans un esprit amical, collégial, en laissant de côté les sentiments personnels. Une lecture structurée est un moyen de faire de telles revues[2].

Forces modifier

  • Fonctionne mieux pour les tâches complexes.
  • Des canaux de communication ouverts permettent aux informations de circuler librement entre les membres de l'équipe.
  • Une plus grande conformité qui contribue à une documentation cohérente.
  • Les membres de l'équipe sont plus satisfaits de leur travail.

Faiblesses modifier

  • Les projets sont plus longs à réaliser.
  • Les projets connaissent un taux d'échec plus élevé en raison de la nature décentralisée et du volume de la communication entre les membres de l'équipe.
  • Phénomène de changement risqué - Les programmeurs tentent des solutions plus risquées pour résoudre un problème logiciel.
  • Les tâches simples sont rendues plus difficiles par des canaux de communication ouverts.

Concepts rivaux modifier

La programmation sans égo minimise explicitement les contraintes de hiérarchie et de statut afin de permettre le libre échange d'idées et d'améliorations. On peut l'opposer au concept d'équipe de programmeurs en chef qui met l'accent sur la spécialisation et la direction des équipes afin qu'elles travaillent de manière plus disciplinée.

Notes et références modifier

  1. (en) Gerald M. Weinberg, The Psychology of Computer Programming, Van Nostrand Reinhold, (lire en ligne)
  2. Karl Eugene Wiegers, Peer Reviews in Software : A Practical Guide, Addison-Wesley, (ISBN 0201734850, lire en ligne), p. 14