Apa saja yg membedakan antara model yang satu dengan yang lain?? Langsung saja
Agile Software Development Methodology

Agile Development Methodology adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.
Kelebihan dari agile
·
Meningkatkan
kepuasan kepada klien.
·
Dapat
melakukan review pelanggan mengenai software yang dibuat lebih awal.
·
Pembangunan
system dibuat lebih cepat.
·
Mengurangi
resiko kegagalan implementasi software dari segi non-teknis.
·
Jika
pada saat pembangunan system terjadi kegagalan kerugian dari segi materi
relatif kecil.
Kekurangan dari agile
·
Developer harus selalu siap dengan
perubahan karena perubahan akan selalu diterima.
·
Agile tidak
akan berjalan dengan baik jika komitmen tim kurang.
·
Tidak cocok
dalam skala tim yang besar (>20 orang).
·
Perkiraan waktu
release dan harga perangkat lunak sulit ditentukan.Rapid Application Development

Rapid Application Development (RAD) adalah strategi siklus hidup yang ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus tradisional (McLeod, 2002). RAD merupakan gabungan dari bermacam-macam teknik terstruktur dengan teknik prototyping dan teknik pengembangan joint application untuk mempercepat pengembangan sistem/aplikasi (Bentley, 2004). Dari definisi-definisi konsep RAD ini, dapat dilihat bahwa pengembangan aplikasi dengan menggunakan metode RAD ini dapat dilakukan dalam waktu yang relatif lebih cepat.
Kelebihan dari RAD
·
RAD mengikuti tahapan pengembangan sistem sepeti
umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada
(reusable object) sehingga pengembang
tidak perlu membuat dari awal lagi dan waktu yang lebih singkat.
·
Setiap fungsi mayor dapat dimodulkan dalam waktu
tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah
dan kemudian diintegrasikan sehingga waktunya lebih efisien.
Kekurangan dari RAD
·
Tidak cocok untuk proyek skala besar.
·
Proyek bisa gagal karena waktu yang disepakati tidak
dipenuhi.
·
Sistem yang tidak bisa dimodularisasi tidak cocok
untuk model ini.
·
penghalusan dan
penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini
memerlukan kerja keras.
·
kinerja dari
perangkat lunak yang dihasilkan dapat menjadi masalah manakala
kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan
dengan model ini kurang bagus.
·
Model RAD
memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya
bisa tergabung dalam 1 tim
·
Model RAD
memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala
besar.Dynamic System Development Method (DSDM)
Merupakan suatu kerangka dalam pengembangan suatu project terutama digunakan sebagai metode pengembangan perangkat lunak, DSDM ini merupakan iteratif dan incremental pendekatan yang mencakup prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna/pelanggan terus-menerus, jadi intinya DSDM ini termasuk dalam metodologi DSDM ini mendekati dari metode Incremental dan Agile Alliance.
Gambar DSDM Model
- Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
- Membangun software dengan cepat : 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
- Aktifitas Feasibility Study : Siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
- Aktifitas Business Study : Susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
- Aktifitas Functional model iteration : Hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
- Aktifitas Design and Build Iteration : Cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
- Aktifitas Implementation : Menempatkan software pada lingkungan sebenar sekalipun belum lengkap atau masih ada perubahan.
- DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.
Extreme Programing Methology
Extreme Programming adalah suatu model yang termasuk dalam pendekatan agile yang diperkenalkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme
Programming (XP) adalah metode pengembangan software yang cepat,
efisien, beresiko rendah, fleksibel, terprediksi, scientific, dan
menyenangkan.“.
Model ini cenderung menggunakan pendekatan Object-Oriented. 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 requirements yang tidak jelas maupun
terjadinya perubahan-perubahan requirements yang sangat cepat. Extreme
Programming merupakan agile methods yang paling banyak digunakan dan
menjadi sebuah pendekatan yang sangat terkenal.
Core Value Extreme Programming, yaitu:

- Komunikasi (Communication)
Kurangnya
komunikasi merupakan penyebab utama kegagalan pengembangan software.
Oleh karena itu Extreme Programming(XP) memfokuskan diri pada hubungan
komunikasi yang baik antar tim-klien, anggota tim, dan manajer
proyek.Komunikasi dalam XP dibangun dengan melakukan pemrograman
berpasangan (pair programming).Klien harus dilibatkan dalam proses
pengembangan perangkat lunaknya dengan tujuannya untuk memberikan
pandangan pengembang sesuai dengan pandangan pengguna sistem yang
dibangun.
- Kesederhanaan (Simplicity)
Extreme
Programming (XP) melakukan semua pekerjaan dengan sederhana dan praktis
tanpa mengurangi fungsi utamanya. Dalam pengerjaan, metode yang dipilih
adalah metode yang pendek dan simpel. Jangan terlalu rumit dalam
membuat desain, hilangkan fitur yang tidak ada gunanya atau hapus fungsi
yang tidak terpakai. Dengan kata lain lebih baik melakukan hal yang
sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya nanti
jika diperlukan.
- Umpan balik (Feedback)
Selalu
evaluasi perkembangan perangkat lunak yang sedang dikerjakan. Segala
informasi harus dikumpulkan setiap interval waktu yang konsisten dan
kesalahan-kesalahan yang muncul selama proses pengembangan harus dibahas
dan dicari solusinya. Umpan balik tersebut berfungsi sebagai indikator
kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan
perlu dibuat.
- Keberanian (Courage).
Programmer
Extreme Programming (XP) didorong untuk berani bereksperimen dan
menulis ulang kode jika mereka tidak puas dengan kode atau desain yang
sudah ada. Hal ini membantu mempertahankan moral serta intgritas para
pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan
anggota proyek lainnya.

