Model Pengembangan Perangkat Lunak Populer 2019

(Terakhir diedit : March 2, 2019)

Model pengembangan perangkat lunak yang ada saat ini sangatlah banyak. Model-model tersebut dibuat untuk disesuaikan dengan pengembangan berbagai jenis perangkat lunak dan aplikasi. Memilih model yang tepat sangat penting untuk memberikan hasil yang diharapkan dalam kerangka waktu yang ditentukan dan di bawah anggaran dana yang direncanakan. Sebaliknya, memilih model yang salah atau bahkan tanpa menggunakan salah satu model pengembangan, dapat menyebabkan pengembangan perangkat lunak memakan waktu yang sangat lama, kualitas produk di bawah standar atau bahkan kegagalan proyek.

Oleh karena itu, sangatlah penting untuk mengetahui perbedaan, kelebihan dan kekurangan antara model-model pengembangan perangkat lunak, sehingga bisa memilih model yang paling sesuai dengan kebutuhan suatu proyek.

Dalam artikel ini akan dijelaskan model-model pengembangan perangkat lunak, proyek yang paling cocok untuk tiap-tiap model dan juga keunggulan dan kekurangannya. Semua model yang akan dijelaskan disini memiliki fase proses yang sama dengan SDLC (Software Development Life Cycle), namun ada beberapa fitur yang membedakan dan membuat cocok untuk berbagai jenis proyek dan berbagai ukuran tim pengembang.

Software Development Life Cycle

Berikut ini adalah 5 model pengembangan perangkat lunak populer yang banyak digunakan saat ini :

Waterfall

Waterfall merupakan model pengembangan perangkat lunak yang tertua, paling tepercaya, dan paling mudah. Bagannya menyerupai air terjun, karena setiap tahap dapat diselesaikan hanya setelah tahap sebelumnya selesai. Tahapan meliputi pengumpulan kebutuhan produk, desain dan pengembangan perangkat lunak, pengujian, rilis dan pemeliharaan.

Model Waterfall

Kelebihan Waterfall :

  • Struktur proyek sederhana dan fungsional.
  • Cepat selesai, cocok untuk proyek skala kecil hingga menengah.
  • Mudah dalam pengujian dan analisa realisasi fitur.

Kekurangan Waterfall :

  • Detil kebutuhan proyek harus jelas sebelum proses pengerjaan proyek dimulai, dan tidak dapat dirubah setelah proses berlangsung.
  • Fungsionalitas produk tidak dapat diuji dan diperbaiki pada pertengahan proses pengembangan, karena tidak ada kelayakan produk minimal (Minimum Viable Product).
  • Model ini tidak sesuai untuk proyek yang membutuhkan perawatan intensif.

Secara keseluruhan, Waterfall adalah metode pengembangan perangkat lunak yang sesuai untuk tim pengembang yang relatif kecil yang mengerjakan proyek bertipikal one-time project. Dapat berupa proyek-proyek dengan siklus pengembangan yang panjang dengan kebutuhan yang detil, seperti driver perangkat keras medis atau perangkat lunak medis untuk proses analisis, serta perangkat lunak dan aplikasi untuk industri lain di mana kesalahan aplikasi dapat berdampak pada nyawa manusia. Namun, karena keterbatasan pengujian dan kekakuan manajemen proyek, Waterfall saat ini kehilangan popularitasnya karena model lain yang lebih fleksibel.

Scrum

Scrum adalah pendekatan praktis untuk metodologi pengembangan produk Agile. Paradigma ini menyatakan bahwa pengembangan harus iteratif, dengan MVP (Minimum Viable Product) selalu tersedia untuk pengujian setiap iterasi (yang biasanya 2-4 minggu lamanya). Setelah setiap iterasi dikerjakan, fitur baru ditambahkan ke produk sampai fitur dianggap lengkap dan produk siap untuk dirilis. Pendekatan pengembangan perangkat lunak seperti ini memungkinkan untuk melakukan penyesuaian kebutuhan disaat pengerjaan proyek sedang berlangsung.

