it-swarm-id.com

Apakah normal bagi programmer untuk mengerjakan beberapa proyek secara bersamaan

Pada pekerjaan saat ini saya memiliki dua proyek untuk dikerjakan. Pertama adalah sistem yang sangat besar dan yang kedua lebih kecil tetapi juga besar (proyek pertama sedang dikembangkan selama 12 tahun, kedua selama 4 tahun).

Awalnya saya hanya mengerjakan proyek pertama dan mencoba membiasakan diri. Kemudian saya dipindahkan ke proyek kedua dan mencoba di sana, jadi pengetahuan saya tentang proyek pertama menjadi teduh. Sekarang saya harus mengerjakan kedua proyek secara bersamaan.

Ini sangat sulit bagi saya karena meskipun mereka berdua menggunakan Java, mereka menggunakan kerangka kerja yang berbeda dan jumlah kode dan logika bisnis untuk dipahami sangat besar sehingga saya benar-benar tidak dapat menahan kedua proyek itu di kepala saya.

Apakah itu normal dan saya harus terbiasa dengannya, walaupun keahlian saya menjadi sangat licin, apa yang tidak akan terjadi jika saya hanya bekerja pada satu proyek? Atau haruskah saya menyampaikan kekhawatiran atau mungkin berganti majikan?

40
user1449

Saya benar-benar tidak setuju ketika orang mengatakan "ya, multi-tasking adalah normal"

Ini tidak normal! Sama sekali tidak, sangat tidak wajar bagi pengembang untuk melakukan banyak tugas di beberapa proyek (saya akan menjelaskan lebih lanjut nanti). Di sisi lain multi-tasking sangat umum di antara pengembang. Ini pasti sesuatu yang Anda harus terbiasa. Jadi jawaban sebenarnya untuk pertanyaan Anda adalah: cara melakukan multi-tugas?

Pertama-tama, Anda tidak boleh hanya menerima nasib Anda karena "Anda adalah karyawan yang luar biasa" dan itu berarti Anda harus mengambil lebih banyak tugas daripada yang bisa Anda tangani. Tidak sama sekali, kamu tidak. Terkadang orang diberikan banyak tugas karena tidak ada orang lain. Kadang-kadang manajer tidak bisa menangani pekerjaan mereka sehingga mereka mendelegasikan, menegakkan multi-tasking di tim mereka karena mereka tidak dapat menangani jadwal proyek mereka dengan baik. Jadi, Anda harus mencoba menentukan apakah Anda diminta untuk melakukan banyak tugas karena ini bagian dari pekerjaan Anda atau karena orang lain tidak kompeten. Apa pun itu, Anda dapat menilai sendiri apakah itu dapat diterima atau tidak. Jika Anda tidak nyaman [dengan pekerjaan Anda], ada tempat-tempat lain yang bisa Anda cari pekerjaan. [Anda, pengembang, adalah komoditas. Majikan tahu ini dan berdoa agar Anda tidak pernah menyadarinya.]

Sekarang tentang multi-tasking, saya tidak setuju 100% ketika orang mengatakan "ya, cukup bolak-balik dan pastikan Anda melakukan jumlah yang sama pada setiap proyek". Maaf tapi itu saran yang sangat buruk.

Pertama, Anda harus menyadari bagaimana otak Anda bekerja ketika Anda sedang mengembangkan perangkat lunak (Saya tahu ada tugas lain yang terlibat tetapi mari kita fokus pada yang satu itu). Pertama-tama Anda perlu "terhubung", yang berarti Anda harus banyak berkonsentrasi dan membuat pikiran Anda dalam posisi di mana Anda memiliki semua yang dipetakan di kepala Anda. Semua nama variabel dan metode, alur kerja kode Anda, model objek, utas berjalan berdampingan, semuanya. Biasanya saya butuh 15 mungkin 20 menit untuk mendapatkan "di zona".

Ketika Anda mencapai kondisi itu, Anda benar-benar terbang dan menulis kode seperti sedang mengendarai sepeda. Saat Anda terganggu, Anda bisa kehilangan semuanya. Jika interupsi cukup lama (5, 10, mungkin 30 menit), Anda akan kehilangan akal sehat dan harus memulai dari awal.

Jadi multi-tasking itu mengerikan karena memaksa Anda untuk meninggalkan "zona" dan beralih ke sesuatu yang lain. Jika Anda terus-menerus beralih itu berarti Anda tidak produktif karena setiap kali Anda beralih ke tugas/proyek baru, Anda perlu kehilangan 15-20 menit untuk masuk ke zona itu lagi (tidak menyebutkan itu melelehkan otak Anda perlahan-lahan).

Ini seperti multi-threading: pada titik tertentu biaya mengganti konteks utas setiap siklus pasangan terlalu tinggi sehingga CPU akhirnya menghabiskan lebih banyak waktu untuk mengubah konteks daripada menjalankan tugas-tugas nyata.

Saya sangat merekomendasikan membaca artikel dari Joel Spolsky tentang masalah ini:

