Bagaimana menjelaskan kepada orang awam mengapa seorang pengembang tidak boleh diganggu ketika sedang dalam pengkodean? [Tutup]

92

Jika Anda hanya mempertimbangkan bagian kedua dari pertanyaan saya, "Mengapa pengembang tidak boleh terputus sementara dalam pengkodean", yang telah dibahas beberapa kali oleh orang-orang pintar. Heck, bahkan salah satu pendiri SO, Joel Spolsky, menulis posting blog tentang "masuk zona" dan "tersingkir dari zona" dan mengapa dibutuhkan rata-rata 15 menit untuk mencapai produktivitas ketika berpartisipasi dalam kompleks, tugas terkait pengembangan perangkat lunak. Jadi saya pikir mengapa sudah ada.

Yang saya tertarik adalah bagaimana menjelaskan semua itu kepada seseorang yang tidak tahu kacang tentang Kacang (khmm maksud saya pengembangan perangkat lunak). Bagaimana cara memberi tahu istri, atau lelaki lucu dari akuntansi di tempat kerja, atau teman lama yang menelepon Anda di Skype setiap 30 menit dengan "Wazzzzzzup ?!", bahwa semua gangguan memiliki dampak yang jauh lebih dalam pada pekerjaan Anda daripada jelas 30 detik yang mereka ambil dari waktu Anda. Jelas Anda tidak dapat menjelaskannya dengan kalimat seperti "Saya harus menyulap banyak nama variabel dalam ingatan jangka pendek saya" kecuali jika Anda ingin menjadi sasaran tatapan kosong atau penyalahgunaan ramah.

Saya ingin dapat menjelaskan semua itu kepada non-pengembang dengan cara yang akan membuat mereka mengerti dengan jelas - tanpa menyinggung, elitis atau terlalu teknis.

EDIT: Terima kasih kepada semua orang atas wawasannya yang luar biasa. Saya telah menerima jawaban Epsilon karena analoginya adalah yang paling dekat dengan kebutuhan awal saya. Penjelasan "jatuh tertidur" tidak menyinggung atau teknis, hampir semua orang dapat mengaitkannya, dan konsekuensi dari menjadi terganggu ketika tertidur atau saat berada di zona sangat mirip: Anda mengalami frustrasi dan Anda "kehilangan" 15-20 menit waktu.

András Szepesházi
sumber
36
Minta mereka mulai dari 0 dan hitung ke jumlah yang sangat besar, di tengah jalan melalui tampilan
Pos Tim
8
Tentunya relevan dengan sebagian besar profesi, coba hentikan mid-flow ahli bedah.
ozz
24
turun skype di tempat kerja.
Josh
6
"Tanpa menyinggung", saya tahu ada tangkapan di suatu tempat. :)
biziclop
7
@Josh Di kantor, kami menggunakan Skype untuk komunikasi antar kantor. Kami membutuhkannya terbuka. Saya memiliki akun kantor terpisah, tetapi Anda masih mengalami masalah ini.
Matthew Scharley

Jawaban:

124

Coba analogi berikut ini: Yang pertama: "Berapa lama bagi Anda untuk tertidur?" "X menit" "Sekarang bayangkan bahwa ketika kamu hampir jatuh tertidur, seseorang masuk dan menyela kamu, berapa lama kamu akan tertidur sekarang? Beberapa detik yang telah kamu tinggalkan, atau kamu harus mulai lagi untuk ' tenggelam kembali ke tempatmu tadi? " "Aku harus mulai lagi." "Hebat. Hal yang sama. Sama seperti tertidur, aku butuh waktu untuk 'tenggelam' ke mode fokus, dan perlu beberapa saat untuk kembali ke sana begitu aku terganggu, kecuali bahwa saya juga lupa setengah dari apa yang saya lakukan. "

Yang kedua: "Anda tahu bagaimana ketika Anda membaca buku Anda 'tenggelam ke dalamnya'- setelah beberapa saat Anda bahkan tidak melihat kata-kata lagi, dan Anda memblokir segala sesuatu di sekitar Anda, dan benar-benar tenggelam dalam gambaran mental kamu melihat." "Iya." "Berapa lama bagimu untuk sampai di sana?" "Sekitar X menit" "Sekarang bayangkan bahwa ketika Anda terbenam dalam buku seseorang berjalan dan menyela Anda, berapa lama waktu yang Anda butuhkan untuk kembali ke sana? Apakah itu akan terjadi segera, atau Anda harus mulai lagi untuk ' tenggelam kembali ke tempatmu tadi? " "Aku harus mulai lagi." "Hebat. Hal yang sama. Sama seperti membaca, perlu beberapa saat untuk 'tenggelam' ke mode fokus, sama menjengkelkannya ketika ada orang yang membuatku putus,"