Tahapan Dalam Etreme (XP) Programming, yaitu:
Aktivitas
planning dimulai dengan membentuk user stories. Anggota XP team
kemudian menilai setiap story dan menentukan cost — diukur dalam
development week.
Planning.
Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup
story untuk release berikutnya (software increment berikutnya) untuk
dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan
membangun story-story dengan cara :
Semua story segera diimplemetasikan (dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2.
Story dengan resiko paling tinggi akan diimplemetasikan terlebih dulu.
Setelah project pertama direlease dan didelivery, XP team
memperhitungkan kecepatan project. Selama development, customer dapat
menambah story, merubah value, membagi story atau menghapusnya.
Design. XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
Coding.
Sebelum membuat code, lebih baik membuat unit test tiap story untuk
dimasukkan dalam software increment. XP menyarankan agar dua orang
bekerja bersama pada satu komputer workstation untuk membuat code dari
satu story (pair programming), untuk menyediakan real time problem
solving dan jaminan real time quality. Setelah pair programming selesai,
code diintegrasikan dengan kerja laiinnya (continuous integration).
Testing.
Unit test yang telah dibuat harus diimplementasikan menggunakan suatu
framework dan diatur ke dalam universal testing suite, integrasi dan
validasi sistem dapat dilakukan setiap hari. Customer test (acceptance
test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan
fungsional sistem. Acceptance test diperoleh dari customer stories yang
telah diimplemetasikan sebagai bagian dari software release.
Berikut Siklus Hidup dalam XP Programming.

Extreme Programming tepat untuk dipergunakan untuk pembuatan program yang:
- Membutuhkan perubahan yang cepat (misalnya: Game Mobile)
- Proyek beresiko tinggi dengan tantangan yang berat
- Tim programmer sedikit, yaitu sekitar 2–10 orang
- Adanya permintaan dari pelanggan secara langsung
Kelebihan Extreme Programming, yaitu:
- Meningkatkan kepuasan kepada klien
- Pembangunan system dibuat lebih cepat
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kelemahan Extreme Programming, yaitu:
- Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer 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 Development Methodology
Merupakan salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir.Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE. Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasika untuk menghasilkan proses yang optimal.

Teknik SCRUM dapat dilakukan di sebuah kepanitiaan ataupun project lain diluar bisnis teknologi informasi. Dalam teknik SCRUM terbagi dalam tiga roles, yang pertama adalah Product Owner, Scrum Master dan Develophment/Scurm Team. Product owner bertugas mengatur urusan dengan Stakeholder sedangkan Scrum Master mengurusi bagian internal, di bagian Development Team mengatur urusan teknik pengerjaan project dan pembahasan yag lebih rinci.
Banyak perusahaan multinasional menginternalisasi atau mengadopsi teknik ini sebagai standar bekerja mereka, karena secara umum teknik crum berhasil membuat beberapa perusahaan menaikan omset karena system yang telah teruji ini. Teknik scrum membuat pekerjaan anda menjadi lebih tertata dan lebih detail.
Namun segala sesuatu memiliki nilai plus dan minus, begitu juga dengan teknik scrum ini, scrum menjadikan pekerjaan lebih rapi namun teknik ini tidak cocok diterapkan pada perusahaan jasa yang butuh deadline cepat. Scrum membuat pekerjaan menjadi lebih lama dalam estimasi waktu. Namun segala sesuatunya pasti dapat di selesaikan apabila sudah memiliki persiapan yang matang dari awalnya.
Teknik srum dimulai dari pembahasan project antara Product Owner dengan Stakeholder terkait, lalu dibentuklah Srum Master dan Team Development. Lahkah pertama yang dilakukan oleh Scrum master adalah dengan membuat semua list pekerjaan yang sebut juga dengan User Story, User Stori tersebut dibuat di media yang dinamakan Backlog yang di tempel di TaskBoard, User Story terdiri :
As a , I want so that .
Contoh :
As a registered user,I want to upload videos, so I can share it to other people.
Setiap Backlog yang dibuat diberi setimasi dan standar atau tingkat kesulitan, anda bisa memakai angka 1, 2, 3 dan seterusnya untuk menjelaskan tingkat kesulitan maupun huruf seperti A, B, C dan lain sebagainya, dan yang paling penting dari kode ini adalah semua team development harus mengerti maksud kode tersebut. Setelah dibuat kode maka tugas selanjutnya membuat sprint, sprint adalah batasan waktu pengerjaan dan jika telah ditetapkan maka teknik scrumk tidak diberkenankan mengubah konspe ditengah jalan.
Kelebihan
dari scrum
·
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 kapan pun diperlukan.
Kekurangan
sari scrum
·
Developer harus selalu siap dengan
perubahan karena perubahan akan selalu diterima.
·
Lemah
dalam perencanaan arsitektur
Tidak ada komentar:
Posting Komentar