Perbedaan Dari Beberapa Model Pengembangan Software
Agile Software Development
Agile Modeling merupakan filosofi tentang bagaimana membangun model dengan beberapa diantaranya dilakukan dengan format yang terperinci sedangkan model lain beberapa ada yang dilakukan secara samar dan minimalis. Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessman, serta antara developer dan managernya. Ciri lain dari Agile Software Development adalah klien menjadi bagian dari tim pembangun software.Kelebihan dari Agile Software Development:
- Meningkatkan kepuasan kepada klien
- Pembangunan sistem dibuat lebih cepat
- Mengurangi resiko kegagalan implementasi software dari segi non-teknis
- Jika pada saat pembangunan system terjadi kegagalan,kerugian dari segi materi relative kecil.
Kelemahan dari Agile Software Development:
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
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.
Pemaparan konsep yang lebih spesifik lagi dijelaskan oleh Pressman
(2005) dalam bukunya, “Software Engineering: A Practition’s Approach”.
Ia mengatakan bahwa RAD adalah proses model perangkat lunak inkremental
yang menekankan siklus pengembangan yang singkat. Model RAD adalah
sebuah adaptasi “kecepatan tinggi” dari model waterfall, di mana
perkembangan pesat dicapai dengan menggunakan pendekatan konstruksi
berbasis komponen. Jika tiap-tiap kebutuhan dan batasan ruang lingkup
projek telah diketahui dengan baik, proses RAD memungkinkan tim
pengembang untuk menciptakan sebuah “sistem yang berfungsi penuh” dalam
jangka waktu yang sangat singkat. Dari penjelasan Pressman (2012) ini,
satu perhatian khusus mengenai metodologi RAD dapat diketahui, yakni
implementasi metode RAD akan berjalan maksimal jika pengembang aplikasi
telah merumuskan kebutuhan dan ruang lingkup pengembangan aplikasi
dengan baik.
Sedangkan menurut Kendall (2010), RAD adalah suatu pendekatan
berorientasi objek terhadap pengembangan sistem yang mencakup suatu
metode pengembangan serta perangkat-perangkat lunak. RAD bertujuan
mempersingkat waktu yang biasanya diperlukan dalam siklus hidup
pengembangan sistem tradisional antara perancangan dan penerapan suatu
sistem informasi. Pada akhirnya, RAD sama-sama berusaha memenuhi
syarat-syarat bisnis yang berubah secara cepat.
Fase dan Tahapan Pengembangan Aplikasi
Menurut Kendall (2010), terdapat tiga fase dalam RAD yang melibatkan
penganalisis dan pengguna dalam tahap penilaian, perancangan, dan
penerapan. Adapun ketiga fase tersebut adalah requirements planning
(perencanaan syarat-syarat), RAD design workshop (workshop desain RAD),
dan implementation (implementasi). Sesuai dengan metodologi RAD menurut
Kendall (2010), berikut ini adalah tahap-tahap pengembangan aplikasi
dari tiap-tiap fase pengembangan aplikasi.
1) Requirements Planning (Perencanaan Syarat-Syarat)
Dalam fase ini, pengguna dan penganalisis bertemu untuk
mengidentifikasikan tujuan-tujuan aplikasi atau sistem serta untuk
megidentifikasikan syarat-syarat informasi yang ditimbulkan dari
tujuan-tujuan tersebut. Orientasi dalam fase ini adalah menyelesaikan
masalah-masalah perusahaan. Meskipun teknologi informasi dan sistem bisa
mengarahkan sebagian dari sistem yang diajukan, fokusnya akan selalu
tetap pada upaya pencapaian tujuan-tujuan perusahaan (Kendall, 2010).
2) RAD Design Workshop (Workshop Desain RAD)
Fase ini adalah fase untuk merancang dan memperbaiki yang bisa
digambarkan sebagai workshop. Penganalisis dan dan pemrogram dapat
bekerja membangun dan menunjukkan representasi visual desain dan pola
kerja kepada pengguna. Workshop desain ini dapat dilakukan selama
beberapa hari tergantung dari ukuran aplikasi yang akan dikembangkan.
Selama workshop desain RAD, pengguna merespon prototipe yang ada dan
penganalisis memperbaiki modul-modul yang dirancang berdasarkan respon
pengguna. Apabila sorang pengembangnya merupakan pengembang atau
pengguna yang berpengalaman, Kendall menilai bahwa usaha kreatif ini
dapat mendorong pengembangan sampai pada tingkat terakselerasi (Kendall,
2010).
3) Implementation (Implementasi)
Pada fase implementasi ini, penganalisis bekerja dengan para pengguna
secara intens selama workshop dan merancang aspek-aspek bisnis dan
nonteknis perusahaan. Segera setelah aspek-aspek ini disetujui dan
sistem-sistem dibangun dan disaring, sistem-sistem baru atau bagian dari
sistem diujicoba dan kemudian diperkenalkan kepada organisasi (Kendall,
2010).
Kelebihan dan Kekurangan RAD
Metode pengembangan sistem RAD relatif lebih sesuai dengan rencana
pengembangan aplikasi yang tidak memiliki ruang lingkup yang besar dan
akan dikembangkan oleh tim yang kecil. Namun, RAD pun memiliki kelebihan
dan kekurangannya sebagai sebuah metodoligi pengembangan aplikasi.
Berikut ini adalah kelebihan metodologi RAD menurut Marakas (2006):
- Penghematan waktu dalam keseluruhan fase projek dapat dicapai.
- RAD mengurangi seluruh kebutuhan yang berkaitan dengan biaya projek dan sumberdaya manusia.
- RAD sangat membantu pengembangan aplikasi yang berfokus pada waktu penyelesaian projek.
- Perubahan desain sistem dapat lebih berpengaruh dengan cepat dibandingkan dengan pendekatan SDLC tradisional.
- Sudut pandang user disajikan dalam sistem akhir baik melalui fungsi-fungsi sistem atau antarmuka pengguna.
- RAD menciptakan rasa kepemilikan yang kuat di antara seluruh pemangku kebijakan projek.
Sedangkan, mengacu pada pendapat Kendall (2010), maka dapat diketahui
bahwa kekurangan penerapan metode RAD adalah sebagai berikut:
- Dengan metode RAD, penganalisis berusaha mepercepat projek dengan terburu-buru.
- Kelemahan yang berkaitan dengan waktu dan perhatian terhadap detail. Aplikasi dapat diselesaikan secara lebih cepat, tetapi tidak mampu mengarahkan penekanan terhadap permasalahan-permasalahan perusahaan yang seharusnya diarahkan.
- RAD menyulitkan programmer yang tidak berpengalaman menggunakan prangkat ini di mana programmer dan analyst dituntut untuk menguasai kemampuan-kemampuan baru sementara pada saat yang sama mereka harus bekerja mengembangkan sistem.
Dynamic System Development Method
Dynamic System Development Method (DSDM) adalah suatu kerangka dalam
pengembangan suatu project, terutama digunakan untuk metode pengembangan
perangkat lunak.
DSDM merupakan iteratif dan incremental pendekatan yang mencakup
prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna atau
pelanggan secara terus-menerus, intinya DSDM suatu metode yang mendekati
Incremental dan Agile Alliance.
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)
XP merupakan suatu model yang tergolong dalam pendekatan agile yang
diusulkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah
sebagai berikut: “Extreme Programming (XP) is a lightweight, efficient,
low-risk, flexible, predictable, scientific, and fun way to develop
software”. Model ini cenderung menggunakan pendekatan Object-Oriented
serta 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.
XP tepat digunakan saat kondisi:
- Keperluan berubah dengan cepat
- Resiko tinggi dan ada proyek dengan tantangan yang baru
- Tim programmer sedikit, yaitu 2-10 orang
- Mampu mengotomatiskan tes
- Ada campur tangan klien secara langsung
Kelemahan XP:
- Cerita-cerita yang menunjukkan requirements 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
Scrum bermula ketika anak buah Jeff Sutherland yang bekerja di Easel
Corporation membaca tulisan dari Professor Takeuchi Tanaka yang dimuat
di Harvard Business Review mengenai manajemen proyek pada tahun 1993.
Tulisan tersebut memuat bagaimana Professor Takeuchi Tanaka kagum dengan
tim olahraga Rugby yang bekerja bersama menyingkirkan semua hambatan
yang ada di depannya. Professor Takeuchi Tanaka lalu membawa konsep ini
ke manajemen proyek dan menamakan metode kerja ini Scrum.
Scrum merupakan suatu kerangka kerja yang berupa deskripsi rinci tentang
bagaimana segala sesuatu yang harus dilakukan pada proyek. Hal ini
dilakukan dikarenakan tim akan tahu bagaimana cara terbaik untuk
memecahkan masalah yang disajikan untuk mereka. Ada 3 elemen organisasi
utama pada scrum yaitu product owner, Scrum master, dan Scrum team.
Scrum Master dapat dianggap sebagai pelatih / guru bagi tim yang
mengajarkan cara kerja lebih kolaboratif dan menyenangkan dalam
mengembangkan software. Product Owner mewakili bisnis, pelanggan atau
pengguna dan memandu tim ke arah pengembangan produk yang tepat.
Sedangkan Scrum Team merupakan grup pengembang kecil biasanya terdiri
dari 5-9 orang. Untuk project yang sangat besar, biasanya pekerjaan akan
dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan
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 lain
- Proses 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.
Dikarenakan, model yang digunakan akan berpengaruh pada kinerja dari tim
dan juga dapat menunjang keberhasilan suatu project pembuatan perangkat
lunak.
Tidak ada komentar:
Posting Komentar