Oleh: Luke Shannon, Senior Manager, Regional Architecture, Red Hat
Modernisasi software di enterprise itu penting dan modernisasi yang berhasil harus memiliki atribut-atribut tertentu serta dapat mengidentifikasi beberapa karakter tim yang bisa menimbulkan masalah. Di titik ini mungkin Anda berpikir bahwa memulai proyek modernisasi adalah hal mudah. Namun, masih ada satu jembatan yang harus Anda lewati.
Modernisasi membutuhkan dana
Setiap operasional IT di enterprise membutuhkan dana. Umumnya dana itu disediakan oleh unit bisnis. Apa boleh buat, dana itu pun terbatas – business case harus disusun dan dipresentasikan. Prioritas dan anggaran sudah disusun untuk setahun dan harus dipatuhi. Inilah alasan kenapa kita harus hati-hati dalam mempertimbangkan soal memodernisasi aplikasi.
Titik awal suatu business case dalam melakukan modernisasi adalah pertama-tama menentukan apakah value yang akan didapatkan dari modernisasi itu sepadan dengan upayanya. Mari kita lihat beberapa alasan umum untuk melakukan modernisasi yang memberikan value added.
Pendorong modernisasi
Bagaimana Anda tahu apakah satu aplikasi sepadan dengan biaya modernisasi? Anggaplah bahwa aplikasi tersebut akan tetap digunakan, di bawah ini adalah beberapa alasan mendanai modernisasi. Tapi jika satu aplikasi tidak akan digunakan lagi – misalnya akan diganti atau dipensiunkan – mungkin nilainya tidak sepadan dengan upaya modernisasi.
Biaya penghentian teknologi
Middleware tempat menjalankan aplikasi (atau terintegrasi) mungkin terlalu mahal. Umumnya versi sebuah middleware atau layanan juga akan berakhir. Dalam kasus ini mungkin tidak ada pilihan selain mengganti aplikasi yang terintegrasi dengannya.
Teknologi baru untuk fungsi baru
Mungkin ada versi baru dari framework atau runtime yang memungkinkan developer memberikan fungsi yang lebih baik. Ambil contoh, dibutuhkan versi terbaru framework JavaScript seperti React untuk menjalankan state management (contohnya Hooks). Adapun versi React yang ada akan memaksa developer tergantung pada pihak ketiga untuk meraih target yang sama. Pembaruan seperti ini bisa menyederhanakan cara developer menulis kode user interface mereka, sehingga semakin mudah atau lebih cepat pula bagi mereka untuk menciptakan komponen UI yang rumit.
Kode yang fleksibel menambah nilai
Jika satu aplikasi akan digunakan cukup lama, maka aplikasi ini perlu dikembangkan seiring waktu agar tetap relevan. Jika kode tersebut tidak ditulis dengan cara yang kondusif untuk berubah (misalnya logikanya membingungkan, tidak ada coverage test, dan lain sebagainya), maka melakukan refactoring, yang akan memudahkan tim mengubah kode, adalah tujuan modernisasi yang layak.
Meningkatkan keamanan
Tidak melakukan update terhadap framework versi lama atau library bisa berisiko (contohnya, masalah Log4j baru-baru ini). Terkadang dependensi yang digunakan aplikasi harus berubah karena ancaman baru. Sejumlah perusahaan mengalami masalah yang sama, mungkin karena mereka tidak memperbarui framework Java ke versi dengan keamanan yang lebih baik, dan daftar itu semakin panjang dan terus bertambah. Ini adalah isu berkembang yang tidak mudah diprediksi – supaya aplikasi Anda tetap futureproof, kodenya harus bisa diubah.
Rewrite atau refactor?
Jika kode dan konfigurasi rumit, tidak terdokumentasi atau sulit untuk dibaca, atau karyawan yang menggarapnya sudah meninggalkan perusahaan, Anda tidak memiliki pilihan lain selain menuliskannya kembali (rewrite). Ini adalah keputusan yang harus dibuat oleh mereka yang memahami kondisi terakhir dari aplikasi tersebut, didorong oleh motivasi untuk melangkah ke masa depan dan budaya IT enterprise di mana aplikasi tersebut berjalan.
Inilah sebabnya sangat penting untuk punya tim yang memiliki kombinasi tepat antara pengetahuan enterprise dan keahlian inovasi – yang juga bisa melakukan penyelarasan dan mengambil keputusan (ini dibahas di artikel sebelumnya). Memiliki tim seperti ini mencegah proyek berjalan ke arah yang salah sejak awal.
Mendefinisikan value bagi bisnis
Semua alasan untuk memodernisasi harus dihubungkan dengan value yang akan dihasilkan untuk menjadikannya menarik dan mendapatkan pendanaan. Pendorong dari pengurangan biaya sudah jelas (contoh: menghilangkan middleware yang mahal), namun ada cara-cara lain untuk memperhitungkan value dari modernisasi.
Mengurangi kerja keras
Ini adalah frasa yang populer di kalangan tim yang membangun budaya SRE. Pada tingkat aplikasi, kerja keras terkait dengan upaya mengubah aplikasi lama yang terkadang malah bisa membuat aplikasi mengalami “stuck”.
Sebagai contoh, saya pernah bekerja sama dengan tim yang tidak bisa melakukan upgrade karena butuh versi Microsoft Internet Explorer (IE) yang sudah usang. Mereka terhambat oleh biaya pengujian regresi aplikasi tersebut. Kode tersebut kemudian menjadi sesuatu yang disebut “ball of mud” – kekacauan monolitik dari logika back-end dan front-end. Setiap perubahan membutuhkan uji regresi sepenuhnya. Perusahaan pihak ketiga melakukan pengujian regresi sebelum melakukan rilis dengan biaya yang besar.
Upaya modernisasi ini berujung pada upaya rewrite beberapa aplikasi utama dalam portofolio dengan target:
Untuk menyediakan test coverage yang kuat, sehingga biaya pengujian manual bisa lebih dihemat, dan
Untuk memindahkan fungsi yang spesifik ke standalone service yang bisa dibagi ke seluruh portofolio aplikasi, lagi-lagi akan menghemat biaya pengujian dengan mengurangi duplikasi.
Berkurangnya upaya dalam melakukan pengujian akan berdampak pada penurunan biaya IT yang harus dibayar perusahaan untuk aplikasi tersebut.
Penyelarasan strategis perusahaan
Strategi perusahaan yang dipresentasikan kepada investor biasanya punya target menghasilkan lebih banyak pendapatan, namun jalan menuju pendapatan ini juga bisa dengan membuka ruang pasar baru (contoh: robo-advisor) atau menambah fitur-fitur penting ke software yang sudah ada, yang membuatnya lebih bisa digunakan kembali dan skalabel di semua portofolio teknologi perusahaan (contoh: mengekspos fungsionalits utama sebagai API).
Proyek modernisasi yang sejalan dengan inisiatif yang sudah disampaikan kepada pemegang saham kemungkinan besar bisa mendapatkan pendanaan. Semakin sesuai, semakin besar peluang untuk mendapatkan pendanaan. Walau begitu, penyelarasan itu bisa jadi merupakan sebuah keharusan.
Sebagai contoh, dalam kasus migrasi dari aplikasi yang masih butuh versi IE yang sudah usang, aplikasi tersebut ternyata digunakan oleh staf internal untuk melayani pelanggan. Modernisasi di masa depan tidak hanya mengurangi upaya, namun juga memungkinkan tim untuk meningkatkan fungsionalitas dan beroperasi dengan lebih handal dalam pengembangannya. Pada gilirannya, hal ini memungkinkan staf melayani pelanggan yang datang ke cabang mereka dengan lebih baik, yang merupakan target strategis perusahaan pada saat itu.
Mempertimbangkan portofolio aplikasi
Mungkin memodernisasi satu aplikasi memberikan value, namun nilai tersebut kecil jika dibandingkan dengan kerja keras yang dibutuhkan. Jika beberapa aplikasi bisa ditingkatkan dengan cara yang sama, sebuah case bisa dibuat untuk membuat perubahan di semua portofolio aplikasi yang ada. Saya akan membahas berbagai pendekatan yang bisa dilakukan untuk mengevaluasi pendekatan untuk portofolio aplikasi dalam artikel lain dalam seri ini.
Haruskah saya mengabaikan aplikasi internal yang prioritasnya rendah?
Tidak harus. Berdasarkan pernyataan di atas, jika satu aplikasi sifatnya internal dan tidak bisa secara langsung diselaraskan dengan value, aplikasi itu masih punya nilai untuk dimodernisasi. Tergantung pada pola yang ada di dalam kode aplikasi, aplikasi tersebut bisa jadi ajang pembuktian yang penting bagi tim untuk menguji situasi di masa depan tanpa memberikan dampak terhadap aplikasi yang sudah digunakan publik dan menghasilkan revenue. Di artikel berikutnya saya akan membahas bagaimana cara memetakan value migrasi di semua portofolio aplikasi.
Meraih penyelarasan
Mari berasumsi bahwa – sesuai dengan tinjauan Anda terhadap keadaan sekarang dan di masa yang akan datang – Anda telah berhasil membuat outline mengenai serangkaian perubahan yang akan diterapkan pada portofolio aplikasi yang sudah ada yang memberikan value yang selaras dengan target strategis perusahaan untuk tahun ini. Anda sudah meyakinkan pihak manajemen dan mendapat lampu hijau untuk membahas tentang proyek tersebut dan mulai membentuk tim.
Sekarang, Anda harus memastikan bahwa Anda melaksanakannya. Ini berarti menyelaraskan modernisasi di masa depan ke dalam praktik budaya dan compliance perusahaan. Untuk penyelarasan, sangat penting bahwa Anda memiliki pengetahuan yang cukup tentang bagaimana enterprise mendapatkan input dari orang yang tepat pada waktu yang tepat. Di artikel berikutnya dalam seri ini, kita akan berbicara mengenai cara membangun tim yang tepat untuk menggarap upaya modernisasi Anda.