Come spiegare a un non addetto ai lavori perché uno sviluppatore non dovrebbe essere interrotto durante la programmazione del codice? [chiuso]


92

Se prendi in considerazione solo la seconda parte della mia domanda, "Perché uno sviluppatore non dovrebbe essere interrotto mentre è immerso nel codice", che è stato discusso più volte da persone intelligenti. Heck, anche il co-fondatore di SO, Joel Spolsky, ha scritto un post sul blog su "entrare nella zona" e "essere eliminato dalla zona" e perché ci vogliono in media 15 minuti per raggiungere la produttività quando si partecipa a complessi, attività relative allo sviluppo di software. Quindi penso che il motivo sia stato stabilito.

Quello che mi interessa è come spiegare tutto ciò a qualcuno che non conosce i fagioli sui fagioli (khmm intendo lo sviluppo del software). Come dire alla moglie, o al simpaticone della contabilità sul posto di lavoro, o all'amico di lunga data che ti chiama su Skype ogni 30 minuti con un "Wazzzzzzup ?!", che tutte le interruzioni hanno un impatto molto più profondo sul tuo lavoro rispetto a gli ovvi 30 secondi che hanno impiegato dal tuo tempo. Ovviamente non puoi spiegarlo con frasi come "Devo destreggiarmi molti nomi di variabili nella mia memoria a breve termine" a meno che tu non voglia essere il bersaglio di sguardi vuoti o abusi amichevoli.

Mi piacerebbe essere in grado di spiegare tutto ciò ai non sviluppatori in modo da renderli chiaramente comprensibili, senza essere offensivi, elitari o troppo tecnici.

EDIT: grazie a tutti per le loro grandi intuizioni. Ho accettato la risposta di EpsilonVector in quanto la sua analogia era la più vicina alle mie esigenze originali. La spiegazione "addormentarsi" non è né offensiva né tecnica, quasi tutti possono collegarsi ad essa, e le conseguenze di essere disturbati mentre ci si addormenta o mentre ci si trova nella zona sono molto simili: si sperimenta frustrazione e si "perde" 15-20 minuti di tempo.


36
Farli partire da 0 e contare fino a un numero molto grande, a metà del look
Tim Post

8
Sicuramente rilevante per la maggior parte delle professioni, prova a fermare un chirurgo a medio flusso.
ozz,

24
scendere da skype al lavoro.
Josh,

6
"senza essere offensivo", sapevo che da qualche parte c'era un problema. :)
biziclop,

7
@Josh Al lavoro usiamo Skype per le comunicazioni tra uffici. Ne abbiamo bisogno aperto. Ho un account di lavoro separato, ma continui a riscontrare questi problemi.
Matthew Scharley,

Risposte:


124

Prova le seguenti analogie: Prima: "Quanto tempo ti addormenti?" "X minuti" "Ora immagina che quando sei vicino ad addormentarti, qualcuno entra e ti interrompe, quanto tempo impiegherai ad addormentarti ora? Quei pochi secondi che hai lasciato, o dovrai ricominciare da" affondare "dove eri?" "Dovrò ricominciare" "Fantastico. Stessa cosa. Proprio come addormentarmi, ci metto un po 'a" sprofondare "nella modalità di messa a fuoco, e mi ci vuole un po' per tornare ad esso una volta interrotto, tranne che dimentico anche la metà di quello che stavo facendo ".

Secondo: "Sai come quando leggi un libro" ci sprofondi ", dopo un po 'non ti accorgi più nemmeno delle parole e blocchi tutto ciò che ti circonda e sei completamente immerso nelle immagini mentali vedi." "Sì." "Quanto tempo ci vuole per arrivarci?" "Circa X minuti" "Ora immagina che quando sei così immerso nel libro in cui qualcuno entra e ti interrompe, quanto ci vorrà per tornare a quello? Accadrà immediatamente o dovrai ricominciare da" affondare "dove eri?" "Dovrò ricominciare da capo" "Fantastico. Stessa cosa. Proprio come con la lettura, mi ci vuole un po 'a' affondare 'in modalità messa a fuoco, è altrettanto fastidioso quando qualcuno mi fa uscire,


14
+1 eccellente, eccellente, in particolare quello "addormentarsi". Esattamente il tipo di spiegazione che stavo cercando.
András Szepesházi,

1
Potrebbe non essere d'aiuto - Posso riaddormentarmi normalmente ...
Armand,

1
@Alison Non so di non poterlo fare, ma ci sono molte persone che non leggono e quindi non possono fare riferimento al secondo punto.
Matthew Scharley,

3
Adoro la metafora del sonno, ma non lo userò per spiegare presto il mio lavoro a mia moglie! ;>
dthorpe,

