Baru-baru ini di perusahaan saya, kami memiliki sebuah proyek di mana tenggat waktu sangat ketat, dan semuanya berjalan sesuai rencana sampai saya tidak tersedia karena masalah pribadi yang ekstrem.
Akhirnya kami melewatkan tenggat waktu 4 ~ 5 hari.
Apa rencana pemulihan yang biasa untuk kondisi ini? haruskah perusahaan saya mencoba melakukan outsourcing pengembang untuk menyelesaikan pekerjaan saya? bahkan itu bisa memakan waktu beberapa hari untuk menemukannya?
Jawaban:
Itu tergantung pada durasi yang tidak terduga dari waktu yang tersedia, sisa durasi proyek, cara tugas-tugas didistribusikan dan konsekuensi dari kehilangan tenggat waktu.
Pengembang perangkat lunak tidak bisa saling menggantikan. Pengembang membangun pengetahuan tentang sistem ketika sistem tumbuh, dan menambahkan sumber daya baru perlu untuk mengatasi pengetahuan kontekstual yang hilang dari sumber daya baru.
Beberapa praktik baik mengurangi risiko yang terkait dengan tidak tersedianya tiba-tiba:
Membawa pengembang baru ketika ada tenggat waktu yang ketat sangat menantang, karena memberi pengarahan kepada pendatang baru membutuhkan waktu tim, dalam periode di mana tidak ada waktu luang. Jika Anda sakit selama 1 minggu tidak masuk akal. Ini harus dipertimbangkan jika biaya pengarahan pendatang baru dikompensasi oleh manfaat dari sumber daya baru, biasanya jika ada biaya tinggi terlambat, atau jika tidak mungkin untuk menunda, atau jika tidak tersedianya jangka waktu yang lebih lama.
sumber
Rencana yang biasa untuk ini adalah membangun kemungkinan ke tenggat waktu. Hal-hal terjadi, Anda sering tidak pernah mencapai tenggat waktu. Anda menjadi tidak tersedia hanyalah cegukan lain dalam rencana yang disusun dengan hati-hati yang tidak pernah berjalan sesuai rencana!
sumber
Ini disebut "faktor bus". Pada dasarnya, risiko yang ditimbulkan proyek jika pengembang ditabrak bus. Memiliki pengembang tidak tersedia selama seminggu adalah masalah kecil dibandingkan dengan kehilangan pengembang secara permanen. Ini bisa menjadi kecelakaan atau penyakit yang tiba-tiba, tetapi tidak terlalu dramatis, bisa saja menjadi pengembang inti yang beralih pekerjaan dalam waktu singkat atau dipecat. Atau pengembang inti ditransfer ke tugas prioritas tinggi lain di departemen yang berbeda.
Singkatnya, Anda harus merencanakan untuk menurunkan faktor bus, atau Anda harus siap untuk menguranginya, misalnya dengan memiliki buffer dalam tenggat waktu atau cukup fleksibel untuk dapat mendorong tenggat waktu. Apa yang biasanya tidak dapat Anda lakukan adalah melakukan outsourcing tugas yang kompleks dalam waktu singkat, atau merekrut pengembang baru - hampir selalu membutuhkan lebih banyak waktu untuk memperkenalkan pengembang baru ke sistem yang ada daripada menunggu seminggu bagi pengembang inti untuk kembali. Jika tim kecil kehilangan anggota mereka tentu saja akan lebih lambat, tetapi jika juga harus memperkenalkan anggota baru, mereka bahkan akan lebih lambat .
Anda dapat menurunkan faktor bus dengan meminta tim berbagi pengetahuan secara terus-menerus dan ulasan sejawat (atau bahkan pemrograman pasangan). Tetapi tentu saja ini adalah sesuatu yang harus terjadi sebelum bus tiba.
sumber
Setiap karyawan dapat menjadi tidak tersedia selama seminggu, atau sebulan, atau selamanya, tanpa pemberitahuan, kapan saja. Kecelakaan, sakit, sudah cukup dari pekerjaan ini, banyak alasan lain. Terserah manajemen untuk memastikan bahwa kejadian seperti itu menjengkelkan, mungkin mahal, tetapi bukan bencana.
Jika Anda memiliki tim sepuluh, Anda mungkin kehilangan 10% dari tim Anda. Perusahaan harus dapat mengatasinya jika anggota tim lainnya termotivasi (membayar lembur sangat memotivasi). Jika Anda adalah satu tim, maka pekerjaan itu tidak akan selesai. Jika Anda memiliki karyawan lain yang dapat ikut serta, penundaan dapat diminimalkan. Menyewa seseorang dari luar akan sulit, meskipun Anda mungkin menemukan beberapa kontraktor yang dapat mulai pada pemberitahuan hari selama beberapa minggu dengan tarif per jam yang sangat tinggi.
Hal terbaik untuk dilakukan adalah memiliki kontrak dll. Sehingga penundaan penyelesaian suatu produk bukan bencana keuangan. Dan untuk memiliki tanggal penyelesaian yang terencana dan dapat dicapai sebelum tenggat waktu. Mempunyai karyawan yang dapat membantu satu sama lain membantu (tetapi dapat menjadi masalah untuk dicapai).
Dan jika Anda memiliki tenggat waktu yang harus dicapai, maka mungkin ruang lingkup pekerjaan lebih fleksibel. Dengan kata lain, jatuhkan fitur untuk memenuhi tenggat waktu Anda.
sumber
Salah satu cara kunci untuk mengurangi "Bus Factor" yang @JacquesB sebutkan di atas adalah pemrograman pasangan sebagai teknik inti. (Praktek saya sendiri adalah menggunakan istilah "Faktor Lotere" karena itu kurang morbid tetapi efeknya sama.)
Banyak pengembang membenci pemrograman pasangan; banyak manajer membencinya juga, karena alasan yang sama sekali berbeda (beberapa pengembang benci dipaksa untuk berkomunikasi dengan manusia lain untuk waktu yang lama; beberapa manajer sering merasa salah seolah-olah mereka membayar dua kali lebih banyak uang untuk satu output).
Namun, mempasangkan semua program dengan cara sama-sama menghilangkan risiko satu titik kegagalan manusia, dengan memastikan bahwa tugas pengembangan apa pun dilakukan dan dipahami oleh setidaknya dua pengembang.
sumber
Ada beberapa cara saya melihat hal semacam ini ditangani:
Bagikan latihannya
Hal yang paling jelas untuk dilakukan adalah membagikan pekerjaan di antara sumber daya yang ada (dengan asumsi ini mungkin). Bagaimana memastikan para pengembang mulai bekerja hampir merupakan jawaban dalam dirinya sendiri tetapi pada akhirnya, itu bermuara pada persyaratan perekaman yang tepat, desain dan kemajuan. Hal-hal seperti pemrograman pasangan juga dapat sangat membantu di sini.
Dorong tenggat waktu kembali atau coba cakar waktu kembali
Periksa dengan pelanggan untuk melihat apakah tenggat waktu dapat diperpanjang. Atau, dimungkinkan untuk mendapatkan tambahan waktu pengembangan dengan bekerja malam hari, akhir pekan dan hari libur.
Jatuhkan tugas lain
Apakah ada tugas non-kritis lain yang dapat dibatalkan sementara untuk memberi ruang?
Majulah
Apakah ada pekerjaan yang direncanakan setelah pengembangan yang dapat dibawa ke depan seperti dokumentasi, skrip pengujian dan konfigurasi?
Akui saja sudah terlambat
Bicaralah dengan pelanggan lebih awal. Mungkin saja untuk memberikan sebagian - atau paling tidak, Anda bisa mendapatkan pengarahan yang layak pada prioritas relatif dari hal-hal lain.
Sumber daya tambahan
Suatu kemungkinan - tetapi ini sendiri membawa risiko. Ini akan membutuhkan waktu untuk meningkatkan kecepatan mereka dan karena bersifat sementara, mereka bisa membuat Anda lebih buruk.
Periksa jalur kritis
Jika pihak lain terlibat - periksa apakah mereka masih tepat sasaran. Tidak ada gunanya menggerakkan langit dan bumi untuk menyelesaikan sesuatu jika katakan, tim penguji satu bulan di belakang untuk menguji berbagai hal.
Menerima kenyataan risiko
Ada ungkapan umum dalam profesi hukum yang menyatakan bahwa masalah sulit menciptakan solusi yang buruk. Mungkin tergoda untuk mencoba dan membuat semua orang memahami segalanya untuk mencakup semua kemungkinan. Namun, ini adalah tugas bodoh.
Pengembang harus menghabiskan waktu berkualitas untuk perkembangan mereka sendiri. Mengkonsumsi jumlah waktu yang semakin meningkat menjadi au fait dengan perkembangan lain adalah kegiatan yang sangat dipertanyakan. Jalan tengah yang masuk akal mungkin untuk memiliki ahli materi pelajaran dan wakil.
sumber