Que faire pour minimiser l'impact des interruptions sur l'activité de développement de logiciels ?
Appliquer les méthodes Agile ?

Le , par Patrick Ruiz, Chroniqueur Actualités
Imaginez quelles conséquences pourraient avoir le fait d’interrompre un électricien alors qu’il est en train d’essayer de finaliser la pose d’une boîte de dérivation sur un mur fait de parpaing. C’est un fait, interruption d’une activité humaine et répercussions (négatives – même si dans certains cas c’est l’inverse) sont fortement corrélées. Cela est valable, quel que soit le corps de métier auquel on appartient, mais celui sur lequel on veut focaliser participe à ce qu’on appelle désormais la nouvelle économie ; on parle des informaticiens.

Interrompre un développeur de logiciels peut créer un trou noir dans son flux de réflexion alors même qu’il est rendu à un stade où la solution à un problème pointe à l’horizon. Dès lors, l’impact minimal est une rallonge du temps à consacrer à la tâche en question. Des études à ce sujet montrent en effet que suite à une interruption de 5 minutes, le regain de productivité chez un programmeur ne se produit qu’après une heure, parfois plus. Dans le cadre d’une conférence pour les développeurs du langage Ruby, le directeur technique de FutureLearn – une plateforme d’apprentissage en ligne – a livré son avis sur la question.


Toutes les « vieilles marmites » de l’univers du développement de logiciels ont été confrontées à l’ascension de ce qui peut être considéré comme l’Everest en informatique : courir après la cause d’un bogue tenace, effectuer une mise à jour majeure, migrer d’un framework à un autre, etc. Comment se comportent-elles pour que les interruptions qui sont une réalité sur le lieu de travail impacte peu (ou pas) sur leur travail ?

Le CTO de FutureLearn fait un jet préliminaire à ce propos en précisant que les break impactent beaucoup plus sur l’activité des développeurs qui optent pour la résolution de « gros problèmes » en une fois, autrement dit, ceux qui n’appliquent pas une des règles du génie logiciel qui consiste à subdiviser le problème en sous-ensembles moins complexes. Chez FutureLearn on est très probablement pro Agile puisque, par la suite, ce dernier prescrit la mise en œuvre du story mapping, une technique utilisée dans la définition macroscopique des besoins de l’utilisateur d'un produit. Le développement piloté par les tests (Test Driven Development en anglais) fait partie du flux de travail des adeptes des méthodes Agile et c’est sans surprise que le directeur technique le prescrit comme complément à la subdivision, ce, en plus d’autres dispositions relatives à l’hygiène des modifications apportées aux fichiers du projet.


Seulement, la division d’un problème en sous-ensembles relève-t-elle du trivial ? De plus, la mise en œuvre des méthodes Agile serait l’une des raisons de l’accumulation des dettes techniques de certaines entreprises. Erik Meijer, un célèbre développeur de l’écosystème .NET, s’est exprimé sur la question en 2015 et a déclaré que « l’application de l’agilité dans des projets fait beaucoup plus parler sur le code que l’écrire. » Son intervention fait suite à celle de David Heinemeier Hansson, créateur de Ruby On Rails qui, en 2014, a affirmé que les tests unitaires ne sont pas bénéfiques.

Il est manifeste que ces derniers opteraient très difficilement pour ces méthodes dans le but de minimiser l’impact des interruptions sur l’activité d’un développeur. Mais, à chacun sa position et le CTO de FutureLearn n’a fait qu’exposer la sienne.

Source : dev.to

Et vous ?

Y a-t-il une relation entre la capacité à diviser un problème en sous-ensembles et la minimisation de l’impact des interruptions sur l’activité d’un développeur ?

La denrée « concentration » est-elle plus importante pour le développeur que pour tout autre travailleur ?

Le développement du CTO de FutureLearn laisse penser que les milieux de travail pro Agile sont idéaux pour minimiser l’impact des interruptions sur le travail d’un développeur. Qu’en pensez-vous ?

Votre entreprise a-t-elle adopté les méthodes Agile ? Si oui, comment ce choix impacte-t-il sur votre capacité à poursuivre une tâche après une interruption ?

Que pensez-vous de ce qui suggère de se munir d’un casque pour empêcher d’être interrompu ou distrait ?

Voir aussi :

« Agile est un cancer », pour Erik Meijer, qui estime qu'il doit être banni une fois pour toutes

« Le TDD est mort » pour le créateur de Ruby on rails, une position qui divise la communauté agile

La méthode agile SCRUM est-elle une mauvaise méthode de gestion de projet ? Oui, répond un professionnel du secteur

