Metodologi pengembangan perangkat lunak
Agile Development Methods
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.
Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata
ini digunakan sebagai kata yang menggambarkan konsep model proses yang
berbeda dari konsep model-model proses yang sudah ada. Konsep Agile software development
dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile
Software Development adalah cara membangun software dengan melakukannya
dan membantu orang lain membangunnya sekaligus
Nilai-nilai Agile Development Methods:
- Interaksi dan personel lebih penting daripada proses dan alat.
- Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
- Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
- Respon terhadap perubahan lebih penting daripada mengikuti rencana
Pengertian :
- Interaksi dan personel lebih penting daripada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
- Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
- Kolaborasi dengan klien lebih penting daripada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
- Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak
Rapid application development (RAD)
Biasa disebut rapid prototyping
model proses pembangunan perangkat lunak
yang tergolong dalam teknik incremental (bertingkat). RAD menekankan
pada siklus pembangunan pendek, singkat, dan cepat. Waktu yang singkat
adalah batasan yang penting untuk model ini. Rapid application
development menggunakan metode iteratif (berulang) dalam mengembangkan
sistem di mana working model (model bekerja) sistem dikonstruksikan di
awal tahap pengembangan dengan tujuan menetapkan kebutuhan (requirement)
user dan selanjutnya disingkirkan. Working model digunakan
kadang-kadang saja sebagai basis desain dan implementasi sistem final.
Dalam model RAD (Rapid Application Development), modul fungsional
dikembangkan secara paralel sebagai prototip dan terintegrasi untuk
membuat produk yang lengkap untuk pengiriman produk yang lebih cepat.
Dikarenakan tidak ada rincian planning yang detail, maka memudahkan
untuk melakukan perubahan pada saat development berjalan.
Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :
- Component based construction ( pemrograman berbasis komponen bukan prosedural).
- Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
- Pembangkitan kode program otomatis/semi otomatis.
- Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tetapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
Jika keutuhan yang diinginkan pada tahap analisis kebutuhan telah
lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara
lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari.
Model RAD hampir sama dengan model waterfall, bedanya siklus
pengembangan yang ditempuh model ini sangat pendek dengan penerapan
teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.
DYNAMIC SYSTEM
DEVELOPMENT METHOD (DSDM)
Merupakan suatu kerangka kerja awalnya didasarkan pada Rapid
Appliation Development (RAD). DSDM mengutamakan keterlibatan pemakai seara
berkesinambungan dengan pendekatan pengembangan seara berulang
dan bertambah, tanggap terhadap perubahan, untuk membangun sistem
perangkat lunak yang memenuhi kebutuhan bisnis tepat waktu dan
tepat anggaran. DSDM merupakan salah satu metode Agile untuk pengembangan
perangkat lunak,dan bagian dari Agile Alliance.
Merupakan
Metodologi Pengembangan Software yang dikembangkan oleh Konsorsium Vendor dan
Para Expert dalam bidang pengembangan Sistem Informasi(IS) di United Kingdom
pada tahun 1990 dan pertamakali go public pada tahun 1995. Metodologi ini
merupakan pengembangan tahap lanjut dari metode Rapid Application Development
(RAD) yang sangat menerapkan metode
incremental dan iteratif. metode ini sangat ideal digunakan ketika suatu
software dituntut untuk sangat fokus dan mementingkan tampilan yang mudah dan
aspek kegunaan yang baik dari produk tersebut.
Beberapa karakteristik DSDM yaitu sebagai berikut :
- 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 yaitu 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
- Aktifitas Feasibility Study yaitu dengan requirement, lalu uji apakah sesuai gunakan proses DSDM
- Aktifitas Business Study yaitu susunam kebutuhan fungsional dan informasi, menentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
- Aktifitas Functional model iteration yaitu menghasilkan incremental prototype yang perlihatkan fungsi software ke client untuk dapatkan kebutuhan lebih jelas dan konfirmasi.
- Aktifitas Design and Build Iteration yaitu melakukan cek ulang prototype yang di bangun untuk memastikan bahwa prototype yang di bangun dengan cara tersebut memungkinkan semua fungsi benar-benar bekerja
- Aktifitas Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada perubahan.
- DSDM dapat dikombinasikan dengan XP yang menghasilkan kombinasi model proses mengikuti metode DSDM dan praktek yang sejalan dengan XP.
eXtreme Programming
XP adalah suatu metodologi software development yang bertujuan untuk
meningkatkan kualitas dan fleksibilitas software terhadap adanya
perubahan requirement.Berbeda dengan Waterfall method yang sangat terkenal itu, dimana iterasi
Waterfall sangat panjang, mulai dari menyusun requirement, desain,
coding, testing, hingga release. XP unik, karena dari kumpulan
requirement, langsung dibuat release planning, dan ini pun terdiri dari
berbagai release-release parsial. Kemudian pada masa coding, hal pertama
yang dilakukan developer adalah menulis test function terlebih dulu,
bukan function dari software tersebut.
SCRUM
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun
1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle.
Pada dasarnya Scrum merupakan salah satu komponen dari metodologi
pengembangan. Scrum menguraikan proses untuk
mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan,
memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau
wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis
iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa
lama akan pembangunan.
Berikut penjelasannya:
- Product Owner
Pengertian produk adalah tujuan dari proyek. Product Owner memastikan bahwa proyek berjalan sesuai yang diharapkan. Product Owner merupakan penjembatan antara client dengan team development. Product Owner akan menuliskan spesifikasi-spesifikasi sesuai cara pandang client, di lain pihak harus punya empati terhadap anggota team. - Team Member
Dilihat dari namanya jelas yaitu anggota-anggota team. - Scrum Master
Scrum Master akan mencegah hal-hal yang mengalihkan focus team. Scrum master akan membuat suasana kondusif supaya team dapat bekerja sama dalam mencapai goal.
Sumber :
https://id.wikipedia.org/wiki/Agile_Development_Methods
https://ilmukuilmumu.wordpress.com/2009/12/25/agile-sofware-development/
https://id.wikipedia.org/wiki/Rapid_application_development
http://www.sistem-informasi.xyz/2017/05/pengertian-rad-rapid-application.html
http://www.materi-it.com/2014/11/mengenal-dynamic-systems-development.html
http://sisfoku.blogspot.co.id/2014/03/bagaimana-dynamic-system-development.html
http://yoga-pratama-s.wixsite.com/yps-crypt/single-post/2015/02/27/DYNAMIC-SYSTEM-DEVELOPMENT-METHOD-DSDM
http://www.proweb.co.id/articles/erp/pengertian_scrum.html
http://dhiekalantana.blog.unas.ac.id/2012/10/perbandingan-up-xp-scrum-agile/
http://rpl.if.its.ac.id/extreme-programming/
https://pradinipus.wordpress.com/2012/01/19/apa-itu-extreme-programming/
https://id.wikipedia.org/wiki/Agile_Development_Methods
https://ilmukuilmumu.wordpress.com/2009/12/25/agile-sofware-development/
https://id.wikipedia.org/wiki/Rapid_application_development
http://www.sistem-informasi.xyz/2017/05/pengertian-rad-rapid-application.html
http://www.materi-it.com/2014/11/mengenal-dynamic-systems-development.html
http://sisfoku.blogspot.co.id/2014/03/bagaimana-dynamic-system-development.html
http://yoga-pratama-s.wixsite.com/yps-crypt/single-post/2015/02/27/DYNAMIC-SYSTEM-DEVELOPMENT-METHOD-DSDM
http://www.proweb.co.id/articles/erp/pengertian_scrum.html
http://dhiekalantana.blog.unas.ac.id/2012/10/perbandingan-up-xp-scrum-agile/
http://rpl.if.its.ac.id/extreme-programming/
https://pradinipus.wordpress.com/2012/01/19/apa-itu-extreme-programming/