Jeśli weźmiesz pod uwagę drugą część mojego pytania: „Dlaczego deweloper nie powinien być przerywany, gdy szykuje się głębokie kodowanie”, to wiele razy dyskutowali o tym mądrzy ludzie. Heck, nawet współzałożyciel SO, Joel Spolsky, napisał post na blogu o „dostaniu się do strefy” i „byciu wykluczonym ze strefy” oraz o tym, dlaczego osiągnięcie produktywności zajmuje średnio 15 minut, biorąc udział w kompleksie, zadania związane z tworzeniem oprogramowania. Myślę więc, dlaczego ustalono.
Interesuje mnie to, jak wyjaśnić to wszystko komuś, kto nie zna fasoli o Fasoli (khmm, mam na myśli tworzenie oprogramowania). Jak powiedzieć żonie, zabawnemu facetowi z księgowości w miejscu pracy lub długoletniemu przyjacielowi, który co 30 minut wysyła pingi do Skype'a „Wazzzzzzup ?!”, że wszystkie zakłócenia mają o wiele głębszy wpływ na twoją pracę niż oczywiste 30 sekund, które zajęli ci czas. Oczywiście nie można tego wytłumaczyć zdaniami typu: „Muszę żonglować wieloma nazwami zmiennych w mojej pamięci krótkoterminowej”, chyba że chcesz być celem pustych spojrzeń lub przyjaznych nadużyć.
Chciałbym być w stanie wyjaśnić to wszystko nie-programistom w sposób, który pozwoli im jasno zrozumieć - bez obraźliwego, elitarnego lub zbyt technicznego.
EDYCJA: Dziękuję wszystkim za ich świetne spostrzeżenia. Zaakceptowałem odpowiedź EpsilonVector, ponieważ jego analogia była najbliższa moim pierwotnym potrzebom. Wyjaśnienie „zasypiania” nie jest ani obraźliwe ani techniczne, prawie każdy może się do niego odnosić, a konsekwencje zakłócania się podczas zasypiania lub przebywania w strefie są bardzo podobne: doświadczasz frustracji i „tracisz” 15-20 minut czasu.
źródło
Odpowiedzi:
Wypróbuj następujące analogie: Pierwsza: „Ile czasu zajmuje zasypianie?” „X minut” „Teraz wyobraź sobie, że kiedy jesteś bliski zaśnięcia, ktoś wchodzi i przeszkadza ci, ile czasu zajmie ci teraz zasypianie? Te kilka sekund, które mi pozostały, czy będziesz musiał zacząć od nowa, aby„ zatonąć z powrotem „tam, gdzie byłeś?” „Będę musiał zacząć od nowa” „Świetnie. To samo. Podobnie jak zasypianie, zajmuje mi trochę czasu, aby„ zapaść się ”w tryb ustawiania ostrości, a powrót do niego zajmuje trochę czasu, gdy mi przeszkadza, poza tym, że zapominam też o połowie tego, co robiłem. ”
Drugi: „Wiesz, kiedy czytasz książkę,„ w nią grzęźniesz ”- po chwili nawet nie zauważasz już słów, blokujesz wszystko wokół siebie i całkowicie zanurzasz się w obrazach mentalnych zobaczysz." "Tak." „Ile czasu zajmuje ci dotarcie?” „Około X minut” „Teraz wyobraź sobie, że gdy jesteś zanurzony w książce, ktoś wchodzi i przeszkadza, ile czasu zajmie ci powrót do tego? Czy to się stanie natychmiast, czy będziesz musiał zacząć od nowa zatonąć z powrotem „tam, gdzie byłeś?” „Będę musiał zacząć od nowa” „Świetnie. To samo. Podobnie jak w przypadku czytania, zajęło mi trochę czasu, aby„ zatonąć ”w trybie ostrości, jest to tak samo denerwujące, gdy ktoś mnie z tego wyrywa,
źródło
Nie sądzę, aby stan zadumy opisany przez Joela był techniczny. Jest to ta sama zmiana dla prawego mózgu, której doświadcza każdy, gdy rysuje lub wpada pod urok naprawdę dobrej książki. (Betty Edwards „Rysowanie po prawej stronie mózgu” doskonale to opisuje.) Każdy doświadczył tego poczucia koncentracji, gdy nie jesteś świadomy upływu czasu.
Myślę, że protekcjonalne od samego początku jest wyobrażenie sobie, że jest to coś, co rozumieją tylko ludzie techniczni, że koncepcja ta musi zostać stępiona, aby osoby nie będące programistami zrozumiały. Po prostu wyjaśnij prostym językiem - zrozumieją.
źródło
Przekieruj swój wewnętrzny wątek do werbalnego IO, tj. Odwróć się, gdy będą ci przeszkadzać, i wciąż mamrocząc kod i patrząc w środkową odległość, dopóki się nie poddadzą i odejdą. Jeśli mówią, po prostu mamrocz głośniej.
źródło
Powiedz im, że kodowanie (lub wstawienie tutaj innej aktywności o wysokim stężeniu) jest jak bycie wykonawcą cyrkowym, który działa na wirujących płytkach .
Najpierw zacznij od zakręcenia jedną płytką na patyku, zacznij kręcić, a następnie zacznij kręcić drugą płytką, zacznij kręcić, wróć do pierwszej płyty, daj jej trochę dodatkowego obrotu, aby ją utrzymać, a następnie zacznij kręcić trzecią płytą , uruchom go, a następnie wróć do drugiej płytki, trochę dodatkowego wirowania, pierwszego dodatkowego wirowania, trzeciego dodatkowego wirowania, a następnie zacznij wirować czwartego itp.
Następnie telefon dzwoni i wszystkie płyty spadają.
Stan przepływu zniknął. Teraz musisz zacząć wszystko od nowa. Uzyskaj jeden talerz obracający się ...
Lubię myśleć o każdej płycie jako kawałku danych, zmiennej, koncepcji, stanu itp., Które musisz zachować w swojej głowie.
źródło
Kilka miesięcy temu ktoś wszedł do mojej kostki i wyciągnął moje słuchawki douszne podczas kodowania. Pomijając wewnętrzną furię, moje podejście polegało na wyjaśnieniu, że często programiści pogrążeni są w logicznej myśli, która wymaga innego i skoncentrowanego podejścia do myślenia i że nagłe przerwanie może naprawdę zakłócić proces myślenia. To się nie powtórzyło od tej osoby, więc może zadziałało. Inną rzeczą, którą możesz wziąć pod uwagę, jest znak „zajęty / wolny”. Mam przyjaciela, który robi algorytmy, a on ma dwustronny znak, który z jednej strony mówi „Kodowanie - nie przerywaj”, az drugiej „Wolny czat”. Kluczem jest tutaj usunięcie niejasności.
źródło
Ok, dodaję własną odpowiedź (wiem, że to trochę dziwne, ale może rzuca dodatkowe światło na to, do czego dążyłem).
Powiedziałem komuś, kto mi ostatnio przeszkodził w złym momencie: „Opracowywanie oprogramowania jest jak jazda samochodem po bardzo ruchliwej drodze po raz pierwszy w życiu. Cała uwaga skupiona jest na kierownicy, pedałach i samochodach pędząc wokół ciebie i po prostu nie masz dodatkowej uwagi na fajną pogawędkę. Jeśli zaczniesz skupiać się na tym, o czym jest czat, na pewno stracisz kontrolę nad samochodem i skończysz wypadek".
To było coś, z czym osoba może się odnosić, ale nie jest to dobra analogia. Jeśli dostanę przerwę, konsekwencja będzie zupełnie inna niż wypadek. Zajmuję się programowaniem SW od dwóch dekad, więc dlaczego porównuję to do czegoś, co jest robione po raz pierwszy. I tak dalej.
źródło
„ Mihaly Csikszentmihalyi on flow ” to dobra dyskusja TED na temat tego, jak być naprawdę produktywnym w pewnych warunkach, które mogą, ale nie muszą, przemawiać do ludzi. Nie zapominaj, że dla niektórych osób mogą nigdy nie chcieć zrozumieć wyjaśnienia, dlatego jest to coś w rodzaju rekurencyjnego bicia martwego konia w nieskończoność.
źródło
Nazywam to transem programistów. Jest tu wiele dobrych analogii, więc co jeszcze? Jak powiedziano wcześniej, programista będzie mentalnie poruszał się po kilku różnych przepływach logicznych, aż pojawi się właściwy. Następnie zostaje zapisany w kodzie i zapisany na komputerze.
Powiedzmy, że piszesz papier terminowy lub ważny dokument. Myśli płyną w słowa do komputera, ale zmiany nie zostały jeszcze zapisane. Potem kupa, moc się wyłącza lub komputer ulega awarii. Odzyskanie tego wszystkiego zajmie tak długo lub dłużej i nigdy nie będzie takie samo jak oryginał. (Ilu z nas, starych zegarów, miało to TO?)
Tak dzieje się z kodem w twojej głowie, gdy zostanie przerwany. Myśli są delikatne jak dym. Jeśli nie zostali jeszcze uratowani i coś im przeszkodzi, już ich nie ma.
źródło
Drogi Szanowny Współpracowniku. Aby zwiększyć wydajność, koncentruję się na swojej pracy i odpowiadam na pytania za pośrednictwem poczty e-mail w chwilach między pracą, aby zachować minimum przerw w pracy, aby lepiej służyć Tobie i nazwie firmy _ . Proszę napisz do mnie, a skontaktuję się z Tobą jak najszybciej. Dziękuję Ci.
źródło
Jeśli słuchasz muzyki, postaw znak, który mówi coś w stylu
Jest to skuteczne tylko wtedy, gdy ktoś czyta i nie zawsze masz włączone słuchawki.
źródło
Myślę o tym jak o dużej sieci złożonych połączeń, które muszę zbudować w mojej głowie, strukturze powiązanych ze sobą relacji, które wpływają na siebie na różne, nie zawsze oczywiste sposoby, z których wszystkie muszą być zrozumiane i utrzymywane w sposób jasny w centrum uwagi podczas pisania kodu. Budowanie tej sieci zajmuje od 5 do 15 minut na projekcie, który znam dość dobrze, i kilka razy mniej na jednym, mniej intymnym.
Gdy moja koncentracja zostaje przerwana, sieć zaczyna się rozpadać, a jeśli przerwa trwa dłużej niż kilka sekund lub muszę pomyśleć o czymś innym, nawet nieco złożonym („Kiedy serwer upadł w zeszłym tygodniu, co zrobiłeś? powiedzieć klientowi? ”), sieć całkowicie się zawala. Kiedy przerwa się skończy, muszę ponownie zbudować całą sieć, głównie od zera.
Jeśli zbudowanie sieci zajmuje mi 10 minut, a ja przeszkadzam tylko 2 minuty trzy razy na godzinę, musisz zrozumieć, że zamiast kodować przez 50 minut, mam tylko 24 minuty pracy. Te 3 małe zakłócenia zmniejszyły moją wydajność o połowę .
źródło
Neil Ford powiedział o tym w ostatnim Devoxxie. Napisał o tym książkę: Wydajny programista. Wyjaśnia wskazówki dotyczące wyłączników „przepływowych”. Jeśli płyniesz, jesteś w najwyższym punkcie koncentracji. Ale jeśli zostaniesz przerwany, powrót do przepływu zajmie + -20 minut.
Możesz je wytłumaczyć, jeśli wyjdziesz z obiegu, pamięć o swobodnym dostępie w mózgu traci dane o tym, co pracujesz i potrzebujesz 20 minut, aby odzyskać dane w pamięci RAM;)
źródło
Zwykle umieszczam następujący status na moich klientach czatu:
Przynajmniej wydaje się to załatwić sprawę
źródło
Możesz spróbować wyjaśnić, ale możesz także spróbować:
Państwo przerwać je , gdy robią coś, co wymaga głębokiej koncentracji, czy to czytając, oglądając film, obliczanie lub nawet lepiej licząc coś. Następnie wszystko, co musisz wyjaśnić, to to , że dokładnie tak jest dla ciebie, gdy ci przeszkadzają. Powinien załatwić sprawę. Tylko proszę, nie przeszkadzaj im podczas jazdy lub coś takiego :).
źródło
Nie tłumaczę Uprzejmie informuję ich, że przerwa spowodowała dodanie 6 tygodni do harmonogramu.
źródło
To, co robię w biurze, to znajdowanie miejsc hotdesk (kryjówek) w różnych działach w biurze, w ten sposób nikt nie wie, gdzie jesteś i nie może ci przeszkadzać, ale jeśli nie jest to opcja, po prostu zdobądź znak i wyjaśnij, że chyba że ma to istotne znaczenie, nie przeszkadzaj!
źródło
Nie znam reszty, ale przynajmniej dla Skype'a sugerowałbym użycie trybu „Nie przeszkadzać”. A jeśli musisz go używać do komunikacji w pracy, posiadaj drugie konto tylko do pracy, którego nie udostępniasz nikomu, komu nie chcesz przeszkadzać w pracy :)
źródło
To nie musi być skomplikowane. Coś tak prostego i nieprzyjaznego jak: „Pracuję nad czymś, co wymaga dużej koncentracji. Czy można to podać w wiadomości e-mail? Obiecuję, że przyjrzę się temu, jak tylko tu skończę”.
źródło