web-dev-qa-db-fra.com

Comment expliquer à un profane pourquoi un développeur ne devrait pas être interrompu pendant qu'il est au plus près du codage?

Si vous considérez simplement la deuxième partie de ma question, "Pourquoi un développeur ne devrait-il pas être interrompu pendant qu'il est au plus près du codage", qui a été discuté à plusieurs reprises par des gens intelligents. Heck, même le co-fondateur de SO, Joel Spolsky, a écrit un article de blog sur "entrer dans la zone" et "être mis hors de la zone" et pourquoi il faut en moyenne 15 minutes pour atteindre la productivité lors de la participation à des tâches complexes liées au développement de logiciels. Je pense donc que le pourquoi a été établi.

Ce qui m'intéresse, c'est comment expliquer tout cela à quelqu'un qui ne connaît pas les beans sur Beans (khmm je veux dire le développement de logiciels). Comment dire à la femme, ou au drôle de comptable du lieu de travail, ou à l'ami de longue date qui vous envoie des pings sur Skype toutes les 30 minutes avec un "Wazzzzzzup ?!", que toutes les interruptions ont un impact beaucoup plus profond sur votre travail que les 30 secondes évidentes qu'ils ont pris de votre temps. Évidemment, vous ne pouvez pas l'expliquer par des phrases comme "Je dois jongler avec beaucoup de noms de variables dans ma mémoire à court terme" à moins que vous ne vouliez être la cible de regards vides ou d'abus amicaux.

J'aimerais pouvoir expliquer tout cela aux non-développeurs d'une manière qui leur fera comprendre clairement - sans être offensant, élitiste ou trop technique.

EDIT: Merci à tous pour leurs excellentes idées. J'ai accepté réponse d'EpsilonVector car son analogie était la plus proche de mes besoins d'origine. L'explication "s'endormir" n'est ni offensante ni technique, presque tout le monde peut s'y rapporter, et les conséquences d'être dérangé en s'endormant ou en étant dans la zone sont très similaires: vous ressentez de la frustration et vous "perdez" 15-20 minutes de temps.

92
András Szepesházi

Essayez les analogies suivantes: Première: "Combien de temps vous faut-il pour vous endormir?" "X minutes" "Imaginez maintenant que lorsque vous êtes sur le point de vous endormir, quelqu'un entre et vous interrompt, combien de temps cela vous prendra-t-il pour vous endormir maintenant? Ces quelques secondes qu'il vous restait, ou devrez-vous recommencer à ' couler "où vous étiez?" "Je vais devoir recommencer" "Génial. Même chose. Tout comme l'endormissement, il me faut un certain temps pour" sombrer "en mode de mise au point, et il me faut du temps pour y revenir une fois que je suis interrompu, sauf que j'oublie aussi la moitié de ce que je faisais. "

Deuxième: "Vous savez comment lorsque vous lisez un livre, vous vous y enfoncez" après un certain temps, vous ne remarquez même plus les mots, vous bloquez tout autour de vous et êtes totalement immergé dans les images mentales. tu vois." "Oui." "Combien de temps vous faut-il pour y arriver?" "Environ X minutes" "Imaginez maintenant que lorsque vous êtes plongé dans le livre, quelqu'un entre et vous interrompt, combien de temps vous faudra-t-il pour y revenir? Cela arrivera-t-il immédiatement ou devrez-vous recommencer à ' couler "où vous étiez?" "Je vais devoir recommencer" "Génial. Même chose. Tout comme avec la lecture, il me faut un certain temps pour 'sombrer' en mode de mise au point, c'est tout aussi ennuyeux quand quelqu'un m'en casse, et ça me prend juste aussi longtemps pour y revenir une fois que je suis interrompu, sauf que j'oublie aussi la moitié de ce que j'ai lu. "

124
EpsilonVector

Je ne pense pas que l'état de rêverie que Joel décrit soit technique. C'est le même changement de cerveau droit que quiconque éprouve lorsqu'il dessine ou tombe sous le charme d'un très bon livre. (Le "Dessin sur le côté droit du cerveau" de Betty Edwards le décrit parfaitement.) Tout le monde a connu ce sentiment de concentration où vous n'êtes pas au courant du passage du temps.

Je pense qu'il est condescendant dès le départ d'imaginer que c'est quelque chose que seuls les techniciens comprennent, que le concept doit être simplifié pour que les non-développeurs le comprennent. Expliquez simplement en langage clair - ils l'obtiendront.

