Saya sedang mengerjakan tim kecil yang akan mulai mengerjakan proyek besar baru dengan tim kecil lainnya. Tim lain saat ini sedang mengerjakan sistem warisan yang telah mereka kerjakan selama bertahun-tahun.
Manajer telah memutuskan bahwa pengembang dari tim saya akan berotasi setiap beberapa bulan untuk menggantikan pengembang yang bekerja pada sistem lawas. Dengan cara itu tim lain akan memiliki kesempatan untuk mengerjakan proyek baru dan memiliki pemahaman yang lebih baik tentang sistem baru.
Saya ingin mengetahui manfaat dan kelemahan (jika ada) dari memutar pengembang dari proyek setiap 2-3 bulan.
Saya tahu bahwa ini adalah pertanyaan yang mirip dengan "Apakah memutar pengembang utama merupakan ide yang baik atau buruk?" , tetapi pertanyaan itu berfokus pada pengembang utama. Pertanyaan ini adalah tentang memutar seluruh tim dan mematikan proyek (pimpinan teknologi untuk proyek baru mungkin diputar atau tidak - saya belum tahu).
sumber
Jawaban:
Saya terkejut bahwa semua orang berpikir ini adalah hal yang baik. Para penulis Peopleware (yang, IMO, masih merupakan salah satu dari beberapa buku manajemen proyek perangkat lunak yang berharga yang layak dibaca) sangat tidak setuju. Hampir seluruh Bagian IV buku ini didedikasikan untuk masalah ini.
Perangkat lunak Tim adalah unit fungsional yang sangat penting. Tim perlu mengental agar menjadi benar-benar produktif. Butuh waktu ( banyak waktu) bagi anggota tim untuk saling menghargai, mempelajari kebiasaan dan kebiasaan masing-masing, kekuatan dan kelemahan masing-masing.
Tentu saja, dari pengalaman pribadi, saya dapat mengatakan bahwa setelah setahun bekerja dengan orang-orang tertentu, saya telah belajar untuk menertawakan hal-hal tertentu yang membuat saya marah, perkiraan saya sebagai pemimpin tim jauh lebih baik, dan tidak terlalu sulit untuk dapatkan pekerjaan didistribusikan untuk membuat semua orang bahagia. Awalnya tidak seperti itu.
Sekarang Anda mungkin berkata, "Oh, tapi kami tidak menghancurkan seluruh tim, hanya memindahkan beberapa orang." Tetapi pertimbangkan (a) betapa tidak produktifnya pengganti mereka pada awalnya, dan (b) berapa kali Anda akan menemukan diri Anda atau tim lain berkata, tanpa berpikir, "Saya benar-benar menyukai X" atau "Ini akan memiliki lebih mudah dengan Y masih ada " , secara halus dan tidak sadar menyinggung anggota baru dan menciptakan perpecahan dalam tim yang ada, bahkan menabur ketidakpuasan di antara anggota" lama ".
Orang-orang tidak melakukan ini dengan sengaja , tentu saja, tetapi itu terjadi hampir setiap waktu. Orang melakukannya tanpa berpikir. Dan jika mereka memaksakan diri untuk tidak melakukannya, mereka akhirnya lebih fokus pada masalah, dan frustrasi oleh keheningan yang dipaksakan. Tim dan bahkan sub-tim akan mengembangkan sinergi yang hilang ketika Anda bermain-main dengan struktur. Para penulis Peopleware menyebutnya sebagai "teamicide".
Yang sedang berkata, meskipun anggota tim rotasi adalah praktik yang mengerikan, tim rotasi sendiri baik-baik saja. Meskipun perusahaan perangkat lunak yang dikelola dengan baik harus memiliki konsep kepemilikan produk, itu tidak mengganggu bagi tim untuk memindahkan seluruh tim ke proyek yang berbeda, selama tim tersebut benar-benar menyelesaikan proyek lama atau setidaknya membawanya ke proyek. tingkat yang mereka senangi.
Dengan menjalankan tugas tim alih-alih tugas pengembang , Anda mendapatkan semua manfaat yang sama seperti yang Anda harapkan dengan pengembang bergilir (dokumentasi, "penyerbukan silang", dll.) Tanpa efek samping buruk pada setiap tim sebagai satu unit. Bagi mereka yang tidak benar-benar memahami manajemen, itu mungkin tampak kurang produktif, tetapi yakinlah bahwa produktivitas yang hilang dengan memecah-belah tim sama sekali mengerdilkan produktivitas yang hilang dengan memindahkan tim itu ke proyek yang berbeda.
NB Dalam catatan kaki Anda, Anda menyebutkan bahwa pimpinan teknologi mungkin satu - satunya orang yang tidak dirotasi. Ini dijamin cukup untuk mengacaukan kedua tim. Pimpinan teknologi adalah pemimpin, bukan manajer, ia harus mendapatkan rasa hormat dari tim, dan tidak hanya diberikan wewenang oleh tingkat manajemen yang lebih tinggi. Menempatkan seluruh tim di bawah arahan pemimpin baru yang belum pernah bekerja sama dengan mereka dan yang sangat mungkin memiliki gagasan berbeda tentang hal-hal seperti arsitektur, kegunaan, pengorganisasian kode, estimasi ... yah, itu akan sangat menegangkan untuk pemimpin yang mencoba membangun kredibilitas dan sangat tidak produktif bagi anggota tim yang mulai kehilangan kohesi tanpa adanya pemimpin lama mereka. Kadang-kadang perusahaan memilikiuntuk melakukan ini, yaitu jika pemimpin berhenti atau dipromosikan, tetapi melakukannya dengan pilihan terdengar gila.
sumber
Saya sendiri tidak melihat banyak kerugian di sini. Rotasi memberi Anda:
Mungkin satu-satunya downside adalah penurunan produktivitas yang Anda dapatkan dari berpindah tempat tetapi itu hanya akan merugikan buruk pada putaran pertama. Setelah itu kedua belah pihak akan memiliki waktu duduk di kedua tempat dan bagian-bagian buruk handoff mungkin akan lebih dipahami dan mungkin diselesaikan.
sumber
Menariknya, dalam pengalaman saya, kami sering memulai proyek kami dengan niat ini. Kami sering gagal menindaklanjuti maksud ini karena kendala pada proyek yang lebih baru dan keyakinan bahwa pelatihan silang terlalu mahal.
Saya selalu berharap kami berhasil, meskipun dalam jangka panjang saya percaya ini bermanfaat bagi semua pihak - tim, perusahaan, klien & perangkat lunak. 2/3 bulan kedengarannya cukup lama bahwa ada risiko terbatas dari dampak negatif serius, tidak ada konteks yang terjadi untuk pengembang yang terlibat kecuali pada titik pergantian di mana mereka dapat mendedikasikan diri mereka pada proyek alternatif.
Beberapa kemungkinan manfaat yang tidak disebutkan:
sumber
Rotasi adalah hal yang baik untuk perusahaan, dan bisa menjadi hal yang baik untuk pengembang juga.
Ada banyak alasan bagus dan Wyatt telah menyebutkan banyak dari mereka dalam jawabannya.
Yang sedang berkata, dalam situasi Anda, Anda mungkin menemukan ketika memperkenalkan ini, pengembang yang pindah dari proyek yang lebih baru ke proyek warisan mungkin tidak senang, jadi perlu ada komunikasi yang sangat jelas mengapa ini terjadi dan berapa lama untuk, dan rencana ke depan.
Mungkin baik untuk berpikir tentang tidak menukar tim grosir untuk memulai dan memutar 1 atau 2 dev untuk memulai dengan, meskipun ini mungkin tampak seperti memilih orang untuk penurunan pangkat (yang beberapa orang mungkin melihatnya).
sumber
Setuju dengan Aaronaught yang sangat aneh untuk melihat berapa banyak orang yang tidak melihat kelemahannya. Beberapa orang berpikir buruk, bahwa Anda dapat menunjuk dengan sangat cepat - kode tidak memiliki pemilik dan ketika semua orang bertanggung jawab atas semuanya tidak baik untuk kualitas . Pengembang bukan sumber daya (bahkan mereka disebut seperti itu sangat sering oleh manajer), mereka adalah orang-orang dan untuk tim sangat penting untuk saling mengenal, rotasi membuat sedikit kekacauan di sana. Jika Anda bekerja untuk beberapa proyek untuk waktu yang lebih lama, Anda akan menjadi seorang ahli (tidak hanya dalam domain, tetapi dalam proyek itu), Anda akan tahu dari mana sebagian besar masalah berasal, siapa yang akan memberi Anda jawaban terbaik atau mungkin beberapa pengetahuan domain yang lebih spesifik, dll. Jika Anda baru, Anda perlu mempelajari semua pemikiran ini, sehingga akan memperlambat kemajuan. Tapi tentu saja juga baik untuk mengetahui praktik lain di organisasi Anda, bagaimana tim lain membangun dan mengatur. Sangat baik jika proyek Anda terkait dalam beberapa cara, misalnya satu proyek adalah input untuk yang lain (tidak perlu secara langsung), sehingga akan mendapatkan pemahaman yang lebih baik tentang gambaran besar. Dan tentu saja menyebarkan keahlian itu baik (jika Anda akan mendapatkan waktu untuk mendapatkan pengetahuan ini).
sumber
Saya setuju dengan jawaban teratas Aaronaught dan saya punya beberapa tambahan.
Waktu yang tepat untuk menetapkan ulang siapa pun adalah ketika mereka mulai bosan dengan apa yang mereka lakukan. Tidak ada lagi yang bisa didapat, semuanya terkendali, pekerjaan selesai. Dalam kasus-kasus ini mereka biasanya akan maju dan meminta peluang lain sendiri.
Tentu saja kenyataan itu keras kepala dan seringkali tidak ada pilihan, seseorang mungkin dibutuhkan di tempat lain karena alasan apa pun. Ini tidak selalu buruk, itu juga bisa membuat seseorang merasa penting dan jika orang itu menyelesaikan beberapa masalah besar, akan ada kredit untuknya.
Hanya dengan menyeret orang di sekitar untuk menyebarkan pengetahuan kemungkinan akan meningkatkan pergantian. Dengan begitu pengetahuan akan tersebar, tetapi akan tersebar di luar perusahaan yang mungkin bukan maksudnya.
sumber
TL; DR Jadikan satu tim dan kemudian satu tim yang mendukung 2 proyek.
Untuk menggemakan @Aaronaught, saya pikir tim pencampuran bisa bermasalah karena mungkin perlu waktu untuk menyesuaikan diri dengan praktik, proses, dll. Jika Anda memutar terlalu banyak orang dengan cepat tim akan kehilangan identitasnya. Ini mengarah pada lebih banyak pertanyaan, kebingungan, dan waktu yang dihabiskan untuk menebus identitas itu.
Di sisi lain jika ada upaya bersama untuk bergabung dengan 2 tim menjadi satu tim dan memiliki 1 tim mendukung 2 proyek, saya pikir itu bekerja dengan baik selama tim tidak terlalu besar. Saya telah menjadi bagian dari banyak tim yang mendukung banyak proyek. Semakin dekat dalam teknologi 2 proyek, semakin mudah transisi. Dalam pengalaman saya, biaya yang lebih tinggi dalam transisi dari satu proyek ke proyek lain datang ketika melintasi bahasa, klien / server (khususnya GUI), industri (medis, web, game), atau jalur serupa lainnya. Caranya adalah membuat orang yang berbeda untuk mengerjakan proyek cukup sering untuk mendapatkan manfaat, tetapi tidak begitu sering sehingga biaya transisi melebihi manfaatnya.
Maka manfaat untuk mendapatkan lebih banyak orang dalam suatu proyek cukup terkenal, begitu pula biayanya.
sumber
Rotasi Programmer adalah hal yang baik dari sudut pandang perusahaan dan sudut pandang pengembang.
Dari perspektif perusahaan
Dari perspektif pengembang
Hanya satu hal utama, perlu diingat bahwa,
Rotasi Programmer tidak boleh terjadi terlalu sering. setelah 60% - 70% pengembangan dilakukan maka hanya pergeseran yang akan bermanfaat.
sumber