Beberapa kali mendapat proyek pengembangan sebuah aplikasi. Pengembangan ini bisa beragam alasannya, seperti:
- Aplikasi perlu dioptimasi. Berjalan lambat saat data sudah besar / pengguna banyak.
- Ada fitur yang perlu ditambahkan, memang biasanya muncul kebutuhan2 baru saat aplikasi sudah digunakan.
- Perubahan aturan / bisnis proses yang memerlukan modifikasi dari aplikasi yang ada. Misal ada perubahan struktur organisasi, workflow, peraturan baru.
- Perbaikan tampilan, layout, navigasi (GUI)
Jadi masalah kalau aplikasi dibuat sudah lama, dengan framework buatan sendiri sang developer awal dan minim(kalau sungkan menyebut tidak ada) dokumentasi teknis. Selain itu seiring berjalannya waktu, teknologi selalu berkembang seperti versi engine, framework, library dan kompabilitas. Kadang bisnis proses/tampilan sudah oke, tapi untuk menambahkan sebuah fitur dibutuhkan effort yang tinggi. Kadang ada ketergantungan pada developer awal, sialnya kalau developer awalnya hilang, tidak bisa dihubungi, sms ga diangkat, telp tidak dibalas :).
Untuk aplikasi seperti baiknya memang ada upgrade aplikasi.
Upgrade dalam artian dari sisi 'dapur'nya bukan dari sisi bisnis proses
yang sudah ada. Sering jadi kendala adalah untuk pekerjaan upgrade seperti ini,
apalagi jika murni hanya pembenahan dari sisi engine yang artinya tidak
ada perubahan dari sisi pengguna, dirasa tidak bermanfaat dan sulit diterima. Sesuai dengan slogan "If it ain't broke, don't fix it"