Bekerja secara serempak



Pekerjaan asinkron adalah suatu cara mengatur proses ketika tugas dilakukan pada suatu pipa. Ini memungkinkan Anda untuk sepenuhnya mengontrol proses dan menyempurnakannya sendiri. Pada saat yang sama, tekanan dan stres dikurangi menjadi nol, dan tugas-tugas dilakukan dengan cepat dan cekatan.

Konveyor yang halus dan cepat memberikan jumlah produksi yang tepat, semua tahapannya seimbang dalam hal efisiensi dan kecepatan. Ini menghindari pemborosan waktu atau sumber daya, mengikuti metodologi 3M dari Toyota Production System.

Operasi asinkron bergantung pada tiga prinsip dasar: multiplexing , komunikasi, dan tindakan .

Multiplexing


Orang hidup di dunia yang sinkron. Jam terus berdetak tepat satu detik. Tetapi cara Anda mengatur tugas memiliki efek gila pada hasilnya. Ini semua tentang perencanaan.

Penjadwalan sinkron


Perencanaan tipikal (sinkron) melibatkan dimulainya tugas secara simultan. Ini sendiri tidak menakutkan, tetapi kecepatan keseluruhan dibatasi oleh kecepatan elemen paling lambat. Setiap keterlambatan menyebar di sepanjang pipa, karena setiap tahap sepenuhnya tergantung pada yang sebelumnya.


Contoh 1

Di sini kita melihat aliran pengembangan perangkat lunak dengan tiga terminal dan penjadwalan sinkron. Untuk menyelesaikan pengembangan, Anda harus menyelesaikan tugas A, B, dan C. Mengingat metode perencanaan dan antrian, akan dibutuhkan siklus sembilan jam kerja untuk menyelesaikan pekerjaan. Sistem ini sangat cocok untuk tugas-tugas atom, tetapi sangat lambat dalam proyek lain, karena melibatkan penyebaran yang sangat langka.

Penjadwalan asinkron


Perencanaan asinkron melibatkan pembagian tugas ke dalam jumlah maksimum dari tugas-tugas yang lebih kecil dengan rilis paling sering dari "perubahan minimal yang dapat dilakukan" (MVC). Metode ini didasarkan pada hipotesis bahwa pelepasan perubahan minimal yang lebih sering akan membantu mengukur keberhasilan dengan lebih baik dan merespons umpan balik negatif secepat mungkin. Ini juga memungkinkan Anda untuk mengontrol distribusi sumber daya dengan lebih baik, karena pada saat yang sama kami melakukan lebih banyak tugas (ukuran yang dikurangi).


Contoh 2

Membagi tugas A, B dan C (A1, A2, A3, B1, dll.), Kami melipattigakan frekuensi penyebaran. Setelah sembilan jam, kami dapat memiliki banyak fungsi siap pakai, tetapi multiplexing dengan distribusi asinkron memungkinkan Anda memeriksa hasilnya - dan memutar kembali atau mengubah langkah selanjutnya. Kami mengurangi waktu iterasi menjadi sepertiga dari yang asli.

Teknik ini memungkinkan kita melakukan tugas-tugas multipleks, menggabungkannya untuk mendapatkan hasil lebih cepat.

Komunikasi


Komunikasi yang baik adalah kunci keberhasilan sistem apa pun (orang atau mesin).

Ada banyak jenis komunikasi: email, pesan instan, panggilan suara, panggilan video, atau bahkan "mari kita minum kopi." Masing-masing dari mereka memiliki efek yang sama sekali berbeda pada kinerja, dan memilih yang tepat sama pentingnya untuk pipa seperti memilih tugas.

Komunikasi sinkron


Kami pada dasarnya lebih rentan terhadap komunikasi yang sinkron, lebih sederhana dan lebih nyaman.

Minimal dua orang biasanya terlibat dalam percakapan. Itu terjadi dalam berbagai format:

  • Pertemuan
  • Panggilan Video / Suara
  • Rehat kopi
  • Percakapan saat makan malam
  • Mengirim pesan menunggu tanggapan segera