30
duffymo

Réacheminez votre fil interne vers les E/S verbales, c'est-à-dire tournez-vous quand ils vous interrompent et continuez à marmonner le code et à regarder au milieu jusqu'à ce qu'ils abandonnent et s'en vont. S'ils parlent, marmonnez plus fort.

23
Peter

Dites-leur que coder (ou insérer ici une autre activité à forte concentration), c'est comme être un artiste de cirque qui fait le les plaques tournantes agissent .

D'abord, vous commencez par faire tourner une assiette sur un bâton, lancez-vous, puis commencez à faire tourner une deuxième assiette, lancez-vous, revenez à la première assiette, donnez-lui un peu d'essorage supplémentaire pour continuer, puis commencez à faire tourner une troisième assiette , lancez-vous, puis revenez à la deuxième plaque, petit tour supplémentaire, première rotation supplémentaire, troisième rotation supplémentaire, puis commencez à tourner quatrième, etc.

Ensuite, le téléphone sonne et toutes les plaques tombent.

L'état de flux a disparu. Vous devez maintenant tout recommencer. Faites tourner une assiette ...

J'aime à considérer chaque plaque comme un bloc de données, variable, concept, état, etc. que vous devez conserver dans votre tête.

16
Dhaust

Il y a quelques mois, j'ai demandé à quelqu'un d'entrer dans mon cube et de retirer mes écouteurs pendant que je codais. Mis à part la fureur interne, mon approche consistait à expliquer que les programmeurs sont souvent plongés dans une pensée logique qui nécessite une approche différente et concentrée de la pensée et qu'une interruption soudaine peut vraiment gâcher le processus de pensée. Cela n'est plus arrivé de cette personne, alors ça a peut-être fonctionné. Une autre chose que vous pourriez considérer est le signe occupé/libre. J'ai un ami qui fait des algorithmes et il a un signe bilatéral qui dit "Codage - N'interrompez pas" d'un côté et "Libre de discuter" de l'autre. Supprimer l'ambiguïté est la clé ici.

13
n1reu

Ok, j'ajoute ma propre réponse (je sais que c'est un peu idiot, mais peut-être que cela jette un peu plus de lumière sur ce que je visais).

J'ai dit ce qui suit à quelqu'un qui m'a interrompu récemment à un mauvais moment: "Développer un logiciel, c'est comme conduire une voiture sur une route très fréquentée pour la première fois de votre vie. Toute votre attention est concentrée sur le volant et les pédales et les voitures se précipiter autour de vous, et vous n'avez tout simplement pas d'attention supplémentaire pour un joli chat. Si vous commencez à vous concentrer sur le sujet du chat, vous perdrez forcément le contrôle de la voiture et vous vous retrouverez dans une accident".

C'était une chose à laquelle la personne pouvait s'identifier, mais c'est loin d'être une bonne analogie. Si je suis interrompu, la conséquence sera très différente d'un accident. Je fais du développement sw depuis 2 décennies, alors pourquoi comparer cela à quelque chose qui est fait pour la première fois. Etc.

12
András Szepesházi

" Mihaly Csikszentmihalyi on flow " est un bon TED Talk sur cette idée d'être vraiment productif dans certaines conditions qui peuvent ou non plaire aux gens. N'oubliez pas que pour certaines personnes, ils ne voudront peut-être jamais comprendre l'explication et que c'est un peu comme battre le cheval mort récursivement à l'infini.

7
JB King

Je l'appelle une transe de programmeurs. Il y a beaucoup de bonnes analogies ici, alors quoi de plus hein? Comme cela a été dit précédemment, un programmeur naviguera mentalement sur plusieurs flux logiques différents jusqu'à ce que celui de droite se présente. PUIS il est écrit en code et enregistré sur l'ordinateur.

