Model Incremental

Model incremental adalah metode pengembangan perangkat lunak di mana produk dirancang, diimplementasikan, dan diuji secara bertahap hingga produk selesai. Model ini menggabungkan elemen-elemen model waterfall dengan filosofi iteratif dari prototyping. Ada banyak situasi di mana kebutuhan perangkat lunak awal didefinisikan dengan cukup baik, tetapi ruang lingkup keseluruhan dari upaya pengembangan menghalangi proses yang murni linier. Selain itu, mungkin ada kebutuhan yang mendesak untuk menyediakan seperangkat fungsionalitas perangkat lunak yang terbatas kepada pengguna dengan cepat dan kemudian memperbaiki dan memperluas fungsionalitas tersebut dalam rilis perangkat lunak yang lebih baru. Dalam kasus seperti itu, model yang dibutuhkan adalah model incremental.

Model incremental menggabungkan elemen aliran proses linier dan paralel. Model incremental menerapkan urutan linier seiring berjalannya waktu kalender. Setiap urutan linier menghasilkan “increment” yang dapat disampaikan dari perangkat lunak dengan cara yang serupa dengan kenaikan yang dihasilkan oleh aliran proses evolusi. Misalnya, perangkat lunak pengolah kata yang dikembangkan menggunakan model incremental dapat memberikan fungsi manajemen file dasar, pengeditan, dan produksi dokumen dalam increment pertama; kemampuan edit dan produksi dokumen yang lebih canggih dalam increment kedua; pengejaan dan tata bahasa di increment ketiga; dan kemampuan tata letak halaman tingkat lanjut di increment keempat. Perlu dicatat bahwa aliran proses untuk setiap increment dapat memasukkan paradigma prototyping.

Ketika model incremental digunakan, increment pertama sering kali merupakan produk inti. Artinya, kebutuhan dasar ditangani tetapi banyak fitur tambahan (beberapa diketahui, yang lain tidak diketahui) tetap tidak tersamapaikan. Produk inti digunakan oleh pelanggan (atau menjalani evaluasi terperinci). Sebagai hasil dari penggunaan dan / atau evaluasi, sebuah rencana dikembangkan untuk increment selanjutnya. Rencana tersebut membahas modifikasi produk inti untuk lebih memenuhi kebutuhan pelanggan dan penyampaian fitur dan fungsionalitas tambahan. Proses ini diulang setelah penyampaian setiap increment, sampai produk lengkap diproduksi.

Model proses incremental berfokus pada penyampaian produk operasional dengan setiap increment. Increment awal adalah versi yang dilepaskan dari produk akhir, tetapi memang menyediakan kemampuan yang dapat melayani pengguna dan juga menyediakan platform untuk evaluasi oleh pengguna. Pengembangan tambahan sangat berguna ketika staf tidak tersedia untuk implementasi lengkap dengan batas waktu bisnis yang telah ditetapkan untuk proyek. Increment awal dapat diimplementasikan dengan lebih sedikit orang. Jika produk inti diterima dengan baik, maka staf tambahan (jika diperlukan) dapat ditambahkan untuk mengimplementasikan increment berikutnya. Selain itu, increment dapat direncanakan untuk mengelola risiko teknis. Sebagai contoh, sistem utama mungkin memerlukan ketersediaan perangkat keras baru yang sedang dikembangkan dan yang tanggal penyampaiannya tidak pasti. Dimungkinkan untuk merencanakan increment awal dengan cara menghindari penggunaan perangkat keras ini, dengan demikian memungkinkan fungsionalitas parsial disampaikan kepada pengguna akhir tanpa penundaan yang berlebihan.

Model 
Tahapan ini berlaku umum untuk semua model.

 Komunikasi (communication) : membantu memahami tujuan.
 Perencanaan (planning): diperlukan karena banyak orang (tim perangkat lunak) bekerja pada proyek yang sama tetapi fungsinya berbeda pada saat yang sama.
 Pemodelan (modelling): melibatkan pemodelan bisnis, pemodelan data, dan pemodelan proses.
 Konstruksi (construction): melibatkan penggunaan kembali komponen perangkat lunak dan kode otomatis (proses pembuatan program).
 Penyebaran (deployment): integrasi semua increment.

Kelebihan dan kekurangan model incremental 
Kelebihan-kelebihan dari model incremental, yaitu menghasilkan perangkat lunak yang berfungsi dengan cepat dan lebih awal selama siklus hidup perangkat lunak, lebih fleksibel dan lebih murah untuk mengubah ruang lingkup dan kebutuhan, sehingga menurunkan biaya pengiriman awal. Selanjuntnya model ini lebih mudah untuk melakukan pengujjian dan debug selama iterasi yang lebih kecil. Kemudian pelanggan dapat merespons masing-masing build. Yang terakhir adanya kemudahan untuk mengelola risiko karena potongan berisiko diidentifikasi dan ditangani selama iterasi. Adapun kelemahan dari model incremental ini, antara lain membutuhkan desain dan rencana yang baik, membutuhkan definisi keseluruhan sistem yang lengkap sebelum dipecah menjadi beberapa increment, dan total biayanya lebih banyak dari pada model waterfall.

Referensi 

Proses pengembangan perangkat lunak