Ini semua sangat baik jika masalah tidak mungkin atau sulit untuk dibahas dalam format asinkron. Misalnya, tinjauan kinerja, diskusi tentang strategi, wawancara, percakapan satu lawan satu.

Sebagian besar pertemuan dapat diganti dengan dokumentasi yang benar, email atau pesan yang ditulis dengan baik.

Secara umum, rapat adalah alat paling mahal di perusahaan, gunakan dengan benar.

Dalam contoh ketiga, dua pengembang mengerjakan tugas mereka sendiri dan harus menyelesaikan tugas A, B, dan C sebelum penerapan:


Contoh 3

Situasi yang cukup khas. Kedua pengembang terganggu untuk beberapa waktu oleh diskusi tentang spesifikasi teknis, dan segera pertemuan tentang apa yang harus mereka lakukan selanjutnya.

Ini jelas bukan pilihan terbaik untuk menggunakan komunikasi sinkron. Kami melihat bahwa gangguan menunda semua pekerjaan dan penyebaran tidak terjadi.

Kinerja konveyor seperti itu jelas tidak seragam, dan itu tidak bisa disebut tinggi.

Komunikasi asinkron


Komunikasi asinkron memberi kebebasan. Dia berusaha memastikan bahwa tugas dan konsekuensinya tidak bergantung pada siapa yang merencanakan atau menyelesaikannya.

Komunikasi asinkron menyediakan beberapa praktik terbaik yang umum dikenal, seperti:

  • Dokumentasi yang bagus
  • Instruksi Tertulis
  • Olahpesan alih-alih panggilan
  • Menghormati pekerjaan tanpa gangguan

Contoh 4 dengan dua pengembang dan tugas yang sama, tetapi komunikasi tidak sinkron.


Contoh 4

Dalam contoh ini, komunikasi dilakukan melalui perpesanan dan dokumentasi yang ditulis dengan baik. Bahkan jika perpesanan diperpanjang dari waktu ke waktu, dampak pada alur kerja dapat diabaikan dan seringkali memberikan kinerja yang lebih baik.

Tapi mengapa?


Orang tidak melakukan transisi dengan sangat baik dari keadaan konsentrasi penuh pada tugas A ke konsentrasi penuh pada tugas B (seperti yang ditunjukkan pada gambar berikut). Misalnya, ketika Anda tenggelam dalam buku dan mengalihkan perhatian Anda, Anda perlu waktu untuk kembali ke teks.

Dalam contoh 5, kita melihat diagram di mana waktu dan produktivitas pengembang backend, yang terganggu dua kali, diplot sepanjang sumbu: pertama, pengembang frontend bertanya tentang muatan permintaan API, dan kemudian pendatang baru ke tim meminta bantuan dengan melokalisasi database proyek.


Contoh 5

Pengembang backend menghabiskan beberapa waktu berfokus pada tugas saat ini (1), kemudian pergi ke keadaan konsentrasi (2), di mana otaknya yang super kreatif dan kuat bekerja paling efisien. Kemudian dia terganggu, dan dia meluangkan waktu untuk berkomunikasi dengan pengembang front-end (3), kemudian kembali ke tugas (1) lagi. Sayangnya, ketika pengembang fokus lagi (2), ia kembali terganggu (3).

Jika Anda membaca di tempat ini, saya yakin semua ini sangat familier bagi Anda.

Kuncinya adalah konsep flow (2). Definisi Wikipedia :

Dalam psikologi positif, keadaan aliran adalah keadaan mental di mana seseorang yang melakukan suatu kegiatan benar-benar tenggelam dalam perasaan konsentrasi energik, keterlibatan penuh dan kenikmatan proses kegiatan. Intinya, aliran ini ditandai dengan penyerapan penuh perhatian, dan akibatnya hilangnya rasa ruang dan waktu.

Jika pemfokusan saja itu sulit, masuk ke dalam aliran bahkan lebih sulit. Semakin baik Anda fokus, semakin tinggi kemungkinan masuk ke aliran, tetapi jika Anda memiliki masalah mempertahankan konsentrasi, lupakan aliran.