EpsilonVector
sumber
14
+1 luar biasa, luar biasa, terutama yang "tertidur". Penjelasan persis yang saya cari.
András Szepesházi
1
Mungkin tidak membantu - Saya bisa langsung kembali tidur dengan normal ...
Armand
1
@Alison Saya tidak tahu tentang tidak bisa, tetapi ada banyak orang yang tidak membaca dan karenanya tidak bisa berhubungan dengan poin kedua.
Matthew Scharley
3
Saya suka metafora yang tertidur, tetapi saya tidak akan menggunakannya untuk menjelaskan pekerjaan saya kepada istri saya dalam waktu dekat! ;>
dthorpe
7
Jangan Bangun Programmer alexthunder.livejournal.com/309815.html
Chris Nava
30

Saya tidak berpikir bahwa keadaan lamunan yang Joel gambarkan adalah teknis. Ini adalah pergeseran otak kanan yang sama yang dialami siapa pun ketika mereka menggambar atau jatuh di bawah mantra buku yang sangat bagus. ("Betty Edwards 'Menggambar di Sisi Kanan Otak" menggambarkannya dengan sempurna.) Setiap orang telah mengalami perasaan konsentrasi di mana Anda tidak menyadari berlalunya waktu.

Saya pikir itu merendahkan langsung untuk membayangkan bahwa ini adalah sesuatu yang hanya dipahami oleh orang-orang teknis, bahwa konsep ini perlu dikecilkan untuk dipahami oleh non-pengembang. Cukup jelaskan dengan bahasa sederhana - mereka akan mendapatkannya.

Duffymo
sumber
17
Dalam pengalaman saya, mereka tidak perlu mendapatkannya - mereka mungkin menerimanya sebagai fakta, tetapi masih belum bisa mengaitkannya dengan itu. Bagi kebanyakan orang yang saya kenal, pekerjaan hanyalah pekerjaan yang dapat ditunda atau dilanjutkan kapan saja.
3
Bukan orang yang saya ajak bicara. Dalam pengalaman saya, setiap orang yang melakukan pekerjaan yang melakukan tugas-tugas non-hafalan akan dapat berhubungan dengan sempurna. Mungkin Anda berbicara dengan terlalu banyak orang yang melakukan tugas menghafal.
duffymo
3
@duffymo: Hmm. Saya tidak mempertimbangkan orang penjualan yang menulis penawaran khusus untuk pelanggan yang melakukan tugas menghafal. Namun, jika saya menyela, dia akan kehilangan maksimum setengah menit sampai kembali ke jalurnya. Itulah yang saya maksudkan - sebagian besar pekerjaan jauh lebih mudah untuk ditangguhkan / dilanjutkan daripada pekerjaan kita. MENURUT OPINI SAYA.
5
Ini masalah seberapa banyak keadaan Anda yang hilang. Programmer cenderung perlu menjaga status program secara keseluruhan di kepala mereka saat coding, tetapi profesi lain yang melibatkan lebih banyak menulis tetap menyatakan pada dokumen yang mereka bangun. Negara mana yang lebih mudah untuk dipulihkan?
Michael K
2
Saya pikir banyak tergantung pada apakah orang tersebut benar-benar mengalami keadaan aliran selama pekerjaannya (atau waktu luang). Jika mereka melakukannya, mereka akan lebih mengerti apa yang kita maksudkan.
Péter Török
23

Rutekan ulang utas internal Anda ke IO verbal, yaitu berbalik ketika mereka mengganggu Anda dan terus menggumamkan kode dan melihat ke jarak tengah sampai mereka menyerah dan pergi. Jika mereka berbicara, bergumam lebih keras.

Peter
sumber
16
LOL ini bagus tapi pasti mengarah ke perceraian jika penggagapnya adalah istri.
András Szepesházi
Ini jelas merupakan pendekatan yang lebih cepat dan lebih efektif! : P
Robin Maben
16

Beri tahu mereka bahwa pengkodean (atau masukkan aktivitas konsentrasi tinggi lainnya di sini) seperti menjadi pemain sirkus yang melakukan tindakan pelat pemintalan .

Pertama Anda mulai dengan memutar satu piring pada tongkat, mulai, kemudian mulai memutar piring kedua, mulai, kembali ke piring pertama, berikan sedikit putaran ekstra untuk membuatnya tetap berjalan, kemudian mulai memutar piring ketiga , mulai, lalu kembali ke lempeng kedua, putaran ekstra kecil, putaran tambahan lempeng pertama, putaran ekstra lempeng ketiga, lalu mulai putar keempat, dll.