Model Scrum

Kelebihan Scrum :

  • Adaptasi yang tinggi terhadap perubahan kebutuhan di tengah siklus manajemen proyek.
  • Pemilik produk terus berkomunikasi dengan tim pengembang untuk menjaga transparansi proses.
  • Karena pengujian dilakukan pada setiap iterasi, maka bug dan fitur yang tidak perlu bisa diperbaiki dengan cepat. Untuk mengembalikan ke versi produk sebelumnya juga cukup mudah.

Kekurangan Scrum :

  • Karena kebutuhan produk dapat dan mungkin sering berubah, spesifikasi produk tersebut jarang didokumentasikan. Ini berarti pengembangan dapat berubah arah jika pemilik produk tidak benar-benar jelas tentang spesifikasi produk.
  • Hanya pengembang senior yang dapat mengendalikan model manajemen proyek seperti ini, yang berarti harus ada setidaknya satu Master Scrum yang berdedikasi di setiap tim dan mereka harus terus mencermati untuk memastikan setiap pekerjaan pengembang bergerak ke arah yang benar.
  • Karena kerangka waktu awal terlalu sering berubah, maka lama proses pengerjaan proyek sering tidak tepat waktu, atau molor dari waktu yang telah ditentukan sebelumnya.

Model Scrum dari metodologi Agile sangat bagus untuk tim yang lebih kecil yang bekerja pada pengembangan berkelanjutan dan implementasi fitur-fitur baru untuk produk lama. Pengujian menyeluruh, iterasi cepat, fitur baru dikirim dengan cepat dan produk beroperasi setiap saat.

Lean

Model pengembangan perangkat lunak Lean berakar pada pendekatan Toyota untuk melakukan hal-hal : ketika perlu mengubah sesuatu, hanya lakukan perubahan yang paling bernilai, membutuhkan anggaran terkecil yang harus diselesaikan dan hanya mengambil 30% dari waktu yang direncanakan. Pendekatan semacam itu membantu Toyota membangun alur kerja yang dapat mengubah konveyor penyusun mobil menjadi produksi model lain hanya dalam hitungan jam, sedangkan pabrikan lain membutuhkan waktu berminggu-minggu untuk melakukannya.

Model Lean

Kelebihan Lean :

  • MVP dikirim dengan cepat.
  • Biayanya cukup rendah.
  • Tim termotivasi untuk membuat setiap fitur produk menjadi sempurna, tidak hanya sekedar menyelesaikan tugas.

Kekurangan Lean :

  • Dokumentasi harus benar-benar tepat dan diperlukan analis yang ahli untuk memastikan pemahaman 100% tentang fitur produk.
  • Pendekatan ini hanya cocok untuk pengembang yang sangat terampil dengan pengetahuan luas di lapangan. Sambil belajar dalam proses pengembangan adalah tidak mungkin dan tidak dapat diterima, karena menempatkan proyek dalam posisi beresiko.
  • Karena sangat termotivasi untuk memberikan produk yang sempurna, kadang pengembang kehilangan fokus pada tujuan awal, sehingga pengambilan keputusan yang fleksibel dari pengembang harus didukung dengan pemantauan proses yang intensif oleh pemimpin tim atau analis.

Metodologi pengembangan perangkat lunak Lean bekerja sangat baik untuk merenovasi produk lama, seperti menulis ulang mesin menggunakan teknologi terbaru, mengganti antarmuka yang sudah ketinggalan zaman dengan fungsionalitas terbaik, dll.

Kanban Board

Kanban Board adalah pendekatan yang dapat digunakan menyertai metodologi pengembangan perangkat lunak yang lain pada proyek yang sedang berjalan, meskipun awalnya digunakan pada pekerjaan model Lean. Pendekatan ini berkonsentrasi pada penentuan fitur yang paling penting dalam pengembangan yang sedang berjalan, menunjukkan upaya yang sudah dihabiskan untuk pengembangan, dan membantu menyoroti ruang untuk perbaikan berkelanjutan, membantu mencari dan menemukan kesempurnaan dalam setiap fitur produk.