Komunikasi asinkron sangat penting di sini, karena melindungi waktu dan konsentrasi setiap karyawan, mengurangi gangguan yang tidak berarti. Ketika Anda berkomunikasi secara tidak sinkron, jenis interupsi ini jauh lebih jarang terjadi. Meningkatkan waktu untuk pekerjaan yang dalam dan kemungkinan mencapai aliran.

Aksi


Ini adalah faktor terakhir dalam beralih ke mode asinkron. Intinya bukan dalam prosedur, tetapi dalam hubungannya dengan diri sendiri sebagai seorang profesional dan tujuan profesional seseorang.

Sering ditemukan bahwa tugas tidak disiapkan, proses tidak direncanakan, orang yang bertanggung jawab tidak menghubungi, dll. Dalam keadaan seperti itu, tim yang berhasil melakukan pekerjaan, bahkan jika mereka harus mengulang dan menyesuaikannya nanti, tetapi tidak menghabiskan waktu "menunggu".

“Selalu bertindak secara default” adalah mantra yang terus kami ulangi di Remote. Ini berarti bahwa jika Anda perlu melakukan sesuatu dan tidak ada yang dapat membantu atau menunjukkan apa yang harus dilakukan selanjutnya, maka gunakan akal sehat dan tentukan pilihan Anda sendiri.

Bayangkan bahwa ada tiga tugas, yang hanya dua yang dijelaskan dengan baik, jadi Anda perlu menunggu manajer produk untuk secara akurat menentukan persyaratan.


Contoh 6

Dalam contoh ini, pengembang pertama mengambil tindakan secara default, dan yang kedua mengharapkan secara default. Yang pertama mengambil beberapa tugas lain, meskipun tidak begitu penting. Yang kedua adalah menunggu manajer untuk membantu menjelaskan persyaratan untuk tugas seperti itu.

Ini adalah contoh kondisional, dan saya ingin mengatakan bahwa itu dilebih-lebihkan, tetapi tidak. Situasi yang sangat umum.

Jika Anda benar-benar membutuhkan bantuan untuk tugas selanjutnya dan Anda tidak dapat menemukan yang lain, yah, lebih baik menggunakan waktu ini untuk kebaikan pribadi, misalnya, pergi ke gym, berjalan-jalan dengan anjing atau menonton episode seri favorit Anda (ya, bahkan selama hari kerja )

Tentu saja, beberapa tugas sangat halus, dan jika Anda tidak yakin, Anda dapat mengambil sesuatu yang lain. Ini bukan tentang mengabaikan risiko, tetapi tentang mengambil tanggung jawab dengan cara yang terkontrol.

Ringkasan


Pekerjaan asinkron adalah cara untuk mengatur pekerjaan dengan sedikit interupsi dan efisiensi yang lebih tinggi, berdasarkan beberapa ide:

  • Operasi asinkron harus digunakan lebih sering daripada operasi sinkron, ini memberikan manajemen sumber daya yang lebih baik, mengurangi kehilangan waktu dan, karenanya, mengoptimalkan kinerja.
  • Tugas multiplexing dengan ukuran lebih kecil memungkinkan Anda menyelesaikan tugas lebih cepat, menguji hipotesis lebih cepat, dan mencapai kesuksesan dengan kepercayaan diri yang lebih besar.
  • Dalam kebanyakan kasus, komunikasi harus asinkron, kecuali dalam kasus yang secara eksplisit memerlukan sinkronisasi. Ini memungkinkan orang untuk fokus pada tugas mereka lebih lama dan menerapkan praktik terbaik seperti dokumentasi dan menulis prosedur yang tepat.
  • Selalu bertindak secara default (sesuai alasan) membantu seluruh tim untuk bergerak lebih cepat, mengurangi kehilangan waktu dan meningkatkan keterlibatan setiap karyawan dalam penyebab umum.

Source: https://habr.com/ru/post/id473602/


All Articles