http://www.joelonsoftware.com/articles/fog0000000022.html

Jadi saran saya adalah: cobalah belajar bagaimana (bukan) multi-tugas karena itu memang biasa. Tetapi juga pastikan Anda nyaman melakukannya. Beberapa orang dapat mengambil lebih banyak waktu untuk berkonsentrasi dan akan lebih menderita daripada yang lain ketika melakukan banyak tugas; dan itu juga ok. Bukan karena itu umum bahwa itu harus dianggap normal.

Joel mengatakannya dengan baik ketika dia berkata:

Sebenarnya, pelajaran nyata dari semua ini adalah bahwa Anda tidak boleh membiarkan orang mengerjakan lebih dari satu hal sekaligus. Pastikan mereka tahu apa itu. Manajer yang baik melihat tanggung jawab mereka sebagai menghilangkan hambatan sehingga orang dapat fokus pada satu hal dan benar-benar menyelesaikannya.

54
Alex

Ya, itu sudah diduga. Dan disambut.

Ada beberapa cara untuk melihatnya:

  1. Anda diharapkan melakukan banyak tugas dan hampir tidak mungkin untuk fokus. Ini menghasilkan proses rekayasa sub-optimal, kebingungan sesekali ketika Anda bolak-balik, perasaan dieksploitasi, frustrasi, stres, dll. Ini semua negatif, tentu saja; namun,

  2. Anda dipercaya dengan banyak proyek, yang mencerminkan dengan baik hasil yang Anda hasilkan dan kepercayaan yang dimiliki majikan Anda dalam kemampuan Anda. Ini adalah kesempatan untuk menunjukkan kepada mereka bahwa kepercayaan itu dijamin.

Saran saya adalah kembangkan penilaian bijaksana tugas mana yang membutuhkan perhatian langsung Anda dan mana yang bisa menunggu. Terkadang jawabannya adalah tidak ada yang bisa menunggu dan Anda perlu mengambil pendekatan kreatif untuk memberikan hasil (sedikit untuk proyek A, kemudian sedikit untuk proyek B, lalu bilas dan ulangi). Kembangkan keterampilan untuk berkembang dalam situasi seperti ini.

Biasanya (meskipun tidak selalu), ini akan dihargai dengan lebih banyak tanggung jawab, lebih banyak proyek untuk disulap, dan lebih banyak harapan. Pada titik tertentu Anda akan dapat, dan diharapkan, untuk mendelegasikan beberapa pekerjaan ini. Ini ukuran keberhasilan.

Jadi, bahkan jika keterampilan juggling Anda yang sedang tumbuh hanya dieksploitasi oleh perusahaan Anda saat ini, ini adalah keterampilan yang baik untuk dimiliki dan akan melayani Anda dengan baik dalam karier Anda.

Untuk apa nilainya, saya biasanya mengerjakan proyek besar, yang lebih kecil, pemeliharaan dan dukungan proyek lama, dan mengelola setidaknya satu yang lain. Ini membuat frustrasi, membingungkan, melelahkan, dan saya sangat berterima kasih.

33
b w

Iya! Itu benar-benar "normal"/biasa ketika Anda bekerja di perusahaan jasa xD

Juga jika Anda berkolaborasi dengan proyek sumber terbuka, itulah aturannya

Mungkin tidak dan keadaan ideal, tetapi roti sehari-hari.

15
yeradis

Itu biasa. Tapi itu tidak baik, karena alasan yang telah Anda uraikan. Mengubah konteks makan menjadi produktivitas, jadi jika Anda bisa, cobalah bekerja pada satu proyek untuk banyak waktu, mis. satu hari.

12
Anthony

Saya aktif mengerjakan 2 hingga 3 proyek berbeda setiap hari. Dan pertahankan beberapa lusin lagi. Beberapa minggu ini menjadi sedikit luar biasa. Beberapa proyek sangat besar, beberapa sangat kecil mereka diberi kode dalam beberapa hari dan jarang perlu perubahan. Ini bervariasi, tetapi membuat saya tetap terpapar pada berbagai cara berpikir dan memecahkan masalah, berbagai teknologi, dan area bisnis. Saya menikmatinya.

Jadi, untuk menjawab pertanyaan Anda, ya, itu sangat umum.

9
CaffGeek

Lihat artikel berjudul Multitasking Membuat Anda Nanti . Grafik ini menceritakan kisahnya:

enter image description here

Dengan kata lain, perusahaan membuang-buang waktu dengan meminta pemrogram mereka mengerjakan lebih dari satu proyek pada satu waktu. Dengan hanya tiga proyek, pemborosannya adalah 40%! Sisa waktu dibagi menjadi tiga proyek.

Alasan untuk multitasking sering dinyatakan sebagai "menyelesaikan lebih banyak hal". Tapi itu alasan yang salah. Multitasking hanya menghasilkan penundaan semua rilis. Gambar ini menunjukkan efek tugas ganda vs menyelesaikan satu proyek pada satu waktu:

enter image description here

