Apa itu Incremental dalam Software Development?
Incremental model atau model incremental adalah salah satu proses pengembangan perangkat lunak (software development) di mana persyaratan (requirement) dipecah menjadi beberapa modul terpisah dan dikerjakan secara bertahap.
Requirement adalah fitur atau fungsi apa saja yang perlu dikembangkan atau ditambahkan pada suatu software. Biasanya, requirement dirangkum menjadi satu dokumen yang disebut dengan requirement document yang juga berisi waktu yang diperlukan untuk mengimplementasikan fitur tersebut.
Namun dalam model incremental, requirement dipecah menjadi beberapa modul. Nantinya setiap modul akan melewati proses analisis desain, coding, pengujian, hingga implementasi.
Setelah satu model selesai diuji, model incremental lainnya akan menerima perlakuan yang sama. Setelah itu, hasil model incremental kedua akan digabungkan dengan hasil model sebelumnya hingga membentuk satu kesatuan.
Modul incremental pertama biasanya merupakan produk inti yang berisi requirement dasar. Modul-modul berikutnya bertindak sebagai pelengkap untuk menyempurnakan fitur tersebut.
Tahapan Incremental Model
Ada empat tahapan incremental model, yaitu:
#1 Requirement analysis
Fase pertama adalah fase terpenting dalam proses pengembangan produk, karena tim tidak bisa membuat produk yang baik tanpa mengetahui apa yang dibutuhkan user dan solusinya.
Pada tahap ini, business analyst dan product manager mengumpulkan informasi terkait persyaratan fungsional dan non-fungsional dari user potensial.
Persyaratan fungsional (functional requirements) mendeskripsikan fungsi dari software, misalnya mengedit gambar, berbelanja secara online, atau memutar lagu.
Sedangkan persyaratan non-fungsional (non-functional requirements) mendefinisikan batasan yang dimiliki produk. Seperti kinerja, keamanan data, dan kemudahan transaksi.
Setelah seluruh persyaratan terkumpul, dokumen tersebut diolah menjadi persyaratan teknis (technical requirements) yang disebut SRS (Software Requirement Specification).
Selanjutnya SRS diberikan kepada klien untuk disetujui sebelum dijadikan referensi pada tahap berikutnya.
#2 Design & development
Tim developer mengembangkan arsitektur produk mengacu pada SRS, lalu disimpan dalam DDS (Design Document Specification) untuk diberikan kepada stakeholder.
Setelah DDS disetujui, developer akan melakukan coding yang sederhana dan efisien serta mengatur interaksinya dengan modul atau sistem lain.
#3 Testing
Pengujian akan dilakukan setelah kode selesai ditulis untuk mengetahui apakah kode bekerja sesuai dengan yang diharapkan.
Testing dilakukan beberapa kali. Pertama adalah pengujian unit dan/atau integrasi aplikasi. Jika tidak ada masalah, akan dilakukan environment testing untuk menganalisis kualitasnya.
Selama tahap ini, bug mungkin ditemukan. Hal ini mengurangi risiko bug dan error lain yang bisa terjadi pada tahap implementasi.
#4 Implementation
Setelah melewati fase testing, artinya produk sudah bisa dirilis. Setelah seluruh modul sudah ada pada tahap ini, modul bisa digabungkan sehingga menjadi produk akhir yang bisa digunakan.
Kelebihan Incremental Model
Kelebihan incremental model antara lain:
- Pembuatan software lebih cepat
- Lebih mudah mengidentifikasi bug dan memperbaikinya (debugging)
- Requirement mudah disesuaikan dengan respons user karena dikembangkan secara bertahap
Kekurangan Incremental Model
Adapun kekurangan incremental model yaitu:
- Membutuhkan perencanaan desain yang baik
- Arsitektur sistem bisa menyebabkan masalah karena tidak semua persyaratan dikumpulkan di awal
- Jika ada masalah pada satu unit, seluruh unit harus ikut direvisi
FAQ (Frequently Asked Question)
Kapan waktu paling tepat menggunakan incremental model?
Jika menimbang kekurangannya, incremental model mungkin tidak cocok untuk pengembangan software tertentu.
Berikut ini waktu yang tepat menggunakan incremental model:
- Ketika mengembangkan aplikasi web atau proyek dengan teknologi baru
- Saat seluruh requirement diketahui di awal proses
- Ketika klien menuntut produk segera diluncurkan
- Fitur yang dikembangkan memiliki risiko tinggi
- Ketika durasi pengerjaan proyek sudah terlalu lama