Kita semua pernah ke sana:
- Proyek Anda gagal atau dibatalkan.
- Kode yang Anda habiskan berhari-hari bekerja ditolak oleh tim Anda.
- Pola desain yang Anda perkenalkan kepada tim menciptakan kekacauan.
- Semua orang mengabaikan ide Anda.
Pertanyaan saya adalah, apa cara paling produktif bagi seorang programmer untuk menangani kegagalan terkait pembangunan seperti ini?
Jawaban:
Pengembangan perangkat lunak sangat rentan terhadap kegagalan proyek, dan tergantung pada tingkat keparahannya, ini paling baik ditangani oleh manajemen.
Banyak proyek telah gagal dan banyak lagi yang akan gagal, maka catatlah! Pelajari mengapa proyek Anda gagal sehingga Anda tidak membuat kesalahan yang sama lain kali. Anda belajar lebih banyak dari kegagalan Anda daripada dari kesuksesan Anda.
Simpan pekerjaan Anda (untuk nanti). Ada dua kemungkinan: (a) Menyebalkan, dan fakta bahwa banyak orang merespons dengan cara yang sama merupakan indikasi dari hal ini (b) Ini benar-benar karya jenius, tetapi jauh di depan apa yang digunakan atau dapat dipahami orang. Orang pada umumnya tidak menyukai apa yang tidak mereka mengerti. Mungkin lebih baik untuk menunjukkan kapan waktunya tepat ATAU di tempat yang berbeda dengan "Budaya" yang berbeda
Ini mungkin ide yang buruk, ATAU budaya tidak selaras dengan pemikiran Anda. Entah pindah ke tempat yang mendukung budaya Anda atau mengevaluasi kembali ide Anda secara kritis (secara objektif tanpa bias Anda sendiri) -> apakah ide saya benar-benar bagus? <- Bunuh egomu
Jujur saja, Anda sudah mencoba yang terbaik tetapi ternyata tidak seperti yang Anda rencanakan. Mungkin lebih baik untuk memulai lagi atau belajar dari kesalahan yang dibuat dalam desain sebagai tim dan bergerak maju.
sumber
Itu bukan kegagalan - itu adalah pengalaman
Anda belajar dan tumbuh dari pengalaman Anda dengan merefleksikan bagaimana perasaan mereka membuat Anda dan jika Anda menginginkan lebih dari perasaan itu.
Jika itu adalah pengalaman buruk (seperti daftar yang Anda tawarkan) maka perasaan buruk yang menyertainya mungkin adalah sesuatu yang ingin Anda hindari (dengan asumsi Anda tidak begitu berkulit tebal sehingga Anda tidak peduli dengan dampak tindakan Anda).
Secara keseluruhan, jangan terlalu terlibat dalam membandingkan diri Anda dengan orang lain, mereka mengalami banyak kesulitan dalam mengerjakan semuanya seperti Anda .
sumber
sumber
Anda membangun sesuatu.
Bagi saya (saya pikir itu tidak tepat untuk semua orang), membangun sesuatu (komik, gambar, permainan kecil, apa saja) adalah seperti membangun sedikit kepercayaan diri untuk kembali ke kegagalan perjuangan. Mungkin juga cara yang baik untuk mengungkapkan kemarahan atau kepahitan Anda atau perasaan apa pun yang berhubungan dengan kegagalan, tetapi dengan cara yang "konstruktif".
Lagipula itu berhasil bagi saya.
sumber
Baiklah, Anda bertanya :) Satu per satu:
Itu bukan hal baru. Kita semua gagal secara pribadi, dan kita semua gagal dalam tampilan penuh dari rekan-rekan kita. Siapa pun yang telah menempuh pendidikan dasar dan menengah telah mengalami hal ini.
Jika saya tidak dapat membuat kesalahan dan mengharapkan pekerjaan yang stabil, Anda harus mempertimbangkan untuk mengirim memo ke HR agar mereka tahu bahwa manusia akan dilarang dari pertimbangan di masa depan.
Beberapa kegagalan berturut-turut berarti Anda memiliki tuntutan dan spesifikasi yang tidak masuk akal, atau Anda tidak belajar dari kesalahan Anda. Skenario manapun meminta tindakan segera.
Bisa dibayangkan bahwa banyak orang menandatangani sesuatu hanya untuk mendapatkan pekerjaan, kemudian mencari cara untuk mewujudkan persyaratan tersebut.
Yang terjadi. Seperti yang dicatat orang lain, simpanlah. Melakukannya lagi. Inilah mengapa kami menyebutnya bekerja. Saya pikir, dalam hal ini, Anda mungkin tidak melibatkan tim terlalu banyak dalam apa yang Anda lakukan.
Bisa juga persyaratan berubah kemarin, atau satu jam yang lalu. Namun ini harus menjadi pengecualian, bukan norma. Tinjauan sejawat sama brutalnya dengan membantu. Jika kode Anda terus-menerus diberhentikan sebagai 'tidak memadai' (atau semacamnya), Anda harus menghabiskan lebih banyak waktu memilih otak dan melibatkan orang lain. Saya percaya pertanyaan ini menjadi kekeliruan di sebagian besar pengaturan tim, kecuali jika 'tim' tidak bisa menggambarkan diri.
Sekali lagi, ini membutuhkan konteks. Sudah berapa lama kamu di sana? Seberapa besar rekan peretas Anda memercayai kemampuan Anda? Sudahkah Anda mempertimbangkan bahwa ide-ide yang menghasilkan lebih banyak pekerjaan bagi banyak orang mungkin mengundang alasan APA SAJA untuk menolaknya? Saya pernah memiliki sesuatu yang diberhentikan karena IPV6 belum siap, namun menggunakan soket domain sederhana pada perangkat loopback (khusus). Orang yang menenggelamkannya tidak bisa lagi bekerja.
Juga, seberapa baik Anda mengartikulasikan diri sendiri? Bisakah Anda berteman dan memengaruhi orang?
Karena itu mengapa kekerasan harus dihindari. Mampu berbicara bukanlah prasyarat untuk dapat mendengarkan. Tidak ada komentar lain.
sumber
Oh boy, itu banyak jika Anda benar-benar berarti semuanya terjadi pada Anda!
PERINGATAN : Dalam banyak poin di bawah ini Anda mungkin merasa seperti saya mengkritik Anda dan bahwa saya ingin membuat Anda bertanggung jawab atas kesalahan-kebahagiaan dan tidak mempertimbangkan faktor-faktor eksternal. Bukan saya. Hanya saja Anda tidak memberikan banyak perincian, dan saya hanya memberikan daftar tindakan untuk memastikan bahwa semuanya tidak berjalan salah. Saya tahu saya sendiri telah melakukan banyak kesalahan (semua orang) dan kita hanya akan menjadi lebih baik jika kita belajar darinya. Dan untuk belajar dari mereka, kita harus mulai melihatnya sebagai kesalahan sejak awal, dan menerima tanggung jawab atas kesalahan kita. Sial, terima tanggung jawab atas kesalahan yang terjadi di bagian orang lain, Anda bisa belajar dari itu juga.
Proyek Anda gagal
Tidak banyak yang dapat Anda lakukan untuk mengurangi itu sekarang.
Namun Anda dapat melakukan banyak hal untuk menghindari hal itu terjadi di masa depan. Saya sarankan mencoba meningkatkan keterampilan manajemen proyek dan waktu Anda.
Salah satu buku dengan rasio terbaik ((saran yang valid) / halaman) yang pernah saya baca tentang subjek ini, sementara mungkin bukan yang terbaik, itu adalah Rad Thomsett's Radical Project Management .
Anda tidak benar-benar menentukan apa proyek Anda gagal, tetapi saya akan menganggap kombinasi hal yang membawa ketidakseimbangan dalam biaya / waktu / qualiy segitiga biasa . Faktor yang paling penting di mata saya adalah untuk memimpin proyek dan pengembangan sambil selalu berhubungan dengan kedua aktor teknis Anda (pengembang dan penguji) tetapi juga para pemangku kepentingan Anda. Terlalu banyak proyek gagal karena tidak mendengarkan sponsor atau pemangku kepentingan dan tidak mendorong mereka untuk terlibat dalam proses.
Jika mereka tidak terlibat, Anda tidak bisa tahu apa yang mereka inginkan. Jika Anda tidak tahu apa yang mereka inginkan, Anda tidak bisa mengirimkannya. Jika Anda tidak mengirimkannya, mereka tidak akan senang. Itu gagal. Selain itu, jika Anda tidak melibatkan pemangku kepentingan Anda, mereka terputus dari realitas rekayasa perangkat lunak, yang berarti mereka tidak memahami masalah Anda. Jika mereka sering berhubungan dengan Anda, mereka mendapatkan pemahaman yang lebih baik tentang apa yang harus Anda tangani. Mereka akan lebih bisa memahami ketika Anda memberi tahu mereka bahwa fitur [tawa] "kecil" akan memakan waktu berbulan-bulan. Mereka dapat mempercayai perencanaan Anda dengan lebih baik karena mereka membantu membangunnya. Sebuah proyek tidak dapat berhasil hanya dengan "spesifikasi di awal, dev, pengujian, pengiriman di akhir". Itu tidak pernah terjadi. Anda dapat memberikan apa yang diminta dalam spesifikasi,
Yang paling penting juga, lakukan retrospektif , dan pastikan itu tanpa ego dan bukan permainan menyalahkan. Identifikasi saja masalah.
Pengodean yang Anda habiskan selama berhari-hari ditolak oleh tim Anda
Saya sudah dalam situasi itu. Sekali lagi, tidak banyak yang dapat Anda lakukan untuk mengurangi itu kecuali:
Tetapi ada beberapa hal lagi yang dapat Anda lakukan untuk mencegah situasi seperti ini:
Tidak ada yang mendengarkan ide Anda di perusahaan Anda
Ada 2 opsi di sini, dan kita akan melihat keduanya:
Mari kita mulai dengan menganggap mereka buruk (sekali lagi, merefleksikan diri sendiri tentang itu dan menerima ide Anda benar-benar buruk mungkin sulit, saya tahu). Apa yang Anda lakukan untuk mengubahnya?
Gagasan hanyalah gagasan. Jika Anda hanya menyarankan mereka sebagai ide dan mereka ditolak, saya tidak melihat mengapa Anda akan merasa sedih karenanya. Namun jika Anda bertindak atas mereka tanpa memberitahu siapa pun dan MAKA hanya mengirimkan ide-ide Anda dan mereka ditolak, jelas saya merasakan frustrasi pada saat itu sia-sia. Dan manajer Anda melakukannya!
Anggap ide Anda bagus:
Pola desain yang Anda perkenalkan dengan kekuatan di tim Anda membuat kekacauan
Juga, saya sedikit terkejut dengan pendekatan itu sendiri. Anda harus benar-benar mendorong untuk pola desain yang akan diperkenalkan? Itu agak aneh. Sebuah pola sudah ada di sana, atau Anda perlu memperbaiki bagian dari solusi Anda sesuai dengan pola tersebut. Anda tidak mendorongnya seperti Anda akan mengadopsi kerangka kerja atau teknologi (seperti orang - orang mendorong sangat keras untuk memiliki XML di mana-mana, dan sekarang seperti orang-orang mulai mendorong untuk dapat menulis HTML5 pada sampul produk mereka dalam huruf-huruf besar yang terang).
Mengapa Anda harus mendorong? Mengapa ada perlawanan? Mungkin itu dibenarkan.
Apakah Anda dapat memberikan contoh bahwa pola tertentu ini akan membantu meningkatkan basis kode Anda secara signifikan (misalnya, dengan mencocokkannya dengan contoh Refactoring ke Pola ).
Catatan yang sepenuhnya di luar topik, tetapi itulah yang pertama kali saya pikirkan ketika saya membaca judul pertanyaan ketika saya pikir itu merujuk pada kegagalan perangkat lunak ... Saya memiliki perangkat lunak yang mengimplementasikan kelas BlackHole untuk mengelola jenis pengecualian yang sangat khusus di salah satu komponen. Ini mungkin terlihat seperti (dan benar-benar) peretasan yang jelas-jelas aneh dan kotor, tetapi penamaannya sendiri sangat luar biasa, kami semua menghargainya karena cara yang cukup keren untuk menangani kegagalan! :)
sumber
Langkah 1: Tidak apa-apa untuk marah!
Pertama, bisa dimengerti untuk marah atau marah ketika menemui kegagalan. Jika memberi nasihat kepada seseorang dalam situasi seperti itu, kemungkinan besar mereka tidak akan mau mendengar "Lupakan saja dan lanjutkan" atau "Anggap saja itu sebagai kesempatan belajar".
Sebenarnya, saya pikir sehat dan produktif bisa membuat Anda marah dan melampiaskan rasa frustrasi Anda, asalkan Anda melakukannya secara pribadi atau dengan seorang teman. Orang-orang memiliki cara yang berbeda untuk melakukan itu, tetapi saya pikir salah satu cara yang paling produktif adalah menulis surat palsu yang marah (Penting! Jangan mengirim surat ini kepada siapa pun ). Jelaskan perasaan Anda, seperti mengapa Anda merasa bahwa apa pun yang terjadi tidak dapat dibenarkan.
Langkah 2: Luangkan waktu untuk menenangkan diri.
Pastikan Anda telah mengungkapkan semua yang Anda rasakan, dan setelah melampiaskan kemarahan Anda, luangkan waktu untuk menenangkan diri. Mungkin Anda hanya perlu beberapa menit, atau mungkin beberapa jam.
Langkah 3: Tinjau apa yang terjadi pada langkah 1
Pada titik ini semoga Anda dapat berpikir lebih objektif tentang situasi ini. Jika Anda menulis surat, bacalah untuk diri sendiri. Jika Anda curhat pada seseorang, cobalah untuk mengingat apa yang Anda katakan. Jika Anda hanya membayangkan berteriak pada seseorang, maka tinjau saja secara mental.
Saya sering menulis surat ketika saya marah dan kemudian setelah saya tenang saya akan berusaha memperbaiki surat itu untuk lebih jelas mengomunikasikan apa yang awalnya saya coba katakan sampai saya puas bahwa seseorang yang membacanya akan mengerti apa saya perasaan pada saat itu.
Intinya adalah mencoba secara objektif untuk memilih poin Anda. Apakah itu masuk akal? Mungkin mereka membutuhkan klarifikasi atau perincian lebih lanjut. Apakah mereka tidak berdasar? Jika Anda secara objektif menempatkan diri pada posisi orang lain, akankah Anda memahami poin yang Anda buat? Apakah Anda setuju dengan poin-poin itu? Anda dapat menggunakan kesempatan ini untuk mengevaluasi diri Anda sendiri. Apa yang kamu lakukan dengan baik? Apa saja hal yang dapat Anda lakukan dengan lebih baik?
Langkah 4: Tentukan tindakan yang akan diambil
Adakah sesuatu yang dapat dilakukan untuk memperbaiki situasi atau setidaknya untuk memperbaikinya? Luangkan waktu sejenak untuk mempertimbangkan apakah ada yang realistis yang dapat dilakukan untuk memperbaiki atau memperbaiki situasi. Seringkali tidak ada, tetapi terkadang ada.
Jika Anda salah karena sesuatu, maka itu mungkin sesederhana permintaan maaf formal kepada seseorang, dengan jelas menjelaskan apa yang salah, apa yang Anda lakukan, mengapa Anda melakukannya, dan apa yang akan Anda lakukan untuk memperbaikinya atau mencegahnya terjadi di masa depan.
Selanjutnya, pertimbangkan apa yang dapat Anda lakukan untuk meningkatkan masa depan. Apa yang dapat Anda lakukan untuk mencegah hal yang sama terjadi lagi? Putuskan apa yang ingin Anda capai dan gunakan apa yang telah Anda pelajari dari langkah 3 untuk membuat rencana untuk diri sendiri.
Jika semuanya gagal, cobalah me-reboot:
sumber