Onliem by Reinhard Liem | Is it good to work with a very bad code but on a deadline?

Apakah baik untuk bekerja dengan kode yang sangat buruk tetapi pada tenggat waktu?

Yah, kami akhirnya sampai pada titik di mana mesin rekomendasi dalam produk yang kami gunakan membaca pikiran kami karena saya benar-benar baru saja berdebat dengan beberapa petinggi di perusahaan saya tentang hal ini beberapa jam yang lalu.

Saya bekerja sebagai insinyur perangkat lunak untuk perusahaan biotek dan terkadang klien meminta kami untuk membuat perangkat lunak khusus untuk mereka. Perusahaan tempat saya bekerja tidak memiliki sistem yang bagus untuk pengembangan perangkat lunak. Pasti terasa seperti seluruh departemen ini adalah renungan bagi perusahaan.

Kami bekerja dengan bidang perawatan kesehatan, jadi ada banyak informasi yang sangat sensitif. Klien kami untuk beberapa alasan selalu memiliki jadwal yang paling gila dan menuntut. Perasaan di perusahaan adalah bahwa dunia benar-benar akan berakhir jika kita melewatkan tenggat waktu 1 jam.

Hanya untuk perspektif, ini adalah aplikasi senilai $3,4 juta, dan kami akan kehilangan klien jika mereka tidak menyukainya. Dua pengembang yang berada di atas saya ketika saya mulai keduanya berhenti sekitar waktu saya mendapatkan pekerjaan jadi saya mengerjakan proyek ini sendirian, dan secara teknis ini adalah pekerjaan pertama saya sebagai insinyur perangkat lunak.

Para petinggi di perusahaan menjanjikan klien hal-hal yang bahkan tidak selalu mungkin. Ketika saya pertama kali mulai di sini, saya memiliki waktu di mana saya hampir tidak bisa tidur selama sebulan penuh karena saya bekerja mungkin 14 jam sehari selama setidaknya 3 minggu tanpa akhir pekan. Itu adalah bulan yang paling menegangkan dalam hidup saya, tetapi itu memberi saya kenaikan gaji yang sangat besar yang tidak dapat saya antisipasi.

Sekarang saya sedang membangun aplikasi yang sama tetapi untuk klien lain. Idealnya, itu semua akan menjadi aplikasi yang sama tetapi dengan kredensial masuk yang berbeda atau URL yang berbeda. Sebagai gantinya, saya diberitahu untuk pada dasarnya menyalin dan menempelkan seluruh basis kode dan kemudian menyesuaikannya untuk memenuhi harapan klien baru.

Sejauh ini, saya telah menghapus lusinan komponen dan ribuan baris kode dan semuanya masih berfungsi seperti yang diharapkan. Tentu saja saya harus melakukan sedikit refactoring - tetapi karena kurang tidur, tenggat waktu yang gila, dan tuntutan yang berubah - basis kode pada dasarnya adalah sampah.

Hari ini, saya akhirnya mulai merasa bahwa aplikasi ini dibersihkan dengan baik. Menyadari betapa banyak yang harus saya hapus untuk sampai ke titik ini, saya tidak bisa tidak membawa ini ke direktur. Saya mengatakan kepadanya bahwa di bawah kondisi yang saya alami, saya melakukan beberapa pekerjaan terburuk saya dan membiarkan pintu terbuka lebar untuk serangga serius. Saya menjelaskan bahwa jenis krisis ini tidak menguntungkan siapa pun. Klien mendapatkan pekerjaan yang buruk, pengembang menjadi sengsara dan kelelahan, manajemen menjadi stres, dan pada akhirnya kita tertinggal dalam pekerjaan lain, dan klien mendapatkan aplikasi kereta yang dibangun seperti rumah kartu.

Tidak ada titik dalam proses ini di mana kita pernah diizinkan untuk jujur dengan klien. Dalam prosesnya tidak ada orang dengan status eksekutif tingkat-c yang pernah menghubungi departemen untuk menanyakan apakah semuanya berjalan dengan baik (ini adalah perusahaan yang cukup kecil tetapi masih memiliki dewan direksi dan segalanya).

Ini adalah kelemahan bekerja untuk perusahaan yang tidak memahami pengembangan perangkat lunak dan ini adalah alasan yang sangat baik mengapa Anda tidak terburu-buru perangkat lunak Anda demi tenggat waktu. Saya merasa seperti saya naik ke kesempatan itu dan saya merasa seperti saya dihargai untuk melakukannya, saya juga merasa sangat beruntung bahwa perangkat lunak mereka tampaknya bertahan dengan baik - tetapi segala sesuatu tentang proyek ini adalah bencana yang lengkap dalam segala hal.

Saya seorang insinyur perangkat lunak yang sangat bersemangat. Saya akan melakukan pekerjaan saya dengan integritas dan saya akan melakukan pekerjaan dengan baik. Saya tidak membutuhkan tenggat waktu untuk membuat saya tetap fokus dan produktif. Saya tahu bahwa ini hanya pekerjaan untuk beberapa pengembang, tetapi bagi banyak dari kami, kami ingin melakukan pekerjaan yang sangat baik karena kami ingin menjadi insinyur terbaik yang kami bisa. Saya pikir tenggat waktu yang tidak jelas, dan beberapa check-in di sepanjang jalan baik-baik saja, tetapi saya pikir tenggat waktu sewenang-wenang yang ketat adalah cara paling bodoh untuk membangun perangkat lunak.

- Robert Bass

Tulis komentar

Ingat, komentar perlu disetujui sebelum dipublikasikan.