Kemudian telepon berdering dan semua pelat jatuh.

Keadaan aliran hilang. Anda sekarang harus memulai dari awal. Dapatkan satu piring berputar ...

Saya suka menganggap setiap lempeng sebagai sepotong data, variabel, konsep, status, dll yang harus Anda pertahankan di kepala Anda.

Knalpot
sumber
13

Beberapa bulan yang lalu saya memiliki seseorang berjalan ke dalam kubus saya dan mengeluarkan earbud saya ketika saya sedang coding. Di samping amarah internal, pendekatan saya adalah untuk menjelaskan bahwa sering kali programmer tenggelam dalam pemikiran logis yang memerlukan pendekatan yang berbeda dan terkonsentrasi untuk berpikir dan bahwa mengganggu tiba-tiba dapat benar-benar mengacaukan proses pemikiran. Itu tidak terjadi dari orang itu lagi, jadi mungkin itu berhasil. Hal lain yang mungkin Anda pertimbangkan adalah tanda sibuk / gratis. Saya punya teman yang melakukan algoritme dan ia memiliki tanda dua sisi yang bertuliskan "Pengkodean - Jangan menyela" di satu sisi dan "Bebas untuk Mengobrol" di sisi lain. Menghapus ambiguitas adalah kuncinya di sini.

n1reu
sumber
16
Selama Anda membiarkan sisi "Gratis untuk Mengobrol" cukup banyak. Jika sisi "Jangan ganggu" selalu naik, Anda mungkin juga tidak memiliki tanda sama sekali ...
Dean Harding
4
Sepertinya itu akan menjengkelkan, harus membalik tanda itu setiap saat.
Tidak ada yang
3
Anda bisa menggunakan Thinking Cap sebagai ganti tanda. Kapan pun Anda memiliki Topi Berpikir Anda, orang tidak seharusnya mengganggu Anda.
Semut
3
Bukankah "Bebas untuk ngobrol" menyiratkan (kepada manajer): "Saya tidak punya cukup pekerjaan untuk dilakukan"?
badgerr
8
Di tempat kerja saya, indikator "in the zone" kami yang tidak didokumentasikan adalah kehadiran headphone. Bos mengatakan, "bahkan jika Anda tidak mendengarkan apa pun, pakailah jika Anda berkonsentrasi. Kami menganggap itu berarti Anda sibuk."
JYelton
12

Ok, saya menambahkan jawaban saya sendiri (saya tahu ini agak konyol, tapi mungkin memberi sedikit tambahan pada apa yang saya tuju).

Saya mengatakan hal berikut kepada seseorang yang mengganggu saya baru-baru ini di waktu yang tidak tepat: "Mengembangkan perangkat lunak seperti mengendarai mobil di jalan yang sangat sibuk untuk pertama kalinya dalam hidup Anda. Semua perhatian Anda terfokus pada roda dan pedal dan mobil. terburu-buru di sekitar Anda, dan Anda tidak memiliki sedikit perhatian ekstra untuk obrolan yang bagus.Jika Anda mulai berfokus pada apa obrolan tentang, Anda pasti akan kehilangan kendali atas mobil dan Anda akan berakhir di sebuah kecelakaan".

Ini adalah sesuatu yang bisa dihubungkan dengan orang itu, tetapi itu jauh dari analogi yang baik. Jika saya terganggu, konsekuensinya akan sangat berbeda dari kecelakaan. Saya telah melakukan pengembangan sw selama 2 dekade jadi mengapa saya membandingkan ini dengan sesuatu yang sedang dilakukan untuk pertama kalinya. Dan seterusnya.

András Szepesházi
sumber
1
Ini analogi yang bagus. Lepaskan bagian 'pertama kali' dan tekankan bahwa ini adalah jalan yang sangat sibuk, dengan banyak persimpangan jalan, lampu lalu lintas, truk dan sepeda, dan hanya itu. Terutama karena persimpangan jalan yang baik untuk mewakili semua keputusan yang harus Anda ambil, tanpa selalu tahu apa yang bisa menabrak mobil Anda di tikungan.
Goran Jovic
Saya tidak berpikir ini analogi yang baik, dan saya pikir Anda mengakui itu sendiri, tetapi jika itu membuat mereka menghargai waktu pengembangan Anda, maka gunakan itu.
Bernard
Itu tidak terlalu buruk.
Marcie
4
Cukup tambahkan bahwa sudah ada tiga anak yang berteriak di belakang yang sulit Anda abaikan (semua gangguan alami Anda sendiri).
Benjol
7

