Agile, RAD, XP ,DSDM dan XP dalam Software Engineering

Agile

Sebelum kita membahas lebih jauh tentang Agile, sejenak kita flashback kebelakang, melihat bagimana software dikembangkan pada masa awal perkembangan komputer.  Dulu perangkat lunak  dikembangkan dengan metode waterfall. Dimana proses pembangunan perangkat lunak dimulai dari analisa kebutuhan, desain, penulisan sourcecode, pengujian dan pengoperasian software. Dalam metode waterfall suatu tahap tidak akan dijalankan sebelum tahap sebelumnya benar benar telah sempurna. Ciri lain dari metode waterfall adalah banyaknya dokumentasi dari tiap tahap.

hqdefault

Salah satu kelemahan dari metode waterfall adalah ketidak mampuan untuk menghadapi perubahan kebutuhan software, jika terjadi perubahan pada salah satu tahap, maka seluruh proses akan diulang dari awal.

figure-4-salmon-life-cycle-as-the-critique-of-the-waterfall-model-4

Kemudian datanglah metodologi baru yang dikenal dengan nama agile , kata agile berarti bersifat cepat, ringan, bebas bergerak. Metodologi ini mengutamakan fleksibilitas terhadap perubahan spesifikasi perangkat lunak yang terjadi selama pengembangan. Bahkan perubahan ataupun penambahan pada saat fase terakhir pun teratasi apabila menggunakan metodologi ini.

dilbert-agile_programming

Dalam Agile, terdapat  empat nilai yang biasa di sebut Agile Alliance’s Manifesto yaitu

  1. Interaksi dan personel lebih penting daripada proses dan alat
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap
  3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana

Kelebihan dari Agile Modeling:

  1. Meningkatkan kepuasan kepada klien
  2. Pembangunan system dibuat lebih cepat
  3. Mengurangi resiko kegagalan implementasi software dari segi non-teknis
  4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.

Kelemahan dari Agile Modeling:

Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.

Agile adalah sebuah filosofi yang kemudian diimplementasikan  model pengembangan perangkat lunak lain seperti RAD, DSDM dan XP.

RAD (Rapid Application Development)

RAD Adalah metodologi pengembangan perangkat lunak yang menggunakan prototipe. Prototipe adalah contoh software yang dipresenstasikan kepada pengguna. Dalam model RAD, bagian bagian software dikembangkan secara bersamaan sebagai prototipe. Dikarenakan tidak ada rincian perencanaan yang detail, maka memudahkan untuk melakukan perubahan pada saat proses pengembangan software berjalan. Dalam model RAD , tahap analisis, perancangan, pembuatan dan pengujian dilakukan dalam jangka pendek yang singkat. Proses tersebut akan menghasilkan prototipe yang kemudian dipresentasikan ke klien. Dari presentasi tersebut kemudian klien akan memberikan saran dan kritik. Dari saran dan kritik tadi dilakukan pengembangan ulang software dan kemudian dipresentasikan ulang hingga klien merasa puas dengan software yang dihasilkan. Dalam RAD juga sering digunakan generator aplikasi untuk membuat aplikasi secara otomatis .

rad-methodology

DSDM ( Dynamic Systems Development Method )

DSDM adalah adalah pengembangan Rapid Appliation Development (RAD). DSDM mengutamakan keterlibatan pengguna dalam pembangunan perangkat lunak, dan mengakomodir adanya perubahan spesifikasi perangkat lunak sehingga perangkat lunak dapat dibangun tepat waktu dan tepat anggaran. Sebagai perluasan dari RAD, DSDM difokuskan untuk proyek sistem informasi yang biasanya memiliki tenggat waktu dan dana yang terbatas.

software_development_methodology

DSDM terdiri dari 3 tahapan utama, dan 5 sub tahap :

Sebelum proyek

Dimana kandidat proyek diidentifkasi, pembiayaan proyek dipenuhi dan jaminan proyek dipastikan. Penanganan hal-hal tersebut pada tahap ini menghindari masalah pada tahap-tahap berikutnya.

Selamaproyek

Merupakan inti dari DSDM, yang terdiri dari 5 sub tahap yaitu :

Studi kelayakan

Studi bisnis

Perulangan model fungsional

Perancangan dan pembuatan

Setelah proyek

Memastikan sistem berjalan secara efektif dan efisien. Hal ini diwujudkan dengan perawatan, peningkatan dan perbaikan.

Extreme Programming ( XP )

XP merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Kent Back. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi kebutuhan yang tidak jelas maupun terjadinya perubahan-perubahan kebutuhan yang sangat cepat.

Salah satu yang unik dari XP adalah bagaimana melakukan pengujian software. Jika pada metode lain tes baru dikembangkan setelah perangkat lunak selesai menjalani proses coding maka pada XP tim pengembang harus membuat terlebih dahulu tes yang hendak dijalani oleh perangkat lunak. Berbagai model tes yang mengantisipasi penerapan perangkat lunak pada sistem dikembangkan terlebih dahulu. Saat proses coding selesai dilakukan maka perangkat lunak diuji dengan model tes yang telah dibuat tersebut. Metode pengembangan seperti ini juga dikenal dengan Test Driven Development ( TDD )

Dalam XP juga dikenal istilah pair programming. Pair programming adalah melakukan proses menulis program dengan berpasangan. Dua orang programer saling bekerjasama di komputer yang sama untuk menyelesaikan sebuah unit. Dengan melakukan ini maka keduanya selalu dapat berdiskusi dan saling melakukan koreksi apabila ada kesalahan dalam penulisan program. Karena itu dalam XP harus ada coding standards yang telah disepakati terlebih dahulu, sehingga maka pemahaman terhadap program akan menjadi mudah untuk semua programer dalam tim.

dilbert-xp03

XP cocok diterapkan jika ..

  • Keperluan berubah dengan cepat
  • Resiko tinggi dan ada proyek dengan tantangan yang baru
  • Tim programmer sedikit, yaitu 2-10 orang
  • Mampu mengotomatiskan tes
  • Ada peran serta pelanggan secara langsung

Kelemahan XP

  • Kebutuhan kemungkinan besar tidak lteriddentifikasi dengan lengkap sehingga harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
  • XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

 

SCRUM

0_JBZZB1V6701lJ3t0_

Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile yang lebih fokus membahas proses untuk mengidentifikasi, mengelompokkan dan menentukan prioritas pekerjaan yang perlu dilakukan dan memiliki tujuan utama untuk mendapatkan perkiraan lama waktu pembangunan software. Scrum merupakan suatu kerangka kerja. Jadi tidak menyediakan deskripsi rinci tentang bagaimana segala sesuatu harus dilakukan pada proyek. Berbeda dengan XP yang lebih fokus pada proses teknis penulisan kode program, Scrum lebih difokuskan pada manajemen organisasi dalam pembuatan perangka lunak.

Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap sebagai penasehat bagi tim, membantu anggota tim menggunakan kerangka Scrum . Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya dibagi ke grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat ikut membantu dalam koordinasi team.

Scrum tepat digunakan saat kondisi:

  • Keperluan berubah dengan cepat
  • Tim programmer sedikit, yaitu 5-9 orang
  • Pelanggan tidak terlalu paham dengan apa yang diinginkan

Scrum memiliki prinsip yaitu:

  • Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lainProses dapat beradaptasi terhadap perubahan teknis dan bisnis
  • Proses menghasilkan beberapa software increment
  • Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
  • Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
  • Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Kelebihan Scrum antara lain:

  • Keperluan berubah dengan cepat
  • Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
  • Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
  • Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
  • Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Kelemahan Scrum antara lain:

Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.

Leave a comment