Pengembangan Aplikasi Requirement Change Management dengan Proses Bisnis dan Tata Kelola Berbasis Web dengan PERN Stack

Dalam suatu proses pengembangan perangkat lunak, seorang product owner memiliki peran utama untuk mencapai suatu keberhasilan dalam timnya dengan mendefinisikan requirement, mengatur prioritas pengembangan, kualitas hingga keberhasilan pengembangannya. Perubahan sering terjadi untuk memperbaiki adanya kekurangan, hilangnya requirement atau mungkin adanya peningkatan fungsionalitas. Mayoritas penanganan perubahan dilakukan dengan merekam jejak perubahan sebagai requirement baru tanpa adanya dokumentasi terhadap alasan perubahan. Hal tersebut akan mempengaruhi kualitas dari sebuah perangkat lunak yang dikembangkan. Sehingga capstone project ini memberikan solusi untuk masalah tersebut dengan menawarkan fitur utama berupa pencatatan permintaan perubahan dalam suatu format khusus, memantau perkembangan proses perubahan yang disetujui, dan keluarannya akan memberikan fasilitas bagi penggunanya untuk membangkitkan laporan dengan perubahan yang terjadi dari suatu pertemuan atau pembahasan. Tim penulis ini mengembangkan produk requirement change management (RCM) sebagai suatu proses untuk mengelola perubahan requirement yang diminta oleh pihak eksternal dan pihak internal tim. RCM akan memberikan layanan bagi product manager untuk mengelola permintaan perubahan. Pengaplikasiannya berbasis web yang dibagi menjadi 3 bagian tertentu yaitu:

  1. Client/Front-end – menyediakan tampilan antarmuka menggunakan kerangka kerja React.js.
  2. Server/Back-end – menggunakan Node.js dengan kerangka kerja Express.
  3. Basis data – menggunakan Relational Database Management System(RDBMS) yaitu PostgreSQL.

Aplikasi RCM dihubungkan dengan Azure DevOps menggunakan Personal Access Token yang didapatkan dari Azure DevOps dan dilakukan melalui server karena memiliki peran penting dalam proses integrasi antar basis data, Azure DevOps dan client. Aplikasi RCM ini akan secara langsung digunakan oleh product manager dalam menganalisis dan mengelola permintaan perubahan yang terintegrasi dengan Azure DevOps dalam mendapatkan informasi mengenai proyek yang sedang dikerjakan. Aplikasi ini berbasis web karena kemudahannya dalam mengakses tanpa perlu meng-install aplikasi, hanya dengan menggunakan browser bisa terhubung dengan Azure DevOps melalui protokol http REST API. Dalam membangun dan mengembangkan sebuah aplikasi terdapat dua sisi yaitu front-end dan back-end. Sisi front-end aplikasi website tidak terlepas dari elemen dasar HTML, CSS, dan JavaScript dari level yang sederhana hingga level yang kompleks. React digunakan sebagai library dan kerangka kerja JavaScript untuk menyusun komponen-komponen yang memiliki state management dan bisa mengatur state sendiri. Selain itu terdapat Tailwind CSS untuk mengaplikasikan style ke dalam elemen yang telah terdefinisi melalui kelas yang didefinisikan dalam atribut class element HTML. Node.Js dipilih sebagai runtime dari aplikasi server karena menggunakan bahasa JavaScript yang sudah dikuasai untuk membangun aplikasi front-end serta performa yang tidak kalah cepat dan baik bila dibandingkan dengan bahasa pemrograman server populer lainnya. Express sebagai kerangka kerja yang membantu pengembang dalam mengembangkan aplikasi server berbasis JavaScript dengan mudah yang sifatnya unopinionated, artinya struktur file dan kode yang dikembangkan tidak berpaku pada sebuah acuan yang mengikat.

Suatu proses bisnis menggambarkan rincian kegiatan atau proses yang terjadi di dalam suatu sistem dengan dimulai oleh suatu masukan hingga akhirnya menghasilkan luaran tertentu. Adapun arsitektur dari suatu proses bisnis terdiri dari 5 komponen, yaitu input dan output, flow unit, network of activities and buffer, resources, last information structure. Salah satu alasan utama dari gagalnya suatu proyek adalah buruknya konseptual modelling. Oleh karena itu, perancangan proses bisnis yang baik akan berpengaruh pada tingkat kesuksesan suatu proyek. Tata kelola data sebagai wujud untuk mengatasi masalah – masalah terkait dengan kualitas data pada sebuah organisasi atau perusahaan. Kualitas data menjadi penting untuk diperhatikan karena data digunakan untuk mengembangkan bisnis IT seperti data mining dan business intelligence.

