Saat ini saya memilih antara dua desain / solusi perangkat lunak yang layak. Solusi 1 mudah diterapkan, tetapi akan mengunci beberapa data dalam format berpemilik, dan akan sulit diubah nantinya. Solusi 2 sulit diterapkan, tetapi akan jauh lebih mudah untuk diubah di kemudian hari.
Haruskah saya menggunakan YAGNI untuk hal ini atau haruskah saya memasukkan biaya keluar dalam pengambilan keputusan? Atau ditanya secara berbeda, apakah biaya keluar merupakan bagian dari TCO?
Saya berpikir untuk kembali ke pelanggan dengan menanyakan apakah menurutnya biaya keluar itu relevan, tetapi saya ingin tahu apa yang dipikirkan masyarakat terlebih dahulu.
PS Apakah biaya keluar adalah istilah yang benar?
design
architecture
terminology
decisions
dvdvorle
sumber
sumber
Jawaban:
Biaya Keluar merupakan bagian dari TCO (yang T tidak berdiri untuk keseluruhan ), tapi sulit untuk memakukan kecuali Anda tahu apriori berapa lama sistem akan lalu. Dengan kata lain, jika Anda tahu sistem akan digunakan tepat satu tahun dan biayanya $ 52.000 untuk menonaktifkannya setahun dari sekarang, Anda bisa cukup percaya diri dalam menambahkan $ 1.000 seminggu ke anggaran operasional untuk menutupinya.
Model itu keluar dari jendela ketika Anda tidak tahu masa pakai sistem. Secara teori sistem dapat tetap digunakan selamanya, yang berarti tidak akan ada uang yang dihabiskan untuk mematikannya. Apa pun yang Anda perhitungkan sekarang adalah dalam dolar hari ini, dan angka-angka itu bisa jadi tidak berarti selama lima tahun dari sekarang karena perubahan dalam tingkat tenaga kerja dan teknologi yang membuat prosesnya lebih mudah (atau lebih sulit).
Sebaiknya Anda memberi pelanggan Anda beberapa gagasan tentang apa yang diperlukan untuk beralih dari sistem dan membiarkan mereka memasukkan faktor itu ke dalam keputusan tentang penggantian ketika saat itu tiba.
(Dan sekarang, setelah menulis jawaban ini, saya dapat memilih untuk menutup ini sebagai topik yang tidak umum.)
sumber
YAGNI adalah aturan yang bagus di tempatnya, tapi saya tidak yakin itu harus berlaku dalam kasus ini. Anda memperkirakan biaya masa depan di sini, suatu kegiatan yang harus melibatkan beberapa pertimbangan perubahan persyaratan di masa depan. Jika Anda menulis implementasinya, itu akan menjadi cerita yang berbeda!
Saya sarankan Anda melakukan penetapan biaya, tetapi pastikan bahwa pelanggan mengerti mengapa Anda melakukannya. Jika mereka tidak terlalu teknis jangan heran jika mereka mengatakan sesuatu dengan efek "itu tidak bisa menjadi solusi yang baik jika Anda sudah berpikir untuk menggunakan sesuatu yang lain!"
Mungkin ada beberapa aspek yang lebih halus untuk dipertimbangkan ketika Anda melakukan / menyajikan perkiraan biaya Anda:
sumber
Bekerja dari komentar Anda tentang situasi file Excel, saya melihatnya sebagai:
Saya percaya YAGNI berlaku untuk langkah parsing itu; pastikan Anda menyimpan pengetahuan tentang struktur saat ini, tetapi belum mengimplementasikan parsing.
Selain itu, struktur data parsing mungkin tidak sefleksibel yang Anda kira; persyaratan juga dapat digunakan untuk menyimpan berbagai informasi / file, yang berarti Anda harus memperbarui / memperluas tabel Anda.
sumber
Jika Anda tidak yakin 95% itu akan berubah di masa mendatang - Solusi 1 - YAGNI =)
Tentunya itu tergantung pada pelanggan Anda, dan pada pengalaman Anda memprogram sesuatu untuk pelanggan ini .
sumber
Dalam pengalaman saya, roda yang diciptakan kembali membutuhkan waktu lebih lama untuk diciptakan kembali dari yang Anda kira, dan roda eksternal cenderung lebih mudah untuk diganti. Kedua jenis roda cenderung terlihat lebih buruk setelah dibeli daripada ketika Anda membuat keputusan.
Jika Anda benar-benar berpikir bahwa # 1 mudah diterapkan, dan mempertanyakan berapa lama # 2 akan memakan waktu, saya akan mendengarkan pertanyaan itu. Terapkan # 1 sekarang, dan pikirkan desain yang lebih besar saat Anda menggunakannya. Itu akan membantu Anda jika nanti Anda ingin menemukannya kembali.
Sebaliknya jika # 1 tidak lagi terlihat semudah yang Anda kira, lompat ke # 2.
sumber