7
Non svegliare il programmatore alexthunder.livejournal.com/309815.html
Chris Nava,

30

Non penso che lo stato di fantasticheria descritto da Joel sia tecnico. È lo stesso spostamento del cervello destro che chiunque sperimenta quando disegna o cade sotto l'incantesimo di un libro davvero buono. ("Drawing on the Right of the Brain" di Betty Edwards lo descrive perfettamente). Tutti hanno sperimentato quel senso di concentrazione in cui non si è consapevoli del passare del tempo.

Penso che sia condiscendente fin dall'inizio immaginare che questo sia qualcosa che solo le persone tecniche comprendono, che il concetto deve essere smorzato affinché i non sviluppatori possano capire. Spiega semplicemente in un linguaggio semplice: lo capiranno.


17
Nella mia esperienza, non necessariamente lo ottengono - potrebbero accettarlo come un dato di fatto, ma ancora non possono collegarsi a quello. Per la maggior parte delle persone che conosco, il lavoro è solo un lavoro che può essere sospeso o continuato in qualsiasi momento.

3
Non le persone con cui parlo. Nella mia esperienza, tutti coloro che svolgono attività che svolgono compiti non tecnici sarebbero in grado di relazionarsi perfettamente. Forse stai parlando con troppe persone che svolgono compiti di routine.
Duffymo,

3
@duffymo: Hmm. Non considero un addetto alle vendite che sta scrivendo un'offerta personalizzata per un cliente che svolge un'attività normale. Tuttavia, se lo interrompo, lui / lei perderà massimo mezzo minuto fino a tornare in pista. Questo è ciò che intendevo dire: la maggior parte dei lavori è molto più facile da sospendere / continuare rispetto ai nostri. A PARER MIO.

5
Dipende da quanto stato perdi. I programmatori tendono ad avere bisogno di mantenere un intero stato del programma nella loro testa durante la codifica, ma altre professioni che implicano più scrittura mantengono lo stato sul documento che stanno costruendo. Quale stato è più facile da ripristinare?
Michael K,

2
Penso che molto dipenda dal fatto che la persona sperimenti effettivamente lo stato del flusso durante il suo lavoro (o il tempo libero). Se mai lo sapessero, capiranno meglio cosa intendiamo.
Péter Török,

23

Reindirizza il tuo thread interno all'IO verbale, ovvero ruota quando ti interrompono e continua a borbottare il codice e guardando a distanza media finché non si arrendono e vanno via. Se parlano, borbottano solo più forte.


16
LOL questo è buono ma certamente porta a un divorzio se l'interrutore è la moglie.
András Szepesházi,

Questo è sicuramente l'approccio più veloce ed efficace! : P
Robin Maben,

16

Spiega loro che programmare (o inserire qui altre attività ad alta concentrazione) è come essere un artista circense che fa recitare le piastre rotanti .

Per prima cosa inizi a girare una piastra su un bastoncino, fai partire, poi inizia a girare una seconda piastra, vai avanti, torna al primo piatto, fai un piccolo giro in più per farlo andare avanti, quindi inizia a girare una terza piastra , avvialo, quindi torna al secondo piatto, piccolo giro extra, primo giro extra, terzo giro extra, quindi inizia a girare quarto, ecc. ecc.

Quindi il telefono squilla e tutte le piastre cadono.

Lo stato del flusso è sparito. Ora devi ricominciare tutto da capo. Fai girare una piastra ...

Mi piace pensare a ciascuna piastra come a un insieme di dati, variabili, concetti, stati, ecc. Che devi mantenere nella tua testa.


13

Qualche mese fa ho fatto entrare qualcuno nel mio cubo ed estrarre gli auricolari mentre stavo programmando. Furia interna a parte, il mio approccio era quello di spiegare che spesso i programmatori sono profondamente nel pensiero logico che richiede un approccio diverso e concentrato al pensiero e che l'interruzione improvvisa può davvero rovinare il processo del pensiero. Non è più successo da quella persona, quindi forse ha funzionato. Un'altra cosa che potresti considerare è il segno di occupato / libero. Ho un amico che fa algoritmi e ha un segno a due facce che dice "Coding - Non interrompere" da un lato e "Free to Chat" dall'altro. La rimozione dell'ambiguità è la chiave qui.


16
Finché lasci il lato "Chatta gratis" per un periodo di tempo ragionevole. Se il lato "Non interrompere" è sempre attivo, potresti anche non avere alcun segno ...
Dean Harding,

4
Sembra che sarebbe fastidioso, dover girare il cartello tutto il tempo.
Nessuno il

3
Potresti avere un cappello pensante invece di un segno. Ogni volta che indossi il tuo Thinking Cap, le persone non dovrebbero interromperti.
Formica,