" Mihaly Csikszentmihalyi on flow " adalah TED yang baik. Bicara tentang ide ini untuk benar-benar produktif dalam kondisi tertentu yang mungkin atau mungkin tidak menarik bagi orang. Jangan lupa bahwa bagi sebagian orang mereka mungkin tidak pernah ingin memahami penjelasannya dan karena itu seperti memukuli kuda mati secara rekursif dan tak terhingga.

JB King
sumber
+1 Saya tengah menulis jawaban pada Flow: en.wikipedia.org/wiki/Flow_%28psychology%29
StuperUser
+1 Terlepas dari rujukan bagus untuk mengalir, saya menemukan bagian "mengalahkan kuda mati secara rekursif ad infinitum" sangat lucu.
András Szepesházi
4

Saya menyebutnya pemrogram trance. Ada banyak analogi yang bagus di sini, jadi apa lagi ya? Seperti yang telah dikatakan sebelumnya, seorang programmer akan secara mental menavigasi beberapa aliran logika yang berbeda sampai yang benar muncul dengan sendirinya. MAKA itu ditulis dalam kode dan disimpan di komputer.

Jadi, katakan Anda sedang menulis makalah panjang atau dokumen penting. Pikiran mengalir ke kata-kata ke komputer tetapi Anda belum menyimpan perubahannya. Lalu puf, power padam atau komputer crash. Mendapatkan semua itu kembali akan memakan waktu selama atau lebih lama dan tidak akan pernah sama dengan aslinya. (Berapa banyak dari kita yang sudah melakukan hal itu?)

Inilah yang terjadi pada kode di kepala Anda ketika terganggu. Pikiran rapuh seperti asap. Jika mereka belum diselamatkan dan sesuatu datang mengganggu mereka, mereka sudah pergi.

R Hughes
sumber
Saya suka yang terbaik ini, karena banyak orang akan memahaminya, dan karena itu cukup menyatakan bahwa tidak akan memakan waktu 15 menit untuk kembali ke dalamnya, itu akan membutuhkan waktu lebih lama daripada yang pertama dan dengan hasil yang lebih buruk.,
orbfish
3

Rekan Kerja yang Terhormat, Dalam upaya untuk menjadi lebih efisien saya fokus pada pekerjaan saya dan saya menjawab pertanyaan melalui email pada saat-saat di antara pekerjaan untuk menjaga gangguan seminimal mungkin agar lebih baik melayani Anda dan nama Perusahaan _ . Silakan email saya dan saya akan menghubungi Anda sesegera mungkin. Terima kasih.

pengguna16784
sumber
2

Jika Anda mendengarkan musik, pasang tanda yang mengatakan sesuatu seperti itu

Headphones on? Please do not interrupt.

Ini hanya efektif jika ada yang membaca dan headphone Anda tidak selalu aktif.

Ian Potter
sumber
Bagi saya itu akan sebaliknya. Mendengarkan musik dan konsentrasi yang dalam tidak cocok untuk saya.
CodesInChaos
2

Saya menganggapnya sebagai jaringan besar koneksi kompleks yang harus saya bangun di dalam pikiran saya, sebuah struktur hubungan saling terkait yang saling mempengaruhi dalam berbagai cara yang tidak selalu jelas, yang semuanya harus dipahami dan dijaga dengan jelas. dalam fokus saat saya menulis kode. Membangun web ini memakan waktu antara 5 hingga 15 menit pada sebuah proyek yang cukup saya kenal, dan beberapa kali lebih tidak intim.

Ketika konsentrasi saya terganggu, web mulai runtuh, dan jika gangguan itu berlangsung lebih dari beberapa detik atau saya harus memikirkan beberapa hal yang bahkan sedikit rumit ("Ketika server turun minggu lalu, apa yang Anda lakukan?" beri tahu pelanggan? "), web benar-benar runtuh. Ketika gangguan selesai, saya harus membangun kembali seluruh web, sebagian besar dari awal.

Jika saya membutuhkan 10 menit untuk membangun web dan saya terganggu hanya 2 menit tiga kali dalam satu jam, Anda perlu memahami bahwa alih-alih mengkode selama 50 menit dalam satu jam, saya hanya menyelesaikan 24 menit pekerjaan. 3 gangguan kecil itu memotong produktivitas saya menjadi dua .

Matthew Frederick
sumber
1

Neil Ford menceritakan tentang hal itu Devoxx terakhir. Dia menulis buku tentang itu: Programmer yang produktif. Dia menjelaskan tips tentang pemutus 'aliran'. Jika Anda dalam aliran Anda berada pada titik konsentrasi tertinggi Anda. Tetapi jika Anda terganggu, butuh + -20 menit untuk kembali ke aliran Anda.

Anda mungkin ingin menjelaskan em jika Anda keluar dari aliran Anda, Anda mengakses memori acak di otak Anda kehilangan data tentang apa yang Anda kerjakan dan Anda perlu 20 menit untuk mendapatkan kembali data dalam RAM;)

