Sejumlah masalah kualitas, skalabilitas, dan pemuatan yang mengejutkan telah terjadi pada aplikasi yang saat ini saya dukung yang awalnya tidak saya tulis. Untungnya saya memiliki proyek baru yang telah saya lakukan dari bawah ke atas untuk mempertahankan beberapa kesamaan kewarasan saya.
Tim asli terdiri dari 20 beberapa pengembang (kebanyakan dari mereka dengan keahlian yang sudah ketinggalan zaman), tidak ada dokumen persyaratan bisnis atau penguji jaminan kualitas, dan dikelola dengan buruk sejak awal dengan cara terjun. Hari-hari awal produksi adalah mimpi buruk yang memalukan yang melibatkan menambal kode seperti prosedur rapuh dengan perbaikan yang lebih rapuh. Fitur ditambahkan kemudian yang dipalu menjadi datamodel yang tidak pernah dimaksudkan untuk mendukung mereka dan itu tidak biasa untuk melihat kode yang sama digandakan 10 kali lipat dan untuk melihat sumber daya tidak ditutup dengan aman dan permintaan ORM yang mengambil puluhan ribu entitas hanya untuk membuang semua kecuali segelintir.
Hanya saya sekarang dan setiap kali ada masalah baru yang muncul saya menulis ulang modul ke standar yang lebih baik dan membuatnya JAUH lebih stabil tetapi Manajemen membutuhkan penjelasan yang tepat mengapa semua ini terjadi.
Mereka tampak terkejut dan bingung dengan anggapan bahwa aplikasi ini berkualitas buruk dan tenggelam dalam hutang teknis. Untungnya mereka mengerti konsep hutang teknis dan mendukung saya dalam usaha saya untuk memberantasnya dan mereka sangat mendukung dan menghargai saya, tetapi saya merasa seolah-olah saya terus menyalahkan tim asli (yang semuanya pergi untuk merusak proyek lain dengan cara yang berbeda divisi).
Intinya adalah bahwa saya tidak ingin menjadi "Orang Itu" yang selalu mengeluh tentang para pengembang di proyek sebelumnya. Saya telah melihat sikap ini sebelumnya dari orang-orang dalam karier saya yang saya pribadi merasa tidak tahu dan tidak mempertimbangkan keadaan dan pengaruh desain yang mendorong segala sesuatu menjadi seperti itu.
Biasanya saya melihat sikap menyalahkan tim sebelumnya atas desain yang buruk dan implementasi dari para pengembang junior idealis yang belum memiliki pengalaman hidup yang lebih banyak dimiliki dan diuntungkan oleh anggota senior.
Apakah Anda merasa ada cara yang lebih baik, mungkin cara yang lebih lunak untuk melaporkan masalah-masalah semacam ini kepada manajemen tanpa menginjak reputasi orang / tim sebelum Anda?
sumber
bad-code
karena kode tersebut memang menyebabkan bug dan masalah. Saya memberi labelbad-programmer
karena saya takut menjadi tim dengan menyalahkan tim sebelumnya, alasan yang lelah dan klise yang telah kita semua dengar sebelumnya. Sejauh tiga paragraf pertama dianggap mungkin saya tidak perlu yang deskriptif tapi saya ingin melukiskan gambaran yang akurat tentang situasi langsung saya dan memberikan sejarah apa yang saya kumpulkan sejauh ini.Jawaban:
Utang teknis seperti utang finansial. Anda menerimanya (mudah-mudahan) secara strategis dalam pengembangan program dengan maksud bahwa program itu akan terbayar di masa depan. Kadang-kadang orang membuat keputusan utang teknis yang buruk (seperti menjalankan kartu kredit), tetapi kadang-kadang jumlah utang teknis hanya normal. Memutuskan untuk tidak mencurahkan waktu untuk membuat sesuatu dengan cara yang "benar" hari ini dengan asumsi bahwa hal itu perlu diubah di masa depan benar-benar normal dan harus diantisipasi. Tentu saja ada garis yang bagus, tetapi berpikir bahwa Anda akan membuatnya dengan cara yang benar saat pertama kali dapat menyebabkan masalah sendiri (analisis kelumpuhan).
Intinya, setiap proyek non-sepele yang berlangsung lebih dari beberapa tahun perlu mencurahkan waktu pengembangan baru untuk membayar utang teknis. Masalahnya, ini benar bahkan jika Anda menulis aplikasi dengan cara yang benar . Jika tidak, Anda menumpuk utang, dan manajemen tentu dapat memahami bahwa jika Anda menyajikannya seperti itu.
Jelaskan hal ini kepada manajemen dan alih-alih "menyalahkan" tim sebelumnya sepanjang waktu Anda dapat menyajikan ini sebagai "bisnis seperti biasa".
sumber
IMO Anda sudah sebagian besar melakukan ini dengan cara yang benar: Anda tidak menyarankan menulis ulang karena "kode lama menyebalkan", tetapi memperbaiki satu hal pada suatu waktu.
Untuk menghindari perasaan seperti Anda menyalahkan tim lama, bayangkan saja mereka mungkin harus membuat kode ini di bawah tekanan waktu yang hebat. Manajemen pada waktu itu mungkin tidak benar-benar mengerti bahwa hanya karena kode "kurang lebih berfungsi" tidak berarti bahwa pemeliharaan mungkin dilakukan tanpa banyak rasa sakit dan pengerjaan ulang.
Hargai tim lama karena mengelola untuk membuat produk yang benar-benar memberikan nilai bisnis - itu tidak akan digunakan lagi jika tidak. Anda mungkin akan terkejut betapa seringnya suatu proyek gagal memberikan nilai bisnis, walaupun itu ditulis dengan indah.
sumber
Ketika diminta untuk mengomentari keadaan saat ini dari suatu produk bermasalah, saya selalu berkata, "itu apa adanya," dan kemudian mulai berbicara tentang rencana untuk memperbaikinya.
Anda tidak tahu semua faktor yang masuk ke dalam keputusan yang menciptakan masalah ini - mungkin mereka bahkan masuk akal pada saat itu. Yang bisa Anda lakukan adalah bergerak maju dan membuat segalanya lebih baik besok. Dan sepertinya Anda melakukan pekerjaan dengan baik - Anda memiliki sikap yang tepat untuk situasi ini.
Fokus hanya pada pelaporan fakta saat ditanya. Anda tidak perlu menambahkan narasi atau komentar; katakan saja "sistem gagal dalam kasus X" atau "laporan tidak benar untuk kasus Y." Kemudian dengan cepat tambahkan bagaimana Anda berencana untuk memperbaiki situasi saat ini.
sumber