L'image du développeur isolé, passant son temps à taper du code sur son écran, n'a pas grand-chose à voir avec la réalité. Dans les faits, les développeurs ont des journées qui ressemblent beaucoup à celles d'autres employés en col blanc. Ils passent une bonne partie de leur temps à s'occuper de tâches périphériques à leur métier, à résoudre des problèmes, à collaborer et à remplir des obligations administratives. Tant et si bien que, selon une enquête de ZeroTurnaround (éditeur de JRebel) effectuée auprès de 1800 développeurs, ils ne s'occupent en moyenne que 15 heures par semaine à véritablement produire des lignes de code. Si ce chiffre peut surprendre, la production de code reste toute de même la principale activité des développeurs - on respire.

Selon le « Developer Productivity Report 2012 » de ZeroTurnaround, les programmeurs passent beaucoup de temps à des activités liées au développement, sans être de la production de code au sens strict. Les tâches opérationnelles, telles que les builds, les déploiements, le hardware et les logiciels les occupent ainsi quelque quatre heures par semaine. Idem pour les questions de stratégie (architecture, réflexion, refactoring). Deux heures par semaine sont dévolues en moyenne au contrôle qualité (reviews, tests) et quelque cinq heures à la résolution de problèmes, qu'il s'agisse de debugging ou d'optimisation de la performance.

Interruptions continuelles

Toutes ces activités périphériques ont pour effet pervers de distraire et d'interrompre les développeurs dans leur travail. « Les interruptions sont la principale cause de perte de productivité. [...] Il faut parfois jusqu'à 25 minutes pour se focaliser à nouveau sur sa tâche originale », explique Lincoln Baxter, développeur senior chez Red Hat.

Comme d'autres métiers, les développeurs emploient également une grande partie de leurs temps à des tâches organisationnelles et de reporting. Pour chaque heure passée à écrire du code, ils passent ainsi 30 minutes dans des meetings, à écrire des rapports, à rédiger des e-mails et à gérer leur feuille de présence.

Trop de temps passé à résoudre des problèmes

Plus inquiétant du point de vue de la productivité, les développeurs consacrent plus de temps à faire les pompiers qu'à créer des solutions. Selon le rapport de ZeroTurnaround, les diverses urgences et la résolution de problèmes prennent quelque sept heures hebdomadaires, alors que seulement six heures sont consacrées à la conception, aux tests et reviews, à la planification, à la stratégie d'architecture. Pour Lincoln Baxter, cette surcharge de problèmes s'explique notamment par des négligences en amont: « Soyons francs, nous sommes tous paresseux et pas aussi intelligents que nous ne le pensons. Avec une complexité des logiciels qui ne cesse de croître, avec des couches et dépendances qui s'accumulent, il n'y a aucune chance que nous comprenions tous les scénarios possibles, il y a donc un énorme manque de tests véritables dans notre domaine ».

Dans l'ensemble, plus de la moitié des développeurs interrogés par ZeroTurnaround jugent que l'excès de tâches parallèles les empêche de réaliser correctement leur travail. Les autres causes d'improductivité invoquées - tâches ennuyeuses, mauvais management, manque de motivation - ne sont pas propres au monde du développement et signalent plutôt des difficultés de gestion.

Enfin, le rapport se conclut par les facteurs de stress chez les développeurs. Ce qui les empêche de dormir? Respecter les dates limites, résoudre les problèmes de performance, se demander si leur code est assez bon, s'ils ont fait les bon choix, s'ils doivent apprendre de nouvelles choses. Bonne nouvelle néanmoins, la réponse la plus fréquente des développeurs à la question de savoir ce qui les maintient éveillé: « rien, je dors comme un bébé » !

ICTjournal.ch