Apakah pengembang perangkat lunak yang memilih untuk tidak menempatkan optimisasi kode, standar, dan praktik terbaik sebagai prioritas utama, membuat kode lebih bermanfaat daripada pengembang yang ingin khawatir tentang optimasi, penerapan standar pengkodean, dan praktik di atas menyelesaikan tugas tepat waktu?
Bagaimana metodologi berbeda ini dibandingkan ketika datang ke ulasan kinerja individu?
Bagaimana gaya ini dibandingkan dalam ulasan rekan?
Apa cara terbaik untuk memengaruhi tim Anda untuk menerapkan lebih banyak praktik terbaik selama SDLC?
code-quality
teamwork
Jitendra Vyas
sumber
sumber
Jawaban:
Tidak, mereka hanya akan mendapat respek dari pemilik proyek saat itu.
Mereka akan dihancurkan selama bertahun-tahun dengan:
Mereka bahkan mungkin mendapatkan perawatan yang sama dari:
sumber
Dikotomi palsu: kualitas bersifat ortogonal.
sumber
Tidak. Praktik terbaik adalah yang terbaik karena, menurut definisi , mereka membantu menyelesaikan proyek dengan lebih benar, dalam waktu yang lebih singkat, dengan modifikasi yang lebih cepat, sehingga mengabaikannya dijamin akan mengurangi laba. Tentu saja, manajer Anda mungkin meresepkan praktik yang menurut mereka terbaik, tetapi sebenarnya tidak, atau mereka mungkin salah menilai apa yang akan dibayar pelanggan dan apa yang tidak - maka semua taruhan dibatalkan.
Standar pengkodean lebih rumit; dimungkinkan untuk meresepkan terlalu banyak detail untuk coders Anda, yang mengarah pada penurunan efisiensi. Tetapi dengan pengalaman, menjadi sangat mudah untuk memberi tahu pedoman yang bermanfaat dari pengelolaan mikro anal-retensi, sehingga hal yang sama berlaku: praktik terbaik aktual selalu bermanfaat, praktik pseudo-terbaik biasanya tidak.
Optimasi kode biasanya tidak layak dilakukan kecuali Anda telah mengukur apa hambatan Anda, memastikan bahwa melakukan optimasi diperlukan dan mengukur bahwa trik pintar Anda benar-benar memenuhi persyaratan kinerja sebelumnya. Kalau tidak (yang sebagian besar) tidak layak dilakukan, dan karenanya tidak optimal.
sumber
Apakah saya setuju dengan pengembang yang tidak peduli dengan optimasi dan praktik kode? Tidak.
Apakah mereka melakukan pekerjaan yang harus mereka lakukan? Iya.
Bisnis adalah tentang menghasilkan uang, dan satu-satunya cara menghasilkan uang adalah dengan melepaskan produk. Ini biasanya berarti bahwa proyek memiliki jadwal yang ketat, yang berarti apa yang mungkin merupakan cara terbaik untuk melakukan sesuatu mungkin bukan cara tercepat untuk melakukan sesuatu.
Walaupun saya tidak setuju dengan gaya pengembangan ini, mungkin terlihat terhormat oleh perusahaan jika produk dirilis.
sumber
ctrl + c
danctrl + v
. Produk ini diluncurkan dalam waktu yang sangat singkat. Perusahaan senang dengan Pengembang X. Laporan bug dan permintaan fitur masuk. Pengembang X tidak dapat mengikuti dan dipecat / pindah ke pekerjaan berikutnya. 3 tahun pengembangan berikutnya adalah pintu putar tim insinyur baru yang tidak dapat membuat kemajuan, dan Perusahaan X kehilangan semua keunggulan pasar yang pernah dimilikinya.Tidak, dan saya akan menemukan rute tercepat menjauh dari perusahaan mengatakan bahwa menghargai mereka keburukan.
sumber
Ya dan tidak, yang agak plin plan tapi itu praktik terbaik dan bukan praktik yang sempurna. Idealnya Anda harus mengikuti mereka terus-menerus, tetapi akan selalu ada situasi di mana bisnis ingin menempatkan kebutuhan itu sebelum kebutuhan produk Anda.
Anda akan dibenci oleh pengelola tetapi dicintai oleh atasan Anda.
sumber
Praktik Terbaik agak seperti akal sehat, semua orang setuju bahwa setiap orang harus mengetahuinya sampai dua orang mulai mendiskusikannya secara rinci. Tidak ada dua orang yang sepenuhnya setuju dengan definisi tersebut dan tidak ada sumber kebenaran logis yang berlaku untuk semua situasi.
Apakah Anda menulis sistem panduan untuk satelit ruang angkasa (mungkin Anda tidak)? Maka Neraka Tidak ada kode berkualitas / berkinerja buruk yang tidak pernah dapat diterima dalam jenis pekerjaan ini.
Apakah Anda menulis situs web sekali pakai untuk dorongan pemasaran satu kali (Anda mungkin tidak melakukan ini juga atau Anda tidak akan mengajukan pertanyaan, tetapi lebih mungkin daripada satelit)? Lalu Neraka Ya, dapatkan potongan itu dari pintu melalui segala cara yang diperlukan untuk memenuhi tenggat waktu, direktur pemasaran berikutnya mungkin akan melakukan sesuatu yang lain dengan perusahaan yang berbeda pula. APA YANG ANDA LAKUKAN TIDAK SENI ATAU ILMU PENGETAHUAN - DAPATKAN BAYARAN.
Segala sesuatu yang lain di antara: dinegosiasikan, terutama selama dev ada di kait untuk dukungan awal.
Sampai kedatangan kedua makhluk suci apa pun yang Anda sukai terjadi dan dia / mereka / itu mendefinisikan praktik pembangunan dengan cara yang ajaib akan ada ruang yang signifikan untuk perdebatan tentang proyek apa pun yang tidak secara langsung bertanggung jawab atas keputusan hidup dan mati yang tidak jadi tidak penting untuk dibuang.
Segala sesuatu di luar praktik terbaik berlabel kritis kehidupan biasanya lebih seperti kebijakan perusahaan, spesifikasi klien, atau pendapat pribadi. Banyak dari mereka adalah pendapat pribadi yang disetujui banyak orang saat ini, tetapi itu tidak menjadikannya panduan abadi untuk semua situasi.
sumber
Berapa banyak uang yang mereka hasilkan untuk perusahaan masih bisa diperdebatkan. Jika ada tingkat meninjau kembali kode yang dimaksud, biaya pemeliharaan akan naik dan seseorang tidak akan bahagia. Biaya perawatan jangka panjang yang tinggi lebih mahal daripada melakukannya dengan benar di muka.
Seberapa besar rasa hormat yang mereka dapatkan mungkin spesifik untuk kasus tertentu. Namun, pada titik tertentu, seseorang akan memperhatikan.
sumber
Tidak memedulikan hal-hal ini dapat membuat perusahaan lebih banyak uang dalam jangka pendek, tetapi dapat membuat perusahaan mengeluarkan lebih banyak uang dalam jangka panjang karena lebih banyak perbaikan bug dan coding perawatan.
Terkadang pekerjaan cepat dan kotor mungkin diperlukan jika ada desakan dengan perusahaan pesaing untuk mendapatkan produk serupa ke pasar pada saat yang sama, tetapi biaya di masa depan dari tindakan tersebut harus dipertimbangkan dengan hati-hati.
sumber
Itu semua tergantung pada pelanggan.
Pelanggan yang suka cepat dan kotor (dan biasanya lebih murah) tidak peduli bahwa itu akan menimbulkan masalah di masa depan.
Pikirkan konstruksi kabinet.
Beberapa orang akan membayar, dan menghargai, kabinet yang dibangun dengan kualitas baik. Mereka tidak keberatan dengan biaya ekstra untuk laci kayu keras dan perangkat keras terbaik. Mereka tidak keberatan akan membutuhkan satu minggu ekstra atau bahkan sebulan untuk membangun dan menginstalnya.
Banyak yang tidak. Banyak yang akan memilih barang papan partikel yang diproduksi secara massal murah yang Anda dapatkan dari toko kotak besar. Mereka ingin mereka diinstal dalam 2 hari. Kesenjangan kecil di sana-sini sangat bisa diterima. Mereka tidak peduli bahwa mereka akan hancur dalam 10 tahun.
Jadi jika manajer Anda memuji pengembang yang menyelesaikannya dengan cepat dan kotor maka pelanggan Anda tidak ingin kualitas tinggi atau manajer berbohong kepada pelanggan.
Hanya waktu yang akan memberitahu. Lakukan apa yang diinginkan manajer atau cari pekerjaan lain.
sumber
Tidak, tidak pernah. Optimalisasi kode IMO, praktik terbaik, keahlian aktual adalah hal PALING penting untuk dimiliki dalam basis kode; tanpanya semuanya berubah menjadi lumpur dan disatukan dengan lakban. Ini desain yang tidak berkelanjutan. Ini seperti mengabaikan tumor karena kecil dan Anda sehat sekarang; Anda pasti sehat sekarang, tetapi beberapa tahun kemudian menjadi terminal karena Anda mengabaikannya begitu lama.
Saya tidak hanya tidak setuju dengan pengembang yang tidak peduli dengan hal-hal ini, tetapi saya tidak menghargai mereka untuk boot. Cara yang pasti untuk membuat saya mempertimbangkan meninggalkan suatu organisasi, tidak peduli seberapa singkat waktu saya di sana, adalah dikelilingi oleh tim di mana saya adalah satu-satunya orang (jika bukan satu-satunya orang di seluruh perusahaan) yang peduli tentang konsep rekayasa perangkat lunak yang tepat.
sumber
Bacaan yang bagus: http://www.joelonsoftware.com/items/2009/09/23.html
Tapi IMHO, praktik terbaik satu pria adalah mimpi buruk pria lain. Dan setiap basis kode non-sepele akan menjadi mimpi buruk bagi orang luar.
Apa pun yang Anda pikirkan, jangan menyebalkan tentang itu.
EDIT: Saya tidak membela salah satu posisi, tergantung pada tugas yang saya mungkin condong ke kedua sisi.
sumber
SOLID
prinsip - prinsip, menggunakan pola desain, menggunakan abstraksi / antarmuka adalah dasar yang harus dilakukan oleh setiap pengembang yang kompeten.Lebih baik untuk perusahaan? Tergantung.
Untuk startup dengan dana terbatas, selesaikan dan laksanakan di sana - tidak masalah apakah itu berantakan, yang dapat diperbaiki nanti ketika ada lebih banyak sumber daya.
Untuk produk matang di mana ada banyak pengguna yang mengandalkan kualitas perangkat lunak, semuanya harus dilakukan "dengan benar".
Lebih baik untuk pengembang individu? Sebenarnya itu tidak relevan. Lakukan hal yang sama seperti apa yang dilakukan kolega Anda, dan biarkan manajemen menangani dampaknya - itu bukan pekerjaan Anda. Jika Anda memperbaiki omong kosong orang lain sepanjang waktu Anda AKAN terlihat lambat, dan Anda akan menjadi orang yang masih ada sementara yang lain dipromosikan di atas Anda. Dapatkan dengan program ini, atau keluar selagi Anda bisa jika itu buruk.
sumber
Tergantung pada pengembang dan proyek / situasi.
Waktu yang luar biasa membutuhkan tindakan luar biasa.
Jadi jika saya memerlukan sesuatu yang dikirim sekarang, dan seseorang adalah rekayasa aplikasi tingkat perusahaan Java over-engineering yang memanfaatkan tidak kurang dari 14 kerangka kerja kata kunci terbaru sementara skrip python sederhana akan melakukan pekerjaan itu sama buruknya dengan pengembang yang mengambil jalan pintas dan berpikir kode kereta akan dilakukan di waktu normal.
Bagian dari menjadi pengembang adalah fleksibel. Anda tidak boleh menjadi budak alat Anda dan mengikuti praktik secara membabi buta - akan selalu ada kasus di mana mereka akan mengecewakan Anda. Mengetahui kapan harus melanggar dan menekuk aturan adalah salah satu hal yang datang dengan banyak pengalaman dan berharga.
Dalam kasus Anda - jika dia memberikan nilai lebih dari Anda karena kecepatan sangat penting, bahkan setelah memperhitungkan peningkatan biaya pemeliharaan di jalan, maka ia layak mendapatkan kompensasi yang lebih baik. Di sisi lain - jika Anda terjebak dengan membersihkan kekacauan - Anda memiliki masalah komunikasi dengan manajemen.
Ini adalah kasus per kasus. Kecuali gaya pengkodean - tidak ada alasan di sana.
sumber
Saya minta maaf tetapi saya harus tidak setuju dengan sebagian besar jawaban untuk pertanyaan ini, kecuali untuk yang teratas.
Nilai utama dari perangkat lunak adalah fleksibel.
Saya tidak berpikir Anda harus menulis ulang kode orang lain tanpa alasan. Jika Anda harus mengubah modul dengan alasan apa pun untuk mengimplementasikan fitur Anda, Anda sekarang, menjadi lebih baik atau lebih buruk, pemilik modul itu. Ubah, tulis ulang sebagian, tulis ulang semuanya.
Jangan pernah menghasilkan kualitas rendah dalam hal fleksibilitas. Tidak ada yang namanya membuang apa pun dalam perangkat lunak. Jika klien mengatakan ini sementara dan bahwa mereka tidak akan membutuhkannya setelah tanggal tertentu, dan mereka tidak peduli dengan kualitas, baik mengatakan "buruk" atau secara tertulis bahwa kode tidak akan diubah oleh Anda atau programmer lain sekali itu digunakan untuk produksi, atau Anda memiliki hak untuk menuntut mereka.
Asumsi termiskin yang saya lihat dalam beberapa jawaban ini adalah bahwa beberapa kode bersih entah bagaimana mengurangi kecepatan pengembangan. Untuk proyek apa pun dari bahan apa pun (lebih dari 6 jam kerja) kode bersih mempercepat pengembangan dalam jangka panjang (apa pun yang lebih besar dari seminggu). Saya telah melihatnya berulang kali.
Kode kualitas yang buruk hanya tidak menghormati profesi dan rekan kerja Anda. Maaf tapi benar.
Jadi tidak dengan kualitas buruk, dalam hal fleksibilitas, lamanya!
sumber