(Gambar mengabaikan overhead sepenuhnya. Pada kenyataannya waktu yang terbuang akan membuat kedua proyek 20% kemudian.)

8
Martin Wickman

Ya, dalam pengalaman saya itu normal (bahkan jika beberapa 'proyek' sangat mirip, mis. Proyek pemeliharaan dan fitur pada produk yang sama). Untuk menghindari konflik dan harapan yang tidak realistis, sepakati dengan manajer proyek dan manajer Anda untuk mengalokasikan sebagian waktu Anda untuk setiap proyek (mis. Tiga hari pada proyek X, dua pada proyek Y per minggu). Anda biasanya dapat mendistribusikan alokasi tersebut sesuka Anda, mis. Senin-Rabu pada X, Kamis-Jumat pada Y.

Kadang-kadang akan ada saat-saat ketika satu proyek "melempar pengecualian" dan perlu dikerjakan sekarang. Ada dua hal yang harus dilakukan di sini:

  1. memastikan bahwa itu benar-benar pengecualian, bukan hanya manajer proyek yang memaksa: Dorong kembali dalam kasus terakhir.
  2. tukar alokasi waktu Anda sehingga Anda masih bekerja dengan fraksi yang sama di setiap proyek.
4
user4051

Itu tergantung pada perusahaan. IMO sangat diharapkan untuk hanya bekerja pada satu proyek saja, tetapi itu seringkali tidak mungkin, terutama dengan perusahaan kecil.

Tentu saja, perbaikan bug dll. Selalu dapat terjadi dengan proyek apa pun.

4
user281377

Jika Anda merasa sulit untuk kembali dengan kecepatan dengan kerangka kerja proyek atau logika bisnis ketika Anda kembali ke sana, Anda harus mengambil kesempatan untuk menulis sebanyak mungkin dokumentasi saat Anda mengerjakannya. Dengan merinci bagaimana sistem yang kompleks bekerja, dengan kata-kata Anda sendiri, akan membuatnya lebih mudah untuk kembali ke proyek nanti. Plus, dokumentasi ini dapat bermanfaat bagi rekan kerja Anda jika mereka perlu membantu.

Jika proyek sudah memiliki cakupan yang baik dari dokumentasi teknis, masih bisa bermanfaat untuk menuliskan pemikiran Anda saat Anda sedang mengerjakan area yang rumit. Dengan begitu, Anda dapat menangkap proses pemikiran Anda saat berikutnya Anda kembali.

3
Matt G

Yah itu seharusnya tidak normal tetapi saya memiliki banyak proyek di pundak saya di perusahaan saya saat ini. Aku perlu membiasakan diri. Kiat paling penting yang dapat saya berikan adalah untuk selalu memprioritaskan pekerjaan Anda. Paksa atasan Anda untuk memberi tahu Anda apa tugas prioritas dan kerjakan saja itu. Jangan berikan tekanan dari siapa pun yang mengeluh tentang proyek Anda yang lain. Anda tidak perlu memperbarui resume Anda tetapi pastikan muatannya tidak meningkat melebihi sesuatu yang dapat Anda tangani secara wajar.

2
ChaosPandion

Saya pikir itu normal. Cara kerja saya sekarang (saya di sebuah perusahaan dengan sekitar 40 pengembang, total ukuran perusahaan sekitar 700). Dan saya biasanya memiliki satu proyek "jangka panjang" dengan banyak tiket kecil/cacat yang muncul sehingga biasanya berakhir menjadi 50% tiket kecil dan 50% bekerja pada proyek jangka panjang. Apa yang bisa sulit adalah bahwa gangguan konstan dapat memperlambat dan menggagalkan proyek jangka panjang ..

0
Bmw

Saya pikir itu normal untuk bekerja pada banyak proyek. Kuncinya adalah menerima bahwa Anda akan menghadapi beberapa ambiguitas dalam hal gambaran keseluruhan sistem pada awalnya.

Jika Anda berusaha untuk mendapatkan gambaran yang lebih besar, Anda akan mendapatkan kejelasan dan dapat melihat bagian yang bergerak/diperbaiki dalam sistem dan bagaimana perubahan Anda mempengaruhi sistem.

Selama periode waktu Anda akan belajar untuk menemukan pola umum di berbagai sistem yang Anda kerjakan. Ini dapat Anda terapkan pada proyek Anda yang lain yang akan mengurangi jumlah informasi terperinci yang perlu Anda simpan di kepala Anda sekaligus.

0
Pradeep

Dalam setiap proyek non-sepele ada lebih dari satu orang yang ditugaskan untuk itu. Ini berarti bahwa Anda perlu berkolaborasi dengan orang lain dan menunggu mereka melakukan pekerjaan mereka, serta mereka harus menunggu Anda.

Alih-alih membuat orang duduk diam, biasanya ada banyak proyek yang aktif sehingga selalu ada tugas terbuka yang harus dilakukan jika diperlukan.

Anda masih harus bekerja dalam potongan yang cukup besar pada setiap proyek sehingga Anda bisa mendapatkan "di zona" dan menjadi produktif.

0
user1249