3
"Free to chat" implicherebbe (per i gestori): "Non ho abbastanza lavoro da fare"?
badgerr,

8
Nel mio posto di lavoro il nostro indicatore "nella zona" non documentato è la presenza di cuffie. Il capo ha detto: "Anche se non stai ascoltando nulla, mettili su se ti stai concentrando. Lo prenderemo per significare che sei occupato."
JYelton,

12

Ok, sto aggiungendo la mia risposta (so che è un po 'stupido, ma forse getta un po' di luce in più su ciò a cui stavo mirando).

Ho detto quanto segue a qualcuno che mi ha interrotto di recente in un brutto momento: "Sviluppare software è come guidare un'auto in una strada molto trafficata per la prima volta nella tua vita. Tutta la tua attenzione è focalizzata sulla ruota, sui pedali e sulle auto correndo intorno a te, e semplicemente non hai alcuna attenzione in più per una bella chat. Se inizi a concentrarti su ciò di cui parla la chat, sei destinato a perdere il controllo della macchina e finirai in un incidente".

Questo era qualcosa a cui la persona poteva riferirsi, ma è tutt'altro che una buona analogia. Se vengo interrotto, la conseguenza sarà molto diversa da un incidente. Faccio sviluppo sw da 2 decenni, quindi perché lo paragono a qualcosa che viene fatto per la prima volta. E così via.


1
È una buona analogia. Basta rimuovere la parte "prima volta" e sottolineare che è una strada molto trafficata, con molti incroci, semafori, camion e biciclette e basta. Soprattutto perché l'incrocio è buono per rappresentare tutte le decisioni che devi prendere, senza sapere sempre cosa può colpire la tua auto dietro l'angolo.
Goran Jovic,

Non penso che questa sia una buona analogia, e penso che tu lo ammetta tu stesso, ma se li fa rispettare il tuo tempo di sviluppo, allora usalo.
Bernard,

Non è male.
Marcie,

4
Basta aggiungere che ci sono già tre bambini urlanti nella parte posteriore che stai lottando per ignorare (tutte le tue distrazioni naturali).
Benjol,

7

" Mihaly Csikszentmihalyi on flow " è un buon discorso di TED su questa idea di essere veramente produttivi in ​​determinate condizioni che possono o meno piacere alle persone. Non dimenticare che per alcune persone potrebbero non voler mai capire la spiegazione e quindi è un po 'come battere il cavallo morto in modo ricorsivo all'infinito.


+1 Ero nel mezzo di scrivere una risposta su Flow: en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser,

+1 A parte il buon riferimento al flusso, trovo la parte "battere il cavallo morto ricorsivamente all'infinito" semplicemente esilarante.
András Szepesházi,

4

Lo chiamo trance programmatori. Ci sono molte buone analogie qui, quindi qual è un'altra eh? Come è stato detto in precedenza, un programmatore percorre mentalmente diversi flussi logici diversi fino a quando quello giusto si presenta. POI viene scritto in codice e salvato sul computer.

Quindi, supponiamo che stai scrivendo un term paper o un documento importante. I pensieri fluiscono in parole nel computer ma non hai ancora salvato le modifiche. Quindi poof, il potere si spegne o il computer si arresta in modo anomalo. Il recupero di tutto ciò richiederà più o meno tempo e non sarà mai lo stesso dell'originale. (Quanti di noi vecchi timer l'hanno fatto succedere?)

Questo è ciò che accade al codice nella tua testa quando viene interrotto. I pensieri sono fragili come il fumo. Se non sono ancora stati salvati e qualcosa accade per interromperli, se ne sono andati.


Questo mi piace di più, perché molte persone lo capiranno, e poiché esprime sufficientemente che non ci vorranno 15 minuti per rientrarci, ci vorrà più tempo della prima volta e con risultati peggiori.,
orbfish

3

Caro distinto collega, Nel tentativo di diventare più efficiente, mi sto concentrando sul mio lavoro e sto rispondendo alle domande tramite e-mail nei momenti tra un lavoro e l'altro per mantenere al minimo l'interruzione per servire meglio te e il nome dell'azienda _ . Per favore mandami una email e ti ricontatterò appena posso. Grazie.


2

Se ascolti musica, metti un cartello che dice qualcosa sulla falsariga di

Headphones on? Please do not interrupt.

Questo è efficace solo se qualcuno legge e non hai sempre le cuffie.


Per me sarebbe il contrario. Ascoltare musica e concentrazione profonda non vanno insieme per me.
Codici A Caos

2

La penso come una grande rete di connessioni complesse che devo costruire nella mia mente, una struttura di relazioni interconnesse che si influenzano a vicenda in modi diversi, non sempre ovvi, che devono essere compresi e tenuti chiaramente a fuoco mentre scrivo il codice. Costruire questa rete richiede dai 5 ai 15 minuti su un progetto che ho ragionevolmente familiare, e più volte su uno meno intimo.

