Perbedaan Iterative dan Incremental Model

 

Perbedaan terletak pada Gambar 1 dan Gambar 2. Pada Gambar 1 terlihat tidak terdapat full spek requirement. Proses penyempurnaan dilakukan setiap tahap iterasi. Pada Gambar 2 terlihat requirement terbagi menjadi beberapa bagian seperti puzzle. Setiap cycle diibaratkan seperti potongan puzzle yang disusun hingga sempurna.

iterative-model-example

Gambar 1 – Iterative Model

incremental-model_11

Gambar 2 – Incremental Model

Iterative model membentuk gambaran produk secara kasar diawal untuk kemudian di review dan ditingkatkan pada setiap iterasi hingga sempurna. Gambar 3 menunjukkan bahwa keseluruhan product dibangun step-by-step.

iterative-model

Gambar 3 – Iterative Model Cycle

Keuntungan:

  • Bisa dibangun berdasarkan High-level design, kemudian baru membangun pondasinya.
  • Karena dibangun step-by-step maka dapat terlihat defect secara dini.
  • Bisa dapat feedback user secara efektif dan reliabel.
  • Less time documenting – more time designing.

Kekurangan:

  • Setiap tahapan rapuh karena tidak ada overlap.
  • Kemungkinan penambahan biaya arsitektur dibelakang karena requirement tidak dikumpulkan semua di awal

Cocok bagi:

  • Projek besar.
  • Requirement dan tujuan akhir sistem sudah jelas dan dimengerti.
  • Mayor requirement harus ada, detailnya bisa dikemudian hari

Pada model incremental sifatnya modular (seperti puzzle). Setiap modul dikerjakan dalam sebuah iterasi seperti Gambar 4. Modul pertama dibangun dalam sebuah iterasi kemudian bisa di presentasikan pada user, setelah fix baru kemudian iterasi kedua atau modul kedua dibangun kembali, hingga modul terakhir berlangsung.

incremental_model

Gambar 4 – Incremental Model Cycle

Keuntungan:

  • Generate perangkat lunak secara cepat (tanpa menunggu hingga semua selesai bisa terlihat).
  • Lebih fleksibel.
  • Lebih mudah di uji dan debug pada setiap iterasi.
  • User bisa feedback setiap tahapan.
  • Lebih mudah mengelola risiko.

Kerugian:

  • Membutuhkan rancangan yang sangat baik.
  • Harus jelas kesuluruhan sistem baru bisa dibagi-bagi menjadi modul.
  • Pengeluaran lebih banyak dibandingkan waterfall model.

Cocok bagi:

  • Sudah memiliki requirement yang komplit dan jelas
  • Tidak mengejar waktu
  • Menggunakan teknologi baru
  • Tidak membutuhkan tenaga ahli ekstra
  • Terdapat risiko dan target yang besar
Advertisements

Agile Model

Merupakan model inkremental, pengembangan perangkat lunak secara berulang dengan perputaran iterasi yang cepat. Hasil keluaran terlihat setiap iterasi yang dilakukan Gambar 1. Setiap hasil keluaran di uji untuk memasikan kualitas perangkat lunak tetap terjaga. Extreme Programming (XP) merupakan salah satu contoh penggunaan agile model.

agile-model

Gambar 1 – Agile Model

Keuntungan:

  • Kepuasan pelanggan karena pengerjaan yang cepat “terlihat”
  • Bisa terus diperbaiki dan berubah requirement
  • Interaksi antara customer (business people) – developer terus berjalan dari awal hingga selesai
  • Terjadinya komunikasi tatap muka (cara terbaik berkomunikasi)

Kekurangan:

  • Sulit menghitung tenaga yang dikeluarkan dalam sebuah lifecycle
  • Kurangnya rancangan dan dokumentasi
  • Projek bisa melenceng jauh jika customer tidak tahu tujuan akhir-nya apa
  • Junior programmer not allowed to take any decision!

Cocok bagi:

  • Customer yang suka galau, karena cost perubahan spek tidak besar
  • Perancangan perangkat lunak belum jelas
  • Yang mau lihat trend ditengah jalan dalam menentukan pilihan kedepan

Reference:

  1. Agile model advantages and disadvantages

Waterfall Model

Merupakan model pertama yang dikenalkan dalam pengembangan perangkat lunak. Disebut juga dengan linear-sequential life cycle, karena tahapannya lurus, mudah dipahami, dan digunakan. Masing-masing tahapan pada waterfall model harus diselesaikan sebelum berlanjut ke tahapan selanjutnya, tidak bisa overlaping Gambar 1.

waterfall-model

Gambar 1 – Waterfall model

Keuntungan:

  • Mudah digunakan dan dipahami.
  • Mudah di kelola karena setiap tahap punya target yang spesifik dan melalui proses review.
  • Setiap tahap dilakukan sekali hingga selesai, tidak overlap.

Kekurangan:

  • Ketika sudah tahap testing, sangat sulit kembali ke tahap selanjutnya untuk merubah komponen yang tertinggal.
  • Risiko tinggi dan ketidakpastian.
  • Tidak cocok untuk projek kompleks dan object-oriented projects.
  • Tidak cocok untuk projek yang kebutuhannya masih belum jelas.

Cocok bagi:

  • Projek dengan skala kecil.
  • Sudah memiliki perancangan yang detail.
  • Requirement jelas dan tidak ambigu.
  • Teknologinya sudah dipahami.
  • Mengetahui titik permasalahan.
  • Memiliki ketersediaan solusi.
  • Mudah mencari tenaga ahli.
  • Projek jangka pendek.