Jeff
sumber
Berbicara tentang akses acak dan kehilangan memori jenis mengalahkan tujuan "untuk tidak teknis", saya pikir.
András Szepesházi
0

Saya biasanya menempatkan status berikut pada Klien IM saya:

Saya sedang bekerja dan karena saya tidak bisa melakukan banyak tugas, tolong jangan ganggu saya ...

Setidaknya sepertinya melakukan trik dengan

teman lama yang menelepon Anda di Skype setiap 30 menit dengan "Wazzzzzzup ?!"

Yaneeve
sumber
1
Anda tahu bahwa Anda dapat offline atau hanya keluar dari Klien IM, Skype, dll.
Spoike
@Seperti Tidak jika IM juga digunakan untuk bekerja, seperti biasa.
Eric Wilson
1
@EricWilson Daftarkan akun lain untuk digunakan di tempat kerja, dan jangan beri tahu teman lama yang menelepon Anda di Skype setiap 30 menit dengan "Wazzzzzzup ?!"
Daniel Beck
@EricWilson: Jika Anda ingin fokus pada pekerjaan Anda untuk beberapa waktu, Anda masih dapat mematikan atau keluar dari IM / email walaupun itu digunakan untuk bekerja. Saya sudah bisa melakukannya di tempat saya bekerja.
Spoike
0

Anda dapat mencoba menjelaskan, tetapi Anda juga dapat mencoba ini:

Anda menyela mereka , ketika mereka melakukan sesuatu yang membutuhkan konsentrasi yang dalam, apakah itu membaca, menonton film, menghitung atau bahkan lebih baik menghitung sesuatu. Kemudian, yang harus Anda jelaskan adalah bahwa persis seperti itu bagi Anda ketika mereka mengganggu Anda. Sebaiknya lakukan triknya. Hanya saja, tolong jangan mengganggu mereka saat mereka sedang mengemudi atau sesuatu seperti itu :).

Goran Jovic
sumber
Seseorang jelas tidak suka pendekatan saya terhadap masalah, tetapi kadang-kadang satu-satunya cara adalah menjelaskan dengan contoh . Terutama jika topiknya tidak jelas bagi orang yang Anda jelaskan.
Goran Jovic
Itu tidak terdengar seperti menjelaskan dengan contoh. Kedengarannya seperti "balas dendam."
Marcie
0

Saya tidak menjelaskan. Saya dengan baik hati memberi tahu mereka bahwa gangguan tersebut baru saja menambah 6 minggu ke jadwal.

Throwback1986
sumber
4
Saran ini sejalan dengan "bersikap kasar, dan orang-orang akan berhenti mengganggu Anda." Ini mungkin efektif, tetapi bukan cara yang baik untuk bekerja dalam tim.
Marcie
Saya tidak percaya "cara yang baik untuk bekerja dalam tim" ditetapkan sebagai persyaratan :) Seperti yang saya pahami, pertanyaannya diarahkan pada gangguan - yang mungkin atau mungkin tidak ortogonal bagi keanggotaan tim.
Throwback1986
0

Apa yang saya lakukan di kantor adalah menemukan hotdesk spot (tempat persembunyian) di berbagai departemen di kantor, dengan cara ini tidak ada yang tahu di mana Anda berada dan tidak dapat mengganggu Anda, tetapi jika ini bukan pilihan, dapatkan tanda dan jelaskan bahwa kecuali itu sangat penting jangan ganggu!

kyndigs
sumber
0

Saya tidak tahu tentang yang lain tetapi untuk Skype setidaknya saya akan menyarankan menggunakan mode "Jangan ganggu". Dan jika Anda harus menggunakannya untuk berkomunikasi di tempat kerja, memiliki akun hanya bekerja kedua yang tidak Anda bagikan dengan siapa pun yang tidak ingin mengganggu Anda di tempat kerja :)

satuon
sumber
0

Tidak harus rumit. Sesuatu yang sederhana dan tidak bermusuhan seperti "Saya sedang mengerjakan sesuatu yang membutuhkan banyak konsentrasi. Dapatkah ini dimasukkan ke dalam surel? Saya berjanji untuk melihatnya segera setelah saya selesai di sini."

Andy Lester
sumber