Quando la mia concentrazione viene interrotta, il web inizia a collassare, e se l'interruzione dura più di qualche secondo o mi viene richiesto di pensare a qualche altra cosa anche leggermente complessa ("Quando il server è andato in crash la scorsa settimana, cosa hai fatto dirlo al cliente? "), il web crolla completamente. Quando l'interruzione è finita, devo ricostruire nuovamente l'intera rete, in gran parte da zero.

Se mi occorrono 10 minuti per creare il Web e sono interrotto per soli 2 minuti tre volte all'ora, devi capire che invece di programmare per 50 minuti l'ora sto solo facendo 24 minuti di lavoro. Quei 3 piccole interruzioni tagliato la mia produttività in mezzo .


1

Neil Ford ne ha parlato lo scorso Devoxx. Ha scritto un libro al riguardo: il programmatore produttivo. Spiega suggerimenti sugli interruttori "flow". Se sei nel flusso sei nel punto di massima concentrazione. Ma se vieni interrotto ci vogliono + -20 minuti per tornare nel tuo flusso.

Potresti spiegarli se esci dal tuo flusso, la memoria ad accesso casuale nel tuo cervello perde i dati su ciò che stai lavorando e hai bisogno di 20 minuti per ripristinare i dati nella RAM;)


Parlare di accesso casuale e perdita di memoria in qualche modo batte l'obiettivo di "non essere tecnici", penso.
András Szepesházi,

0

Di solito inserisco il seguente stato sui miei client di messaggistica istantanea:

Sono al lavoro e poiché non riesco a svolgere più attività contemporaneamente, per favore non disturbarmi ...

Almeno sembra fare il trucco con il

amico di lunga data che ti chiama su Skype ogni 30 minuti con un "Wazzzzzzup ?!"


1
Sai che puoi andare offline o semplicemente uscire dal tuo client di messaggistica istantanea, Skype, ecc.
Spoike,

@Spoike Non se la messaggistica istantanea viene utilizzata anche per lavoro, come è comune.
Eric Wilson

1
@EricWilson Registra un altro account da utilizzare al lavoro e non dire all'amico di lunga data che ti chiama su Skype ogni 30 minuti con un "Wazzzzzzup ?!"
Daniel Beck,

@EricWilson: se vuoi concentrarti sul tuo lavoro per alcuni periodi di tempo, puoi comunque disattivare o disconnettere IM / e-mail anche se viene utilizzato per lavoro. Sono stato in grado di farlo nei posti in cui ho lavorato.
Spoike,

0

Potresti provare a spiegare, ma puoi anche provare questo:

Si interrompe li , mentre stanno facendo qualcosa che richiede concentrazione profonda, se si sta leggendo, guardando un film, il calcolo o meglio ancora a contare qualcosa. Quindi, tutto ciò che devi spiegare è che è esattamente così per te quando ti interrompono. Dovrebbe fare il trucco. Per favore, non disturbarli mentre guidano o qualcosa del genere :).


A qualcuno ovviamente non piace il mio approccio al problema, ma a volte l'unico modo è spiegare con l'esempio . Soprattutto se l'argomento è oscuro per le persone a cui lo stai spiegando.
Goran Jovic,

Non sembra spiegare con l'esempio. Sembra "vendicarsi".
Marcie,

0

Non spiego. Li informo gentilmente che l'interruzione ha appena aggiunto 6 settimane al programma.


4
Questo suggerimento è sulla stessa linea di "sii scortese e le persone smetteranno di disturbarti". Potrebbe essere efficace, ma non è un buon modo di lavorare in gruppo.
Marcie,

Non credo che un "buon modo di lavorare in gruppo" sia stato specificato come requisito :) A quanto ho capito, la domanda era diretta a interruzioni - che potrebbero essere o meno ortogonali all'adesione al team.
Ritorno

0

Quello che faccio in ufficio è trovare punti hotdesk (nascondigli) in diversi dipartimenti dell'ufficio, in questo modo nessuno sa dove ti trovi e non può disturbarti, ma se questa non è un'opzione, basta ottenere un segno ed esaltare che a meno che non sia di vitale importanza non disturbare!


0

Non so il resto, ma almeno per Skype suggerirei di utilizzare la modalità "Non disturbare". E se devi usarlo per comunicare al lavoro, hai un secondo account solo per lavoro che non condividi con nessuno che non vuoi disturbare sul lavoro :)


0

Non deve essere complicato. Qualcosa di così semplice e non ostile come "Sto lavorando a qualcosa che richiede molta concentrazione. Può essere inserito in un'e-mail? Prometto di guardarlo non appena avrò finito qui."

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.