Metodologi pengembangan perangkat lunak
Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi pengembangan perangkat lunak dan Proses pengembangan perangkat lunak yang akan digunakan. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, sedangkan Proses pengembangan perangkat lunak adalah model-model dan metodologi yang digunakan untuk mengembangkan suatu perangkat lunak. Ada beberapa model Metodologi pengembangan perangkat lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.
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
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
Biasa disingkat sebagai XP) adalah sebuah pendekatan atau model pengembangan
perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam
proses pengembangan tersebut sehingga menjadi lebih adaptif dan
fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh
area pengembangan perangkat lunak.XP mengambil pendekatan ‘ekstrim’ dalam iterative development.
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.
Scrum merupakan suatu kerangka kerja. Jadi, bukannya
menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus
dilakukan pada proyek seperti diserahkan kepada tim
pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim
akan tahu bagaimana cara terbaik untuk memecahkan masalah yang mereka
disajikan. Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan the Scrum team.
Berikut penjelasannya:
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/