Mereka menyebutnya Dunia Nyata ™ karena suatu alasan.
99% dari apa yang akan Anda temui di dunia korporat nyata akan dianggap omong kosong, dan untuk alasan yang baik saya akan jelaskan. 1% yang tidak dianggap omong kosong pada akhirnya akan menjadi omong kosong.
# 1 Tulis Kode, # 2 ????, # 3 Untung!
Bisnis pertama ada untuk menghasilkan untung, mereka tidak ada untuk menghasilkan gunung kode akademik yang dirancang dengan sempurna bersih dan murni disimpan dalam repositori emas kesempurnaan. Bahkan tidak dekat, bahkan yang dalam bisnis penjualan kode sumber yang mereka hasilkan.
Dalam dunia bisnis kode adalah sarana untuk mencapai tujuan . Jika beberapa kode memecahkan masalah bisnis dan menghasilkan lebih banyak uang daripada biaya untuk membuat dan memeliharanya, maka itu diinginkan untuk bisnis. Mempekerjakan Anda untuk menulis kode hanyalah satu cara bagi bisnis untuk mendapatkan kode.
Teori 0 - Praktek ∞
Idealnya pemeliharaan harus lebih menjadi perhatian tetapi biasanya tidak, karena dalam jangka pendek tidak menang secara finansial. Dalam jangka panjang, perangkat lunak biasanya memiliki siklus hidup yang relatif singkat, terutama aplikasi berbasis web, mereka menjadi usang dengan cepat dan lebih sering ditulis ulang.
In-house line aplikasi bisnis adalah yang terus berputar seperti yang dianggap sebagai proyek zombie tanpa akhir karena banyak alasan berbasis momentum. Proyek-proyek ini sebenarnya adalah kesuksesan yang terus mereka jalani karena mereka terus membuat bisnis ini untung.
Secara teori tidak ada perbedaan antara teori dan praktik. Dalam praktiknya ada. - Yogi Berra
Secara teori, arsitek yang benar-benar bersih, basis kode yang benar-benar bersih dengan cakupan kode 100% akan menghemat uang perusahaan, dalam praktiknya bahkan tidak mendekati memberikan sesuatu yang mendekati pengembalian investasi yang valid.
Fisika Siklus Hidup Perangkat Lunak
Ada juga kekuatan entropi yang sangat kuat yang bekerja di dunia perangkat lunak. Ini adalah lubang hitam keniscayaan yang mengutuk semua perangkat lunak untuk berubah menjadi Big Ball of Mud .
Semakin jauh Anda memulai dari BBM semakin baik, tetapi setiap sistem perangkat lunak pada akhirnya akan sampai di sana dengan waktu yang cukup. Seberapa cepat Anda mendekati 100% entropi ditentukan oleh di mana Anda memulai dan seberapa cepat Anda menimbun utang teknis dan seberapa tinggi bunganya.
Sistem perangkat lunak merosot dan membusuk karena pemeliharaan, bukan karena kekurangannya. Sebuah sistem yang sudah ada selama bertahun-tahun tanpa perubahan kode menurut definisi memenuhi semua persyaratan dan sasarannya dan sukses.
Ini adalah sistem yang membutuhkan perubahan konstan karena mereka mulai lebih dekat dengan entropi maksimum adalah sistem yang terus-menerus disodok dan didorong dan pemeliharaanlah yang mempercepat perubahan negatif.
Cukup Baik Cukup Baik
Sistem siklus hidup pendek seperti situs web yang berubah terus-menerus tidak mendapat manfaat dari desain awal yang sangat besar, cakupan kode 100% dalam pengujian unit, karena waktu amortisasi terlalu singkat untuk memperbesar biaya.
Sistem siklus hidup yang panjang seperti garis internal aplikasi bisnis yang disebutkan di atas, tidak benar-benar diuntungkan oleh investasi besar-besaran dari 100% tes cakupan unit, juga, karena tingkat perubahan selama masa proyek mendekati konstanta yang mendekati nol dalam mode non-linear.
Itulah sebabnya rencana akhir masa hidup lebih penting dan sistem penggantian harus direncanakan seperti sesuatu yang dirilis, bukan ketika telah melewati itu prima beberapa tahun dan tidak dapat didukung sehingga sistem baru harus dilarikan ke tempatnya.
Mereka tidak mengajarkan tentang BBM sejauh yang saya tahu, saya belum pernah menemukan lulusan CS baru-baru ini yang tahu apa itu, apalagi mengapa itu terjadi.
Itulah sebabnya Cukup Baik itu Cukup Baik , ada yang kurang lebih baik.
Perampasan Perangkat Lunak
Ada tuan tanah kumuh real estat karena suatu alasan, mereka membuat keuntungan pada bangunan kumuh yang mereka miliki. Menghasilkan lebih banyak keuntungan daripada yang mereka habiskan untuk pemeliharaan tambahan properti yang rusak. Jika tidak, mereka akan merobohkan bangunan dan menggantinya. Tetapi mereka tidak melakukannya, karena biaya tambahan jauh lebih sedikit daripada merombak atau mengganti seluruh bangunan. Ada juga pelanggan (penyewa) yang bersedia membayar untuk properti yang rusak.
Tidak ada pemilik gedung, penguasa kumuh atau tidak yang akan menghabiskan uang untuk sebuah properti hanya karena beberapa gagasan akademis tentang kesempurnaan yang tidak diterjemahkan ke dalam laba yang substansial atas biaya yang terkait.
Tidak ada pelanggan yang akan membayar untuk upgrade ke sistem perangkat lunak yang berfungsi diterima oleh mereka. Tidak ada bisnis yang akan menghabiskan uang hanya untuk menulis dan menulis ulang kode tanpa keuntungan besar yang nyata.
Microsoft adalah yang paling mendominasi dan slumlord perangkat lunak yang sukses ada. Windows tidak mulai mendapatkan dasar menulis ulang dasar sampai baru-baru ini. Dan mereka masih belum menjatuhkan semua kode lama dari kernel. Tidak masuk akal secara bisnis bagi mereka, orang lebih dari rela menerima bar harapan yang rendah yang telah mereka tetapkan selama dekade terakhir.
Prognosa
Ini telah menjadi pola selama 20 tahun lebih saya dalam pengembangan perangkat lunak. Itu tidak akan berubah dalam waktu dekat. Ini bukan cara orang ingin keluar dari suatu sistem kepercayaan, itu adalah kenyataan kekuatan eksternal pada bisnis. Bisnis mendorong pengambilan keputusan, laba bukanlah kejahatan, mereka membayar gaji Anda, visi jangka pendek atau jangka panjang tidak relevan, ini adalah industri jangka pendek dengan perubahan konstan menurut definisi. Siapa pun yang berpendapat cukup baik untuk mendapat untung tidak memahami bisnis.
Saya menghabiskan 15 tahun berkonsultasi dan belajar dengan sangat cepat bahwa cukup baik hanya itu, apa pun yang saya lakukan memerlukan biaya. Ya saya ingin semuanya menjadi sempurna, tetapi kecuali jika Anda menjual basis kode, yang 99,99999% dari waktu Anda menjual solusi , semua kode rapi bersih yang anggun dan rapi hilang dan Anda hanya membuang-buang waktu Anda, Anda tidak akan pernah mendapatkan penggantian untuk .
Kemajuan dan Harapan
Metodologi tangkas adalah langkah yang baik ke arah yang benar, setidaknya secara filosofis. Mereka mengatasi kekacauan dan perubahan konstan sebagai warga negara kelas satu dan menerimanya. Mereka menolak praktik dogmatis, mengakui bahwa metodologi dan praktik harus berubah serta persyaratan dan teknologi.
Mereka menerima entropi yang diperkenalkan oleh kurangnya waktu atau persyaratan yang berubah, staf yang berubah, dan semangat sistem perangkat lunak dengan konsep utang teknis.
Tapi Agile bukan obat mujarab, itu tidak akan mengubah hukum dasar fisika dan basis kode akan membusuk terlepas. Terserah manajemen untuk merencanakan berurusan dengan busuk sebelum benar-benar lepas kendali dan tidak dapat dikelola.
Agile ketika dilakukan dengan benar, membantu mengelola entropi, memperlambatnya, melacaknya, mengukurnya dan menghadapinya secara terencana. Itu tidak akan menghentikannya!
Keputusan Karier
Jika ini adalah masalah filosofis yang nyata bagi Anda, Anda mungkin harus mempertimbangkan pilihan karier lain, karena cara kerja memiliki kelebihan bisnis yang valid di belakangnya. Proyek Open Source tidak memiliki rekam jejak yang lebih baik, dan dalam banyak kasus kode ini bahkan lebih buruk daripada kebanyakan kode perusahaan yang saya lihat.