Proyek capstone yang penulis laksanakan menggunakan metode Agile Scrum karena familiaritas anggota tim atas implementasi dari model Scrum dan bagaimana memfasilitasi anggota tim untuk menghasilkan suatu sistem yang fleksibel dalam lingkungan yang memfasilitasi adanya perubahan. Sesuai dengan judul pada capstone project penulis, akan terdapat tiga jenis luaran yaitu aplikasi web, sistem berbasis website yang membantu pengelolaan RCM dengan mendokumentasikan seluruh perubahan yang diajukan oleh klien berupa meeting notes dan recording serta memantau perkembangan status dari perubahan yang disetujui. Rancangan proses bisnis, RCM mengadopsi kerangka kerja proses bisnis pada paper “A Methodology to Manage the Changing Requirements of a Software”. Rancangan tata kelola data, RCM mengadopsi kerangka kerja DAMA-DMBOK sebagai suatu referensi yang dapat diacu oleh professional data manajemen. Capstone project yang dikembangkan terdapat beberapa batasan permasalahan:

  1. Landing page yang menginformasikan layanan-layanan yang disediakan oleh aplikasi RCM dan mengarahkan user ke halaman login.
  2. Sign up dan Sign in untuk memfasilitasi pengguna untuk mendaftar pada aplikasi RCM dan masuk ke dalam aplikasi yang sudah didaftarkan sebelumnya.
  3. Dashboard organization menginformasikan beberapa organisasi yang dimiliki oleh pengguna dengan daftar yang berasal dari data yang terdapat pada Azure DevOps pengguna. Dashboard hanya dapat diakses ketika pengguna sudah berhasil masuk ke aplikasi.
  4. Profile menginformasikan mengenai email dan username dari pengguna yang memuat informasi Personal Access Token Azure DevOps sebagai kata sandi alternatif yang mengautentifikasi aplikasi RCM ke Azure DevOps.
  5. Dashboard project berisi informasi mengenai project-project yang dimiliki oleh pengguna. Detail project sebagai halaman yang memperlihatkan informasi rinci terkait nama, organisasi, deskripsi dan total meeting project yang dibangkitkan serta total perubahan yang terjadi.
  6. Generate meeting sebagai fitur yang memungkinkan pengguna untuk membangkitkan invitasi meeting dengan memasukkan informasi-informasi. Detail meeting akan memuat dua halaman yaitu meeting artifact dan meeting notes.
  7. Project report memberikan informasi terkait seluruh perubahan pada halaman meeting notes dengan status “Accepted” dalam suatu project berbentuk tabel dengan tampilan dari Azure DevOps state dari backlog.
  8. Meeting Report sebagai sarana bagi product manager untuk menyampaikan hasil evaluasi terkait dengan permintaan perubahan kepada pihak-pihak luar yang memiliki kepentingan.

Aplikasi RCM dikembangan dengan PERN (PostgreSQL, Express, React, Node) Stack yang mengadopsi three-tier architecture sebagai arsitektur dasar aplikasi RCM. Arsitektur ini memisahkan aplikasi menjadi 3 lapisan yaitu aplikasi yang berjalan pada perangkat pengguna atau aplikasi client menggunakan React sebagai kerangka kerja front-end, aplikasi client hanya berkomunikasi dengan aplikasi server atau back-end, dan aplikasi server yang menyediakan semua kebutuhan aplikasi client untuk mengelola atau memanipulasi basis data. Implementasi basis data menggunakan PostgreSQL yang mengacu pada database logical design dengan setiap tabel terdapat kolom id yang menjadi primary key dan atribut yang menjadi kolom pada basis data SQL. Di tabel tertentu terdapat foreign key untuk menciptakan relasi antar tabel. Arsitektur basis data memungkinkan aplikasi untuk mencapai aspek yang berkaitan dengan skalabilitas, interoperabilitas, dan fleksibilitas. Pada rancangan proses bisnis, aplikasi RCM akan memiliki fungsi initiation, receiving, evaluation, approval or disapproval, implementation, dan configuration. Seluruh proses bisnis tersebut akan terjadi apabila pengguna telah memilih project. Akan tetapi, pengguna dapat memilih project setelah akun pengguna berhasil terhubung dengan Azure DevOps.

Functional testing merupakan salah satu bentuk pengujian yang digunakan untuk menguji kemampuan perangkat lunak mencapai fungsi tertentu. Proses uji fungsionalitas dilakukan dengan menggunakan metode black box testing yang dilakukan tanpa memperhatikan struktur kode yang terdapat di dalamnya, metode ini hanya berfokus pada input dan output yang dihasilkan pada suatu perangkat lunak. Beberapa pengujian dilakukan dengan kebutuhan fitur yang berbeda – beda, ada yang melakukan pengujian fungsionalitas back-end menggunakan aplikasi Postman dengan spesifikasi tertentu, uji schema dilakukan pada basis data untuk memvalidasi apakah skema yang terdapat pada basis data kompatibel dengan skema yang terdapat pada user interface, uji fungsionalitas berikutnya berdasarkan test case yang disusun sesuai dengan requirement RCM.  Hasil yang didapatkan dari pengujian tersebut memenuhi seluruh test case dan schema testing yang disusun, artinya aplikasi RCM dapat berfungsi dan mencapai persentase keberhasilan yang sempurna yaitu 100% kompatibel terhadap database aplikasi RCM.

Proses implementasi aplikasi RCM dapat membantu para tim pengembang perangkat lunak khususnya product manager dalam mengelola perubahan requirement sehingga dapat mengoptimalkan biaya yang dimiliki dan memastikan kualitas perangkat lunak yang dikembangkan tetap terjaga. Semakin banyak perusahaan rintisan hingga enterprise yang bergerak di bidang teknologi sangat banyak di Indonesia, sehingga ada dukungan Pemerintah Indonesia melalui Kementerian Komunikasi dan Informatika untuk terus mengembangkan potensi perusahaan rintisan digital dengan menggalakkan program Gerakan Nasional 1000 startup digital. RCM dapat membantu startup dalam meminimalisir resiko yang akan terjadi terkait dengan masalah yang akan timbul akibat perubahan requirement. Hal tersebut didukung dengan pengimplementasian RCM yang tidak membutuhkan biaya yang besar.

Penulis:

  1. Dheja Daruna Panjalu – 18/429063/TK/47565
  2. Tiara Citra Pramesti – 18/429088/TK/47590