Le département américain de la défense adopte agile et la méthode Scrum sous les conseils de Jeff Sutherland, inventeur de Scrum


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de MadiPoupou MadiPoupou - Membre à l'essai https://www.developpez.com
le 07/05/2018 à 9:48
Personnellement, j'ai souvent du mal à me concentrer pleinement. En fait c'est plutôt par phases. Parfois, lorsqu'on est au coeur d'un projet et que la pression monte pour terminer "dans les temps" (c'est possible ça?), je parviens à me focaliser sur l'objectif immédiat et à ne pas décrocher. Mais lorsque la tension est un peu moins palpable, je dois vraiment faire des efforts pour rester focus.
Après, il faut avouer que pour un développeur, parvenir à se centrer sur le boulot est fondamental. On bosse la plupart du temps sur des problématiques qui demandent de réfléchir en continu. Si tu décroches en pleine réflexion, il faudra parfois cinq minutes pour retrouver le fil de ta pensée.

Pour ce qui est des solutions... J'utilise des boules Quies pour me couper du "brouhaha" permanent. C'est vraiment efficace pour oublier le monde extérieur. Parfois, un casque avec un peu de musique classique, c'est apaisant et ça ne distrait pas trop. Sinon, l'évidence, c'est qu'il faut savoir régulièrement sortir la tête de l'écran pour souffler. On se lève simplement pour faire quelques pas, on va prendre un peu l'air, etc. Ces cinq minutes de relâche peuvent parfois faire gagner beaucoup de temps sur une journée de travail. Le nez dans le guidon, c'est jamais bon
Avatar de Anselme45 Anselme45 - Membre confirmé https://www.developpez.com
le 07/05/2018 à 10:06
Que faire pour minimiser l’impact des interruptions sur l’activité de développement de logiciels ?
Appliquer les méthodes Agile ?
Il n'existe pas de solution miracle... Agile, Scrum, blabla, pas plus que les autres!

On peut tester Agile mais il convient ensuite d'en vérifier l'efficacité... car disons le une fois de plus: Une méthode sera efficace dans un cas mais pas dans l'autre...
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 07/05/2018 à 10:08
Il est vrai que le break est un vrai problème, particulièrement important dans notre activité.

<mode prof>Pour bien comprendre cela, il faut se référer à la neurologie, qui a bien mis en évidence que notre cerveau est "optimisé" pour ne gérer qu'une tâche à la fois (désolé mesdames, mais c'est aussi votre cas), le multitâche n'étant vraiment pas sa tasse de thé. Du coup, le "changement de contexte" est une tâche à part entière, qui a elle-même un coût.</mode prof>

A mon avis, il faudrait quasiment inverser le fonctionnement actuel : au lieu que les CP / Scrum Masters / etc ... demandent constamment l'information au développeur, ils devraient aller eux-mêmes la chercher, en étant le moins intrusif possible. OK, c'est utopique et certaines informations ne pourront venir que du développeur, mais en utilisant correctement les outils d'ALM, on peut fortement réduire la pression, et ça diminuerait l'impact du break.

Ca, c'est ma théorie perso ; qu'en pensez-vous ?

Sinon, un point qui m'énerve au plus au point :
Erik Meijer, un célèbre développeur de l’écosystème .NET, s’est exprimé sur la question en 2015 et a déclaré que « l’application de l’agilité dans des projets fait beaucoup plus parler sur le code que l’écrire. »
NON !!!!!!! C'EST ENTIEREMENT FAUX !!! IL N'A JAMAIS DIT CELA !!!!
Il a dit que c'était la MAUVAISE application de l'agilité qui faisait du mal, comprendre les gens qui font n'importe quoi en le baptisant leur bousin "Agilité" !
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 07/05/2018 à 10:40
On mélange AGILE et tests unitaires.
Selon moi c'est différent.

Le problème avec leurs méthodes, c'est que tout doit être AGILE ou unit testé.
Forcement ça prend du temps.
Il faut mixer les méthodes et faire des tests unitaires quand c'est nécessaire, de même que découper un projet en layer... Parfois il faut se limiter au nombre de layers.
Avatar de fayabobo fayabobo - Membre à l'essai https://www.developpez.com
le 07/05/2018 à 10:57
Moi j'utilise au quotidien la pmodoro technique: https://fr.wikipedia.org/wiki/Technique_Pomodoro
Et dans cette technique, il faut avoir bien subdivisé tes tâches.
J'ai ensuite adapté la technique pour tenir compte de mes capacités: voici mon cycle de pomodori: 20 minutes de travail - 5 minutes de pause - 20 minute de travail - 5 minutes de pause - 20 minutes de travail - 15 à 20 minutes de pauses, etc...

Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 07/05/2018 à 11:10
Citation Envoyé par fayabobo Voir le message
Moi j'utilise au quotidien la pmodoro technique: https://fr.wikipedia.org/wiki/Technique_Pomodoro
Et dans cette technique, il faut avoir bien subdivisé tes tâches.
J'ai ensuite adapté la technique pour tenir compte de mes capacités: voici mon cycle de pomodori: 20 minutes de travail - 5 minutes de pause - 20 minute de travail - 5 minutes de pause - 20 minutes de travail - 15 à 20 minutes de pauses, etc...

En gros tu fais 2h de pause sur ta journée
Avatar de zatura zatura - Membre régulier https://www.developpez.com
le 07/05/2018 à 11:35
Citation Envoyé par hotcryx Voir le message
En gros tu fais 2h de pause sur ta journée
Et alors s'il est plus efficace comme ça ? Surtout que ce qu'il appelle pause ça peut très bien être passer 5mn sur twitter et donc faire de la veille technique en partie.
Avatar de el_slapper el_slapper - Expert éminent sénior https://www.developpez.com
le 07/05/2018 à 12:00
Nos développeurs ont mis en place une méthode un peu brutale : on a le droit de les déranger entre 14h et 15h. Sinon, on passe par la big boss, et c'est elle qui décide si c'est assez urgent pour interrompre le développeur. Elle dit souvent oui, mais sert surtout de dissuasion...

(le chef qualité, donc le mien, lui, a décrété que les interruptions faisaient partie du travail. Comme ça ne m'arrive pas souvent, je fais avec. Si c'était fréquent, je pense que je gueulerais).
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 07/05/2018 à 12:35
Citation Envoyé par zatura Voir le message
Et alors s'il est plus efficace comme ça ? Surtout que ce qu'il appelle pause ça peut très bien être passer 5mn sur twitter et donc faire de la veille technique en partie.
Les employeurs ne seront pas du même avis, ni les collègues jaloux... même si il est plus productif.
Avatar de datalandia datalandia - Bot Troll en alpha-test https://www.developpez.com
le 07/05/2018 à 13:56
je trouve que les méthodes agiles personnellement apparente a du bullshit
Contacter le responsable de la rubrique Accueil