Supposons donc que vous rédigiez un article à terme ou un document important. Les pensées se transforment en mots dans l'ordinateur mais vous n'avez pas encore enregistré les modifications. Alors pouf, le courant passe ou l'ordinateur tombe en panne. Récupérer tout cela prendra aussi longtemps ou plus longtemps et ne sera jamais le même que l'original. (Combien d'entre nous, les anciens, ont eu cela?)

C'est ce qui arrive au code dans votre tête lorsqu'il est interrompu. Les pensées sont aussi fragiles que la fumée. S'ils n'ont pas encore été sauvés et que quelque chose vient les perturber, ils sont partis.

4
R Hughes

Cher collègue distingué, Dans un effort pour devenir plus efficace, je me concentre sur mon travail et je réponds aux questions par courrier électronique à certains moments entre les travaux pour limiter au minimum les interruptions afin de mieux vous servir et Nom de l'entreprise _. Veuillez m'envoyer un e-mail et je vous répondrai dès que possible. Je vous remercie.

3
user16784

Si vous écoutez de la musique, placez un panneau qui dit quelque chose comme

Headphones on? Please do not interrupt.

Ceci n'est efficace que si quelqu'un lit et que vous n'avez pas toujours vos écouteurs.

2
Ian Potter

Je le vois comme un grand réseau de connexions complexes que je dois construire dans mon esprit, une structure de relations imbriquées qui s'affectent de manière variable, pas toujours évidente, qui doivent toutes être comprises et conservées clairement au point lorsque j'écris du code. La construction de ce site Web prend de 5 à 15 minutes sur un projet que je connais raisonnablement bien, et plusieurs fois sur un moins intime.

Lorsque ma concentration est interrompue, le Web commence à s'effondrer, et si l'interruption dure plus de quelques secondes o je suis obligé de penser à autre chose, même légèrement complexe ("Quand le serveur est allé la semaine dernière, qu'avez-vous dit au client? "), le Web s'effondre complètement. Une fois l'interruption terminée, je dois reconstruire l'ensemble du Web, en grande partie à partir de zéro.

Si cela me prend 10 minutes pour créer le Web et que je suis interrompu pendant seulement 2 minutes trois fois par heure, vous devez comprendre qu'au lieu de coder pendant 50 minutes, je ne fais que 24 minutes de travail. Ces 3 minuscules interruptions réduisent ma productivité en moitié.

2
Matthew Frederick

Neil Ford en a parlé le dernier Devoxx. Il a écrit un livre à ce sujet: Le programmeur productif. Il explique des conseils sur les disjoncteurs "d'écoulement". Si vous êtes dans le flux, vous êtes à votre point de concentration le plus élevé. Mais si vous êtes interrompu, il faut + -20 minutes pour revenir dans votre flux.

Vous voudrez peut-être leur expliquer que si vous sortez de votre flux, votre mémoire à accès aléatoire dans votre cerveau perd les données sur ce que vous travaillez et vous avez besoin de 20 minutes pour récupérer les données en vous RAM ;)

1
Jeff

Je ne sais pas pour le reste mais pour Skype au moins je suggérerais d'utiliser le mode "Ne pas déranger". Et si vous devez l'utiliser pour communiquer au travail, avoir un deuxième compte professionnel uniquement que vous ne partagez avec personne que vous ne voulez pas vous déranger au travail :)

0
sashoalm

Je mets généralement le statut suivant sur mes clients de messagerie instantanée:

Je suis au travail et comme je ne peux pas effectuer plusieurs tâches, ne me dérangez pas ...

Au moins, il semble faire l'affaire avec le

ami de longue date qui vous envoie un ping sur Skype toutes les 30 minutes avec un "Wazzzzzzup ?!"

0
Yaneeve

Vous pouvez essayer d'expliquer, mais vous pouvez également essayer ceci:

Vous les interrompez eux , alors qu'ils font quelque chose qui nécessite une concentration profonde, qu'il s'agisse de lire, de regarder un film, de calculer ou encore mieux de compter quelque chose. Ensuite, tout ce que vous avez à expliquer est que c'est exactement comme ça pour vous quand ils vous interrompent. Devrait faire l'affaire. S'il vous plaît, ne les dérangez pas pendant qu'ils conduisent ou quelque chose comme ça :).

0
Goran Jovic

Je n'explique pas. Je les informe avec bonté que l'interruption vient d'ajouter 6 semaines au calendrier.

0
Throwback1986

Ce que je fais au bureau, c'est de trouver des points de hotdesk (cachettes) dans différents départements du bureau, de cette façon, personne ne sait où vous êtes et ne peut pas vous déranger, mais si ce n'est pas une option, obtenez simplement une pancarte et expliquez-la. à moins qu'il ne soit d'une importance vitale, ne dérangez pas!

0
kyndigs

Cela ne doit pas être compliqué. Quelque chose d'aussi simple et non hostile que "Je travaille sur quelque chose qui demande beaucoup de concentration. Peut-on le mettre dans un e-mail? Je promets de le regarder dès que j'aurai fini ici."

0
Andy Lester