Model Incremental

Model incremental adalah pendekatan pengembangan perangkat lunak yang membagi produk menjadi beberapa bagian kecil, sehingga produk tersebut dirancang, diimplementasikan, dan diuji secara bertahap hingga produk selesai. Model ini menggabungkan elemen-elemen model waterfall dengan filosofi iteratif dari prototyping. Ada banyak situasi saat kebutuhan perangkat lunak awal didefinisikan dengan cukup baik, tetapi ruang lingkup keseluruhan dari upaya pengembangan menghalangi proses yang murni linier. Selain itu, terkadang ada kebutuhan mendesak untuk segera menyediakan sebagian kecil fungsionalitas perangkat lunak kepada pengguna. Hal ini memungkinkan pengguna mulai memanfaatkan perangkat lunak tersebut lebih awal, sementara pengembang terus memperbaiki dan menambahkan fitur baru dalam rilis-rilis berikutnya. Dalam kasus seperti itu, model yang dibutuhkan adalah model incremental.
Model incremental menggabungkan elemen proses linier dan paralel, memungkinkan pendekatan yang fleksibel dalam pengembangan perangkat lunak. Setiap tahap pengembangan mengikuti urutan linier berdasarkan jadwal tertentu. Proses ini menghasilkan "increment", yaitu unit perangkat lunak yang dapat dirilis kepada pengguna.  Increment tersebut serupa dengan hasil bertahap yang dihasilkan oleh model proses evolusioner, karena setiap iterasi memberikan versi perangkat lunak yang lebih lengkap dan fungsional. Misalnya, perangkat lunak pengolah kata yang dikembangkan menggunakan model incremental dapat memberikan fungsi dasar berupa manajemen file, pembuatan, dan pengeditan dokumen dalam increment pertama; Pembuatan dan pengeditan dokumen yang lebih canggih dalam increment kedua; pengejaan dan tata bahasa di increment ketiga; dan kemampuan mengatur tata letak halaman di increment keempat. Perlu dicatat bahwa aliran proses untuk setiap increment dapat memasukkan paradigma prototyping.
Ketika model incremental diterapkan, increment pertama biasanya berfungsi sebagai produk inti yang mencakup kebutuhan dasar. Produk ini hanya menyelesaikan fitur utama, sementara berbagai fitur tambahan, baik yang sudah diketahui maupun yang belum, dibiarkan untuk ditangani di tahap berikutnya. Produk inti kemudian digunakan oleh pelanggan atau diuji secara menyeluruh untuk mendapatkan masukan. Berdasarkan hasil penggunaan atau evaluasi ini, rencana untuk increment berikutnya disusun. Rencana tersebut mencakup revisi pada produk inti agar lebih sesuai dengan kebutuhan pelanggan serta penambahan fitur dan fungsi baru. Siklus ini terus berulang dengan setiap increment hingga produk lengkap berhasil diselesaikan.
Model proses incremental menekankan pengiriman produk yang dapat digunakan pada setiap tahap increment. Increment pertama, meskipun belum menjadi produk akhir, adalah versi awal yang dapat digunakan oleh pengguna dan memberikan dasar untuk evaluasi lebih lanjut. Pendekatan ini sangat bermanfaat dalam situasi saat sumber daya manusia terbatas dan ada tenggat waktu bisnis yang ketat. Increment awal memungkinkan pengembangan dilakukan oleh tim kecil, sementara tambahan tenaga kerja dapat disiapkan untuk increment berikutnya jika produk inti mendapat respons positif dari pengguna. Selain itu, increment juga dapat dirancang untuk mengurangi risiko teknis. Misalnya, dalam kasus di mana pengembangan sistem utama bergantung pada ketersediaan  perangkat keras baru dengan jadwal pengiriman yang belum pasti, increment awal dapat dirancang tanpa memanfaatkan perangkat keras tersebut. Dengan strategi ini, sebagian fungsionalitas dapat disampaikan kepada pengguna tanpa harus menunggu seluruh sistem selesai, sehingga menghindari penundaan yang signifikan.
Model Incremental