Saya sedang membaca, Fakta dan Kekeliruan Rekayasa Perangkat Lunak, yang memiliki bagian pemeliharaan. Karena, saya telah menjadi pengembang pemeliharaan selama bertahun-tahun sekarang, saya menyajikan fakta yang sangat menarik. Ini tiga.
- Fakta 41: Pemeliharaan biasanya menghabiskan 40 hingga 80 persen (rata-rata, 60 persen) dari biaya perangkat lunak. Oleh karena itu, ini mungkin merupakan fase siklus hidup terpenting dari perangkat lunak.
- Fakta 42: Peningkatan bertanggung jawab atas sekitar 60 persen dari biaya pemeliharaan perangkat lunak. Koreksi kesalahan sekitar 17 persen. Oleh karena itu, pemeliharaan perangkat lunak sebagian besar tentang menambahkan kemampuan baru ke perangkat lunak lama, bukan memperbaikinya.
- Fakta 45: Pengembangan rekayasa perangkat lunak yang lebih baik mengarah pada lebih banyak pemeliharaan, bukan lebih sedikit.
Yang ini kontra-intuitif, ternyata perangkat lunak yang baik memiliki lebih banyak perawatan, karena mudah diubah. Oleh karena itu, ia tetap digunakan lebih lama, mengarah ke, ya, lebih banyak perubahan.
Paradigma mana (seperti fungsional, berorientasi objek, prosedural) yang memiliki kemampuan pemeliharaan terbaik, dan adakah penelitian untuk mendukung hal ini?
maintenance
maintainability
KaizenSoze
sumber
sumber
Jawaban:
Saya pikir Anda akan menemukan bahwa paradigma seperti fungsional, OO, dan prosedural mungkin tidak berhubungan dengan pemeliharaan perangkat lunak dengan cara yang bermakna.
Apa yang mungkin Anda temukan berkorelasi lebih jelas dengan pemeliharaan perangkat lunak:
Tingkat pengumpulan persyaratan dan persyaratan rekayasa
Praktik pengembangan yang baik: (Kopling longgar, Kohesi Tinggi, Pengujian unit, YAGNI ...)
Insinyur perangkat lunak yang terampil dan berkualitas (Mereka bernilai 10 kali lebih banyak daripada orang bodoh)
Tim QA teknis yang berkualitas dan terorganisir
Manajemen proyek yang baik dipimpin oleh manajer proyek yang kompeten (Bahkan lebih sulit ditemukan daripada pengembang perangkat lunak terampil IMHO)
Pemilik Produk atau manajer aplikasi yang baik, kepemimpinan yang kuat, arahan jangka panjang yang baik, umpan balik yang baik untuk tim proyek, visi keseluruhan.
sumber
Anda tampaknya melihat ini dari jumlah pemeliharaan dan bukan persentase biaya. Perangkat lunak bagus yang memiliki lebih banyak fitur yang ditambahkan hanyalah jumlah perangkat lunak yang lebih besar. Jika persentase pemeliharaan diperbaiki (karena itu perangkat lunak yang baik dan kami menganggap fitur tambahan ditambahkan sebagai perangkat lunak yang baik), jumlahnya akan meningkat. Ini hanya sepotong pai yang lebih besar dengan jumlah irisan yang sama.
Berdasarkan apa yang Anda tanyakan, penting apakah perangkat lunak "baik" ditulis dalam: kode fungsional, OOP, atau prosedural. Akankah memberi seseorang kekuatan yang dipandu laser menghemat kayu jika orang itu tidak tahu bagaimana mengukurnya?
sumber