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.
sumber
Jawaban:
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,"
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
" 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.
sumber
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.
sumber
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.
sumber
Jika Anda mendengarkan musik, pasang tanda yang mengatakan sesuatu seperti itu
Ini hanya efektif jika ada yang membaca dan headphone Anda tidak selalu aktif.
sumber
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 .
sumber
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;)
sumber
Saya biasanya menempatkan status berikut pada Klien IM saya:
Setidaknya sepertinya melakukan trik dengan
sumber
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 :).
sumber
Saya tidak menjelaskan. Saya dengan baik hati memberi tahu mereka bahwa gangguan tersebut baru saja menambah 6 minggu ke jadwal.
sumber
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!
sumber
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 :)
sumber
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."
sumber