Sunday, March 12, 2017

[Proyek] Upgrade Aplikasi

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"




Sumber gambar di sini

Karena itu "Upgrade" ini harusnya diartikan sebagai sebuah investasi yang harapannya:
  1. Peningkatan performa (kecepatan, security, tampilan)
  2. Kemudahan pengembangan ke depan / skalabilitas
  3. Penyesuaian / adaptasi dengan teknologi terkini
  4. Kemudahan manajemen aplikasi
Kadang jalan tengah yang diambil sembari upgrade aplikasi adalah upgrade fitur yang selama ini sulit diimplementasi dengan aplikasi yang ada (existing) sehingga dari sisi pengguna (end user) juga dapat melihat langsung adanya peningkatan fungsi. Yang paling minimal adanya penyegaran tampilan. Jadi aplikasi yang baru bisa disebut versi 1.2 atau 2.0

Biasanya kemudian akan muncul pilihan:
  1. Membuat aplikasi dari awal, atau
  2. Modifikasi , pengembangan aplikasi yang ada
Pilih yang mana ? Tentu dilihat effortnya, mana yang lebih efisien. Untuk opsi pertama yang enak sih tidak perlu repot membaca koding aplikasi yang sudah ada, bagaimana alur / proses di dalam aplikasi. Dan perlu diingat dengan membuat baru mau tidak mau harus dilakukan testing ulang semua fitur yang sudah ada dan berjalan. Belum lagi resiko migrasi data bila ada perubahan struktur data.

Gambar diambil dari : sini

Apabila penambahan / pengembangan fitur  tidak memerlukan banyak modifikasi tentu dapat digunakan aplikasi yang sudah ada. Misal jika hanya masalah perubahan tampilan. tentunya lebih bijak tidak mengutak-atik proses yang sudah ada (walaupun ada kasus modifikasi tampilan effortnya juga berat pada aplikasi tertentu)

Yang paling penting sih upgrade aplikasi ini benar2 meningkatkan, bukan mengada2 ^_^. Cheers.

No comments: