Setelah mengerjakan proyek yang gagal adalah salah satu dari beberapa hal yang dimiliki oleh sebagian besar programmer, terlepas dari bahasa yang digunakan, industri atau pengalaman.
Proyek-proyek ini dapat menjadi pengalaman belajar yang hebat, bencana yang menghancurkan jiwa (atau keduanya!), Dan dapat terjadi karena banyak alasan:
- perubahan manajemen atas hati
- tim yang kurang terampil / kekurangan sumber daya
- Munculnya pesaing unggul selama siklus dev
- manajemen over / under
Setelah Anda mengerjakan beberapa proyek seperti itu, apakah mungkin untuk mengenali pada tahap awal tepat ketika sebuah proyek pasti gagal?
Bagi saya, tanda besar adalah memiliki tenggat waktu eksternal yang keras & cepat yang dikombinasikan dengan fitur creep . Saya telah melihat proyek-proyek yang direncanakan dengan baik dan berjalan sesuai jadwal berjalan dengan sangat buruk begitu permintaan fitur yang terlambat mulai bergulir dan ditambahkan ke "pengiriman akhir". Pengusul permintaan ini mendapat julukan Columbo , karena jarang meninggalkan ruangan tanpa meminta "hanya satu hal lagi".
Apa saja tanda-tanda peringatan yang Anda waspadai yang memicu lonceng alarm akan terjadinya malapetaka di kepala Anda?
sumber
Jawaban:
Pengodean Heroik
Pengodean sampai larut malam, bekerja berjam-jam, dan mencatat banyak waktu lembur adalah pertanda pasti bahwa ada yang salah. Lebih jauh, pengalaman saya adalah bahwa jika Anda melihat seseorang bekerja lembur pada suatu titik dalam proyek, itu hanya akan semakin buruk. Dia mungkin melakukannya hanya untuk mendapatkan satu fitur kembali sesuai jadwal, dan dia mungkin berhasil; Namun, pengkodean koboi seperti itu hampir selalu merupakan hasil dari kegagalan perencanaan yang pasti akan menyebabkan lebih dari itu dalam waktu dekat. Jadi, lebih awal dalam proyek yang Anda lihat, semakin buruk nantinya.
sumber
*
dan&
lebih atau kurang secara acak di depan variabel dalam kode C ++ saya dengan harapan bahwa benda sialan itu akan mulai bekerja. Aku bukan bagian dari perguruan tinggi.Ketika programmer mulai memenangkan argumen "Kode ini mengerikan, kita harus memulai dari awal." pada aplikasi dewasa.
Anda mungkin berpikir Anda bisa membangunnya lebih baik, atau memahami masalahnya lebih lengkap, tetapi Anda benar-benar tidak. Oh, dan semua tambalan jelek itu? Mereka adalah perbaikan untuk masalah dunia nyata yang akan Anda perkenalkan kembali dalam penulisan ulang.
Plus, suatu hari Anda harus menjelaskan kepada manajer proyek mengapa setelah 6 bulan bekerja Anda hampir mencapai 85% dari kemampuan dan 150% dari bug yang dimiliki aplikasi ketika Anda mulai.
sumber
Alat baru sebagai pemecah masalah.
Ketika orang-orang mulai berencana untuk menggunakan alat-alat yang tidak dikenal, saya tidak keberatan, tetapi saya tetap memperhatikannya. Ketika mereka mulai merencanakan semua manfaat yang diiklankan dari alat-alat itu ke dalam jadwal, saya merasa khawatir. Contoh menyenangkan:
Teknologi dan praktik baru sangat bagus, tetapi Anda hampir tidak pernah mendapatkan semua manfaat dari gerbang.
sumber
Bagi saya satu-satunya masalah terbesar, dan yang dapat Anda temui segera, adalah ketika bisnis menganggap persyaratan tertulis sebagai pemborosan waktu.
Jadi pada dasarnya; Tidak Ada Persyaratan Tertulis
Itu ciuman kematian.
sumber
Putus Manajemen
Ketika mereka yang bertanggung jawab atas tenggat waktu, fitur, kepegawaian, dll terputus dari orang yang bertanggung jawab untuk mengirimkan proyek. Ini dapat menyebabkan:
Jadi, ketika tampaknya manajemen tidak tertarik pada proyek, berkomunikasi dengan buruk, tidak mendengarkan pelanggan, atau tidak mendengarkan tim pengembang, lari ke perbukitan.
sumber
Ketika pengembang utama pergi dan manajemen tidak peduli
Ketika pengembang utama pergi dan tidak ada pengembang lain yang peduli
Nomor satu biasanya menunjukkan manajer yang sangat tidak berhubungan dengan dinamika tim (yang merupakan "bintang super 10x", yang merupakan programmer yang baik, dan bagaimana mereka berinteraksi satu sama lain, dll.).
Nomor dua biasanya menunjukkan kurangnya minat pada pengembang yang tersisa.
sumber
Pertama kali seseorang, biasanya manajemen mengatakan "kita tidak punya waktu untuk .."
Biasanya mendahului sesuatu yang kita tidak punya waktu untuk tidak melakukannya, seperti dokumentasi atau ulasan kode (yang secara statistik menemukan dan memperbaiki lebih banyak bug dari yang lainnya, termasuk semua bentuk pengujian)
sumber
Biarkan pelanggan, pemasaran atau manajemen memilih tanggal dan kemudian mencoba bekerja mundur ke jadwal imajiner
sumber
Ketika manajemen terlalu lemah untuk mengatakan "Tidak" pada bisnis.
Ini mengarah ke tenggat waktu yang tidak akan pernah terpenuhi, yang mengarah ke kurangnya kepercayaan pada departemen TI yang menyebabkan pengembang membuat peretasan (yaitu akses db yang berjalan pada mesin seseorang ... di suatu tempat) yang mengarah ke mimpi buruk bagi TI ketika ' sistem kritis 'harus dimigrasi yang mengarah ke ...
sumber
Tanda buruk pertama yang bisa saya pikirkan adalah ketika manajemen tidak mau menyampaikan berita buruk ke rantai atau ke klien dengan harapan bahwa itu akan hilang - yaitu manajemen dengan angan-angan. Saya tidak dapat memikirkan berapa kali, pengembang telah membuktikan bahwa mereka tidak dapat memenuhi tenggat waktu minggu atau bahkan berbulan-bulan sebelumnya, namun tidak ada yang mau memberi tahu klien. Saya jarang melihat seorang klien yang tidak akan memaksakan tenggat waktu ketika ada alasan tulus ketika kebutuhan itu dijelaskan sebelumnya; Saya sering melihat klien yang kesal ketika diberi tahu pada hari batas waktu bahwa itu tidak akan dipenuhi dan bahwa itu tidak akan dipenuhi pada hari berikutnya juga, tetapi dua bulan kemudian. Pada titik ini mereka, mungkin saya tambahkan, mempertanyakan proses Anda - bagaimana Anda tidak tahu ini sebelumnya.
Tanda pasti lain bahwa kegagalan akan datang adalah untuk menetapkan pengembang baru ke bagian yang paling sulit, paling kritis dari proses daripada orang-orang yang sudah memahami sistem saat ini. Maka jangan perhatikan mereka dengan seksama untuk melihat apakah mereka benar-benar menyelesaikan pekerjaan dengan benar atau memiliki pertanyaan (BENDERA BESAR BESAR MERAH jika tidak ada pertanyaan). Karyawan baru perlu dimonitor sampai Anda tahu mereka benar-benar memiliki keterampilan yang mereka miliki. Saya masih ingat menghabiskan satu musim panas yang menyakitkan mengulangi pekerjaan (sudah melewati batas waktu ketika saya mendapatkannya) dari seorang karyawan baru yang mendapat bagian penting dari sebuah proyek dan mengatakan kepada semua orang semuanya baik-baik saja selama berbulan-bulan dan kemudian berhenti tanpa pemberitahuan satu minggu dari tenggat waktu. dan tidak ada yang dia lakukan yang bisa digunakan.
Tanda kegagalan yang pasti adalah ketika pengembang mengerjakan bagian yang bergantung pada hal-hal lain yang dilakukan terlebih dahulu dan hal-hal itu tidak dilakukan atau bahkan dimulai. Jika manajemen tidak bisa mendapatkan pekerjaan yang ditugaskan dalam urutan yang benar, Anda akan turun tabung.
Tentu saja fitur merayap tanpa mendorong batas waktu kembali setiap kali adalah salah satu tanda paling umum hal-hal akan menjadi buruk. Anda menambahkan 20 jam kerja ke piringan saya, batas waktu akan dipindahkan oleh 20 jam. Jika tidak maka proyek akan gagal, dijamin.
sumber
Satu tanda pasti yang saya lihat dalam karier saya adalah ketika manajemen mulai berbicara tentang membawa lebih banyak orang untuk memperbaiki waktu dalam jadwal. Saya tidak pernah benar-benar melihat lebih banyak orang dalam suatu bantuan proyek.
sumber
Ketika manajer non-teknis mulai bersikeras untuk membuat keputusan teknis bahwa mereka sama sekali tidak memenuhi syarat untuk membuat. Besar, bendera merah besar!
sumber
Tanda yang paling jelas adalah pergantian staf yang tinggi. Ketika semua orang mencari pekerjaan baru, Anda mungkin juga harus melakukannya.
Tanda lain yang sangat jelas adalah kurangnya kemajuan. Jika satu tahun telah berlalu, dan sepertinya Anda tidak mendekati target, Anda akan menemui ajal. Ini terjadi terutama ketika persyaratan berubah lebih cepat daripada yang dapat Anda terapkan.
sumber
Anggota tim yang bosan.
sumber
Anda sudah "90% selesai", pengirimannya minggu depan, tetapi tidak apa-apa karena yang tersisa adalah "pengujian".
sumber
(Disarikan dari Jim McCarthy's Dynamics of Development Software ).
sumber
Coder koboi, ego besar, dan penerimaan manajemennya
sumber
Jika rencana proyek membutuhkan satu iterasi desain, pengembangan, pengujian dan penyebaran - air terjun klasik - untuk proyek lebih dari 1 bulan, saya akan berlari satu mil.
Anda tidak perlu gesit sepenuhnya, tetapi memiliki siklus pengembangan yang singkat memungkinkan Anda untuk menunjukkan kemajuan kepada semua orang (pelanggan, manajemen, dan pengembang sendiri) dan mengatasi persyaratan yang berubah ketika hal yang tak terhindarkan terjadi.
sumber
Pengembang Berlari Liar di Kisaran
Ini terjadi ketika Anda menyadari bahwa pengembang lain (atau, sayangnya, Anda) telah mengembangkan komponen yang sangat berbeda dari desain, dan bahwa ini tidak diambil sampai masuk ke pengujian sistem / UAT. Saya tidak berbicara bug; Saya berbicara tentang komponen sistem yang signifikan adalah fitur yang hilang atau belum digunakan untuk fungsi dan tidak akan pernah lulus UAT tanpa pengerjaan ulang yang signifikan. Masalah ini menunjukkan bahwa:
sumber
Ketika pengembang utama pada suatu proyek belum memeriksa kode apa pun selama berminggu-minggu dan tonggak yang serius akan datang.
Itu adalah pekerjaan kontrak dan pengembang yang lebih senior dan PM di pekerjaan memutuskan mereka ingin bekerja sama untuk mencoba mendapatkan potongan yang lebih besar sehingga pengembang lain menahan sandera kode kritis selama 3 minggu. Pada akhirnya, kami memecat PM yang tidak kompeten (yang telah menghabiskan 6 bulan menempatkan proyek pada kehancuran) dan membicarakan hal-hal dengan pengembang.
Cukuplah untuk mengatakan, sisa dari proyek itu adalah mars kematian masokis, pembekuan spesifikasi tertunda, pelanggan diberi banyak fitur konsesi untuk menebus penjadwalan mengerikan yang ditinggalkan PM meninggalkan proyek, dan kualitas proyek menderita semua karena itu.
PM bahkan memiliki keberanian untuk terbang ke CDR (Critical Design Review) hanya untuk menutup pertemuan dengan klien dan melempar bunyi desis. Ketika dia menuntut agar biaya perjalanannya dibayar berdasarkan proyek, dia dengan sopan disuruh pergi beramal dengan dirinya sendiri.
Saya dapat dengan mudah mengidentifikasi dengan setidaknya 5 jawaban lain yang ditemukan di sini yang mempengaruhi proyek itu. Singkatnya, saya belajar banyak pelajaran sulit tentang proyek pengkodean serius pertama saya.
sumber
Tanda pertama saya pada salah satunya adalah ketika mereka bertanya berapa jam lembur yang kita masing-masing akan berkomitmen untuk sepuluh minggu ke depan dan menawarkan bonus kepada pekerja yang digaji untuk bekerja mengatakan lembur berdasarkan keberhasilan proyek dan memenuhi tenggat waktu.
Tanda-tanda utama lain yang pernah saya lihat: Persyaratan definisi lebih dari jadwal dan tanggal akhir tidak dipindahkan. Kami berada di belakang bahkan sebelum kami bisa mulai. Mereka mengambil waktu dari desain, jadi kami mulai tanpa desain database dan desain situs tetapi diharapkan tepat waktu, antara lain, melakukan impor ke tabel yang belum dirancang dan dibuat.
Ketika item di jalur kritis dilakukan secara bersamaan alih-alih berurutan. (Jika saya diharuskan menggunakan alat X dan programmer A baru mulai membangunnya, itu akan menunda tugas saya.)
Ketika manajer melakukan kode pada Thanksgiving.
Ketika Anda mulai mendapatkan email yang memiliki stempel waktu lebih dari 11 malam dan lebih awal dari pukul 6 pagi.
Ketika setiap pertanyaan tentang bagaimana menangani beberapa kompleksitas bertemu dengan jawaban yang sama, "Jangan khawatir tentang itu."
Ketika mereka masih membuat perubahan persyaratan pada hari pertama Anda pergi ke QA atau ditayangkan.
Ketika Anda mulai mengadakan pertemuan harian yang membutuhkan waktu beberapa jam untuk membahas kurangnya kemajuan Anda. Oh, itu karena aku ada rapat sepanjang hari. Rapat harian 5 menit, rapat harian lebih dari satu jam, tidak baik.
Ketika tim basis data dan tim aplikasi tidak saling berbicara.
Ketika klien tidak dapat memberikan informasi yang dijanjikan tepat waktu. Terutama ketika itu adalah file impor data dan Anda memerlukan data dalam database untuk memeriksa untuk melihat bagaimana kode bekerja.
Ketika Anda mempertimbangkan untuk memasang lampu berhenti di luar kantor manajer untuk memberi tahu Anda apakah aman untuk mendekatinya hari itu.
sumber
Saya pikir itu umumnya mudah untuk menemukan proyek gagal ketika tenggat waktu mendekat. Seperti yang Anda katakan, fitur creep dikombinasikan dengan tenggat waktu set-in-stone adalah cara yang pasti untuk membunuh suatu proyek.
Namun kuncinya adalah menemukan cara proyek yang gagal di muka. Saya pikir satu-satunya 'tanda azab' yang nyata dalam kasus ini adalah ketiadaan definisi tentang 'kapan kita selesai'. Kecuali kita tahu ini di offset kita ditakdirkan untuk kegagalan IMO.
sumber
Saya telah berada di tiga pawai kematian dalam lima tahun terakhir. Berikut adalah beberapa hal yang berkontribusi pada firasat saya akan azab yang akan datang.
sumber
Bagi saya, itu adalah ketika orang-orang yang bertanggung jawab untuk set fitur (alias manajer, pemilik produk, pelanggan ...) berhenti peduli atau tampaknya tidak punya harapan tentang jawaban mereka. Pertanyaan tentang fitur bertemu dengan apatis dan keputusasaan. Jelas bahwa mereka telah kehilangan investasi atau kepercayaan pada proyek.
Ini terjadi pada saya ketika sebuah proyek saya berada di "hit hati manajemen atas" memukulnya. Saya mengajukan pertanyaan tentang bagaimana itu seharusnya bekerja dan tiba-tiba tidak ada yang memiliki pendapat yang sebenarnya.
Beberapa saat kemudian proyek dibatalkan dan semua kode indah yang saya tulis dihapus.
sumber
Paul Vick menulis posting yang sangat baik beberapa tahun yang lalu tentang proyek lubang hitam . Saya pikir semua saran itu relevan. (Saya sudah mengedit panjang item dan ringkasan.)
sumber
Saya menerjemahkan secara mental, "Semuanya baik-baik saja. Kami tidak perlu khawatir." untuk "Kita semua kacau" setiap kali saya mendengarnya manajemen mengatakannya. Anda biasanya mendengar manajer melemparkannya secara tidak sengaja dalam pertemuan yang tidak terkait ("Oh dan omong-omong, semuanya baik-baik saja. Tidak ada alasan untuk khawatir!"), Tetapi itu merupakan bendera merah yang lebih besar untuk mengadakan rapat yang secara khusus dipanggil untuk mengatakan itu.
Saya belum pernah mendengar seorang manajer mengatakan sesuatu seperti itu dan membuatnya tidak bohong.
sumber
beberapa poin dari proyek mati saya adalah bagian dari:
sumber
Ketika manajemen menarik proyek ke arah yang berbeda secara bersamaan dan kereta tetap diam.
Saya pernah terlibat dalam proyek yang dikelola oleh dua orang. Entah mereka tidak berbicara satu sama lain atau masing-masing memiliki ego untuk diselesaikan, tetapi mereka memerintahkan pekerjaan kami ke arah yang berlawanan tentang setiap minggu atau lebih. Tidak butuh waktu lama untuk menyadari bahwa tidak akan ada hasil apa pun. Dengan senang hati partisipasi saya hanya berlangsung beberapa bulan.
sumber
Lihat artikel ringkas ini: Saat Proyek TI Berlangsung Benar .
Tidak adanya elemen yang disebutkan dalam artikel harus membuat bel alarm berbunyi:
Jadi pastikan proyek Anda memiliki semua hal berikut, jika tidak maka Anda harus khawatir:
(Mengutip artikel di atas :)
"Yang pertama adalah bahwa mereka didasarkan pada visi yang jelas tentang apa yang harus dicapai."
"Karakteristik kedua menyangkut dukungan dan komitmen dari berbagai pihak yang terlibat di seluruh bisnis, terutama manajemen senior."
"Ketiga adalah pemahaman tentang masalah yang harus ditangani."
"Karakteristik umum terakhir adalah sumber daya dan keterampilan yang memadai telah tersedia."
sumber
Secara statistik awal proyek perangkat lunak adalah tanda yang adil bahwa itu akan gagal, karena mayoritas dari mereka melakukannya ...
sumber