Model Kanban Board

Kelebihan Kanban Board :

  • Membatasi proyek yang sedang berjalan ke area yang paling penting untuk menjaga jumlah perubahan minimal pada waktu yang telah ditentukan dan mempercepat proses pengembangan.
  • Hampir tidak ada investasi dalam alat atau pelatihan tambahan untuk tim pengembangan.
  • Sesederhana catatan tempel (sticky notes) dan papan tulis, teknik visualisasi ini membantu menjaga denyut nadi perkembangan produk.

Kekurangan Kanban Board :

  • Catatan tempel tidak dapat memprediksi jangka waktu, sehingga proyek-proyek yang panjang yang memerlukan waktu pengembangan berbulan-bulan tidak cocok menggunakan pendekatan ini.
  • Kanban Board sangat cocok untuk mempermudah proyek yang sedang berjalan, tetapi tidak concok untuk perencanaan proyek dan dapat digantikan oleh model yang lebih cocok untuk perencanaan, seperti Scrum. Kemudian, sekali lagi, Kanban berfungsi paling sesuai dengan model Lean atau Scrum, hanya menunjukkan alur pengembangan dan membantu menghindari kemacetan di dalam proses pengembangan.
  • Karena setiap tugas Kanban Board sama pentingnya, praktik ini tidak berfungsi pada saat pemeliharaan (maintenance), karena tidak ada penanda urgensi yang disajikan dan tugas tidak dapat diprioritaskan.

Kanban sangat bagus untuk tim yang lebih kecil yang mengerjakan perbaikan produk, seperti menjalankan sistem intelijen bisnis, di mana diharapkan ada peningkatan sistem yang konstan dan nilai lebih.

Pengembangan Berbasis Fitur

Dalam Pengembangan Berbasis Fitur (Feature Driven Development), fitur adalah landasan pengembangan. Ketika fitur ditambahkan, set kebutuhan baru diperkenalkan. Model bekerja paling baik untuk tim pengembang internal yang lebih besar, bekerja pada peningkatan bertahap dari produk skala besar. Pendekatan ini juga cukup sering digunakan sebagai alur kerja sementara antara metodologi pengembangan perangkat lunak Waterfall dan Agile.

Model Pengembangan Berbasis Fitur

Kelebihan Pengembangan Berbasis Fitur :

  • Berfungsi sangan baik untuk produk skala besar yang membutuhkan pembaruan terus-menerus dan selalu memberikan nilai.
  • Berdasarkan praktik pengembangan perangkat lunak terbaik dan terdokumentasi dengan baik, memastikan pengembang dengan pengalaman apa pun dapat menemukan peran mereka dan berhasil mengerjakan proyek.
  • Fitur yang dihasilkan selalu lebih baik daripada yang awal.

Kekurangan Pengembangan Berbasis Fitur :

  • Model ini tidak dapat digunakan oleh tim pengembang yang lebih kecil atau satu orang, serta untuk proyek yang lebih kecil dengan tenggat waktu yang ketat.
  • Keberhasilan model ini sangat bergantung pada tim yang sangat terampil dalam pemantauan proses di seluruh siklus pengembangan.
  • Dokumentasi langka jika ada. Pemilik perangkat lunak mendapatkan fitur tersebut, namun deskripsi yang tepat berada di luar ruang lingkup model ini.

Model Pengembangan Berbasis Fitur paling baik digunakan oleh tim pengembang yang besar, berfungsi untuk terus meningkatkan kinerja produk terintegrasi, seperti perangkat lunak perbankan. Saat ini cukup populer, namun masih kalah popularitas dibanding model pengembangan perangkat lunak seperti Agile.

Add a Comment

Your email address will not be published. Required fields are marked *

Follow by Email
Facebook
Twitter