Hanya ingin tahu, jenis godaan apa dalam pemrograman ternyata benar-benar berbahaya dalam proyek Anda?
Seperti ketika Anda benar-benar merasakan dorongan untuk melakukan sesuatu dan Anda yakin itu akan menguntungkan proyek atau Anda hanya menipu diri sendiri untuk mempercayainya, dan setelah seminggu Anda menyadari bahwa Anda belum menyelesaikan masalah nyata tetapi malah membuat yang baru atau , dalam kasus terbaik, senang binatang buas Anda tanpa dampak yang terlihat.
Secara pribadi, saya merasa sangat sulit untuk tidak memperbaiki kode buruk. Saya bekerja dengan banyak kode warisan yang buruk, dan butuh napas dalam-dalam untuk tidak menyentuhnya ketika saya tidak memiliki tes untuk membuktikan refactoring saya tidak merusak apa pun.
Setan lain bagi saya dalam antarmuka pengguna, saya benar-benar dapat menghabiskan berjam-jam mengubah tata letak UI hanya karena saya senang melakukannya. Kadang-kadang saya mengatakan pada diri sendiri bahwa saya sedang mengerjakan kegunaan, tetapi kenyataannya adalah saya suka memindahkan tombol.
Apa setan pemrograman Anda, dan bagaimana Anda menghindarinya?
Jawaban:
Generalisasi prematur adalah bugaboo besar saya; alih-alih menyelesaikan masalah yang dihadapi terlebih dahulu dan menunggu sampai ada kebutuhan aktual untuk menyelesaikan kasus umum, saya selalu mencari kasus umum di muka dan akhirnya menulis satu ton kode yang lebih kompleks daripada yang seharusnya.
Memperbarui:
Lihat " Dosa # 1 - Generalisasi Prematur " untuk penjelasan mendalam.
sumber
"Kami akan kembali ke sini dan memperbaikinya nanti. Kami hanya perlu bekerja sekarang!"
sumber
Tenggat waktu adalah soooooo jauh, saya punya lebih dari cukup waktu untuk melakukannya, jadi mengapa tidak menghabiskan sedikit waktu berselancar di web?
sumber
"Ini hanya membuang-bukti kode konsep. Begitu mereka menyukainya, aku akan benar-benar membuatnya baik."
sumber
sumber
Jatuh mangsa untuk mencoba membangun semuanya di rumah, ketika ada kerangka kerja dan perpustakaan.
sumber
Setan saya berulang: Optimasi prematur dan rekayasa ulang.
Dan saya masih tidak bisa menghindarinya 100% ...
sumber
Perkiraan yang terlalu optimis
Ketika manajer Anda menatap Anda ke bawah, dan Anda merasakan perasaan yang membara untuk memberikan perkiraan yang lebih rendah daripada yang dikatakan usus Anda ... jangan lakukan itu!
Bagaimanapun, usus Anda mungkin sudah terlalu rendah!
sumber
Untuk menggunakan teknologi / alat / bahasa dalam proyek Anda murni karena Anda baru saja mempelajarinya.
Untuk mencoba membuktikan seberapa baik pengembang Anda.
Untuk mempertimbangkan kode yang Anda tulis menjadi milik Anda.
sumber
Saya hanya akan istirahat dan melihat stackoverflow.com;)
sumber
Godaan terburuk:
Coba tebak, itu menyakitkan. :)
sumber
goto
pernyataan akan menghasilkan serangan raptor.Lupa bahwa menulis kode adalah jalan terakhir untuk menyelesaikan masalah .
sumber
Fitur Merayap
Buat rencana, patuhi, dan gunakan. Dan kemudian kembali dan tambahkan hal-hal yang diminta orang.
Saya telah melihat ini berulang kali. Anda duduk, mengerjakan desain, dan mulai coding. Para pengguna mendengar omong kosong bingung tentang fitur favorit mereka yang "hilang" dan mereka mulai melobi untuk itu. Bos Anda menuntut Anda menambahkannya pada jam ke-11, melanggar penerapan, memperkenalkan bug di mana-mana, dan 3 bulan kemudian, setelah semua orang tenang, Anda diminta untuk menghapusnya, karena tidak ada yang tahu mengapa Anda memasukkannya fitur retro jelek di tempat pertama! Tidak bisakah Anda mengatakan bahwa sisa desain membuatnya sia-sia?
sumber
Tambahkan lebih banyak fitur
Kompetisi memiliki fitur ini. Jadi ini adalah harus memiliki fitur maka lebih banyak pemrograman daripada menganalisis strategi, posisi, dll.
Kompetisi TIDAK memiliki fitur ini. Jadi ini adalah fitur yang membedakan maka lebih banyak pemrograman daripada menganalisis strategi, penentuan posisi, dll.
Memecahkan masalah bisnis dengan lebih banyak pemrograman. mis., keahlian yang lebih baik dalam mengelola server linux yang dihosting situs web Anda tidak dapat diperoleh melalui pemrograman lebih banyak fitur. Terkadang Anda hanya perlu belajar cara memperbaiki masalah daripada mengkode ulang semuanya menjadi C # .Net
Memecahkan masalah pemasaran dengan lebih banyak pemrograman. misalnya, menyalahgunakan konsep sapi ungu Seth Godin bahwa Anda secara tidak langsung memecahkan masalah pemasaran dengan memprogram lebih banyak fitur ke dalam produk Anda untuk menjadikannya "sapi ungu". Terkadang, itu hanya monster mutan.
Menyelesaikan masalah produktivitas dengan lebih banyak pemrograman yang berargumentasi pada diri Anda sendiri bahwa waktu yang dihabiskan untuk menulis skrip ini akan disimpan kembali dalam beberapa jam di masa depan, alih-alih sebenarnya memprogram hal-hal yang sangat penting
Berencana membuat kode tetapi belum mengkode karena Anda ingin "melakukannya dengan benar"
Menyandikan versi yang kotor dan berjanji bahwa Anda akan "membuatnya lebih baik nanti" tetapi tidak pernah kembali ke "membuatnya lebih baik"
Tidak melakukan mockup atau sitemap karena itu "sangat merepotkan". Saya hanya bisa screenshot halaman pesaing untuk maket dan menggambar sitemap "nanti" yang tidak pernah. Dan kemudian langsung masuk ke pemrograman halaman pertama yang saya bayangkan dalam pikiran saya.
Pengakuan: Saya pribadi membuat kesalahan 1, 3, 7, 8. Saya juga membuat 2, 4, 5, 6 tetapi sering menipu diri saya sendiri bahwa saya tidak melakukannya.
Saya sedang memperbaiki 9.
EDIT Tidak menyadari pertanyaan mengharuskan kami untuk memasukkan solusi.
1) Tambahkan lebih banyak fitur. Jangan lakukan itu. Bekerja dengan bisnis Anda, pemasaran, pendiri, penasihat, dll dan strip aplikasi Anda menjadi hanya satu hal.
Bacalah tentang twitter, Groupon , dll tentang bagaimana mereka menghapus semua hal menjadi hanya satu hal yang mengarah pada kesuksesan mereka.
Jika Anda pikir itu hanya berfungsi jika Anda ingin membangun perusahaan besar, pikirkan lagi. Ctrl + F untuk baris ini "Semakin banyak fitur yang saya tambahkan ke perangkat lunak, semakin buruk yang dijualnya. (Ini, tentu saja, sangat tidak intuitif bagi kebanyakan pengembang perangkat lunak.)" Di tautan ini
2) Kompetisi memiliki fitur ini. Jadi ini adalah fitur yang harus dimiliki
Lihat solusi 1
3) Kompetisi TIDAK memiliki fitur ini. Jadi ini adalah fitur yang membedakan
Lihat solusi 1
4) Memecahkan masalah bisnis dengan lebih banyak pemrograman.
Jika Anda perlu mempekerjakan seseorang untuk mengajar Anda, memberikan konsultasi, atau melakukannya untuk Anda dan kemudian mendokumentasikan bagaimana dia melakukannya, sehingga Anda dapat melakukannya sendiri di lain waktu. LAKUKAN SAJA!! Jangan menulis ulang kode, jangan lewat GO, jangan kumpulkan $ 200.
5) Memecahkan masalah pemasaran dengan lebih banyak pemrograman.
Jika orang tidak mengerti apa yang Anda jual, itu masalah pemasaran. Kembali ke solusi 1 dan inden.
6) Memecahkan masalah produktivitas dengan lebih banyak pemrograman
Tunggu.
Tunggu hingga Anda merasa bahwa produktivitas Anda mengalami masalah produktivitas tertentu untuk jangka waktu lebih dari 2 minggu dan itu wajar akan terjadi selama 2 minggu lagi.
Sekarang, evaluasi jumlah waktu yang dihabiskan untuk memprogram skrip untuk menyelesaikan masalah ini. Ingatlah untuk mengambil estimasi terburuk Anda dan kalikan dengan 2.
Lipat gandakan estimasi Anda dengan kurs per jam Anda.
Sekarang tinjau solusi alternatif: outsourcing, beli solusi langsung, jangan lakukan apa-apa, dll
Pilih solusi yang paling hemat biaya.
Tetap pada itu.
7) Berencana untuk kode tetapi belum coding karena Anda ingin "melakukannya dengan benar"
Berolah raga. Anda akan merasakan desakan endorfin yang akan memotivasi pantat Anda dan membuat Anda berencana untuk bertindak. Saya tahu ini karena saya baru saja melakukan benchpresses 5x5 dan squat 5x5.
8) Menyandikan versi yang kotor dan berjanji bahwa Anda akan "membuatnya lebih baik nanti" tetapi tidak pernah kembali ke "membuatnya lebih baik"
Atur sistem file pengingat di GTD. dan menindaklanjutinya dengan agresif. Tindak lanjuti semua janji untuk diri sendiri dan orang lain.
9) Tidak melakukan mockup atau sitemap karena "sangat merepotkan".
Pergi menghabiskan USD75 pada edisi desktop balsamiq mockups. Saya tahu ini karena saya membelinya 3 minggu yang lalu. Itu membuat saya mengulang maket saya karena saya merasa seperti seorang seniman, arsitek dan visioner semua dalam 1 meskipun gambar saya di dunia nyata menyebalkan. Font yang digunakan dalam balsamiq secara tidak sadar mengingatkan Anda bahwa ini hanyalah mockup, bukan batu yang membantu Anda dalam RAD.
Akhiri EDIT
sumber
Beberapa gelas bir akan membantu saya bekerja lebih baik dan lebih lama.
sumber
"Ya, aku bisa memperbaiki spaghetti 2000 baris yang berantakan ini dalam satu hari ..."
sumber
dan itu saudara jahat,
sumber
Penundaan dan estimasi tugas optimis adalah dosa terbesar saya.
Peregangan, push-up atau pull-up (atau latihan fisik lainnya) untuk yang pertama dan suasana pesimis sebelum memberikan estimasi untuk yang kedua.
sumber
"Jauh lebih mudah untuk menerapkan kembali fungsi dari awal daripada memahami kode yang ada."
sumber
Salah satu godaan berbahaya yang sangat besar yang diderita oleh proyek yang sedang saya jalani adalah 'Inner Platform Effect'. Ini adalah pendekatan yang Arsitek, yang sekarang telah lama pergi, telah menetapkan dalam kebijaksanaan tak terbatas mereka yang telah menciptakan proyek yang menghasilkan sekitar 20 juta dolar per tahun tetapi biaya 60 juta untuk memperbarui dan memelihara (angka kasar jelas tetapi ini besarnya masalah).
sumber
NIH - Tidak Diciptakan Di Sini
Saya sangat kesulitan memberikan solusi pihak ketiga kesempatan yang adil. Setiap orang harus secara alami skeptis terhadap solusi pihak ketiga yang tidak dibuat khusus untuk mereka, tetapi saya kesulitan 100% objektif tentang hal itu.
Penghematan waktu bisa begitu besar bahwa bahkan jika 9 kali dari 10 solusi pihak ketiga harus dihindari, saya harus cukup obyektif untuk mewujudkan salah satu yang akan bekerja.
sumber
Merancang, mengkode dan atau menguji unit terhadap "data sampel" yang disediakan alih-alih menganalisis salinan database aktual pelanggan. Tenggat waktu singkat dan mereka terus mengatakan itu datang tetapi tidak pernah terjadi. Ketika dikerahkan, ledakan itu spektakuler. Sungguh, siapa yang akan mengharapkan pelanggan untuk memiliki 3 pelanggan induk.
Saya tidak akan pernah lagi memulai proyek sampai saya memiliki salinan data nyata .
sumber
The Ada harus menjadi sebuah perpustakaan yang melakukan itu di suatu tempat sindrom.
terkait erat dengan
The Fetish Plugin
sumber
Perfeksionisme membunuh; mungkin alasan terbesar proyek tidak berhasil.
sumber
Ya, terkadang pemrograman membuat saya tertarik.
sumber
Menulis ulang alih-alih refactoring.
sumber
Berpikir harus ada cara yang lebih baik untuk melakukan ini. Saya tidak akan puas dengan sesuatu yang mungkin "cukup baik." Saya mengambil tidak kurang dari kesempurnaan! Biasanya ini dihindari dengan berbicara kepada orang lain yang mungkin memiliki perspektif berbeda tentang suatu masalah atau melihat solusi dari sudut yang berbeda.
sumber
Mengotomasi semuanya sampai pada titik lebih banyak waktu dihabiskan untuk memelihara alat-alat daripada pada pekerjaan yang sebenarnya.
Solusi: seperti halnya dengan optimasi kode, pertama-tama temukan hambatan produktivitas dan hanya setelah ditemukan, obati mereka dengan beberapa otomatisasi yang baik .
sumber
Terlepas dari apa yang beberapa orang lain sebutkan.
Prioritas : Mengabaikan pekerjaan prioritas tinggi sehubungan dengan proyek dan mengerjakan hal-hal lain dalam proyek terlebih dahulu karena, mereka lebih menarik!
Dengan sedikit lebih disiplin diri. Serius, disiplin diri dan motivasi diri untuk melakukan hal yang benar membantu menghindari sebagian besar "setan" ini.
sumber
Kemudian, setelah Anda selesai membangun proyek agar sesuai dengan perusahaan ...
(* fungsi utama sangat berbeda)
Kemudian Anda tetap melakukan refactoring kode asli Anda, berdasarkan pada model asli yang cacat alih-alih baru mulai dari awal karena Anda berada di bawah tekanan tenggat waktu singkat dan menganggap bahwa itu adalah revisi terakhir.
Saya mendapatkan bit dengan yang ini sepanjang waktu. Sulit untuk dihindari sebagai pengembang web. Saran terbaik saya adalah mendorong lebih banyak waktu sehingga Anda dapat membuat perubahan dengan cara yang benar.
sumber