Specialized Process Model, Agile Method dan Scrum
Specialized
Process Model
Specialized Prosses Model adalah
penggunaan satu atau lebih model preskriptif untuk meningkatkan efisiensi dalam pengembangan perangkat lunak. Ada beberapa jenis Specialized Prosses Model yaitu Component-Based Development (Pengembangan Berbasis
Komponen), Formal Methods Model (Model Metode Formal), Aspect-Oriented Software Development (Pengembangan Perangkat
Lunak Berorientasi Aspek) dan Unified Process (Proses Terpadu).
Salah satu bagian dari Specialized Process Model adalah Component-Based Development yang merupakan model pengembangan perangkat lunak yang menggunakan gagasan untuk menggunakan kembali perangkat lunak yang dikembangkan sebelumnya dimana Komponen yang sudah ada digunakan kembali[1]. Model ini digunakan untuk mengembangkan sistem besar dengan menghemat biaya yang dikeluarkan untuk proyek dan cara yang efektif untuk meningkatkan produktivitas pengembangan serta kualitas komponen perangkat lunak yang dikembangkan oleh pengembang.
Kelebihan:
- Dapat menghemat biaya yang
dikeluarkan, karena penggunaan komponen proyek sebelumnya dapat digunakan
kembali.
- Tanggapan diawal kemungkinan
dapat meningkatkan penghasilan produk yang memuaskan klien
- Tim sangat produktif, dalam
artian sesuatu yang dihasilkan sangat menguntungkan atau bermanfaat.
Kekurangan:
- Membutuhkan
waktu dan upaya untuk mengimplementasikan komponen karena harus memilah mana komponen yang dapat digunakan
kembali dalam
sistem persyaratan proyek yang baru yang diperkenalkan.
- Sensitivitas dan
usabilitas dimana kepekaan saat kemudahan operasional komponen
mungkin menjadi masalah bagi sistem baru.
- Biaya
pemeliharaan komponen yang dapat digunakan kembali, tentunya komponen yang
dapat digunakan kembali setelah melalui persyaratan yang ditentukan proyek
baru harus diberi pemeliharaan agar tidak terjadi masalah.
Agile
Method
Agile software development atau
disebut “agile” adalah sekelompok dari metode-metode pengembangan perangkat
lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan
sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang yang
mengerjakannya terhadap perubahan dalam bentuk apapun dengan berbasis
Iterative dan Incremental Model. Agile memungkinkan mengembangkan perangkat
lunak yang memiliki kebutuhan yang paling mudah berubah dengan cepat[2].
Langkah-langkah Agile Method:
- Perencanaan, pengembang dan
klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan
dibuat.
- Implementasi, programmer
melakukan pengkodean perangkat lunak setelah pembuatan rencana dengan
klien.
- Tes perangkat lunak, perangkat
lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar masalah
seperti bug yang ditemukan bisa segera diperbaiki oleh pengembang dan
kualitas perangkat lunak terjaga dengan baik.
- Dokumentasi, bertujuan untuk
mempermudah proses pemeliharaan kedepannya.
- Deployment, dilakukan oleh
penjamin kualitas untuk menguji kualitas system yang telah dibuat. Setelah
sistem memenuhi syarat maka perangkat lunak siap dideployment.
- Pemeliharaan, masalah pasti
akan dating karena tidak ada perangkat lunak yang 100% bebas
dari masalah seperti bug, oleh karena itu sangatlah penting agar
perangkat lunak dipelihara secara berkala oleh pengembang.
Kelebihan:
- Menghemat biaya proyek.
- Produktivitas tim bertambah
karena kerja sama yang sangat baik, personel lebih penting dibandingkan
alat.
- Rilis lebih cepat dan berkala,
fungsi dirilis setiap akhir iterasi.
- Pengujian dilakukan setiap
saat.
- Proses dengan Iterative dan
Incremental.
Kekurangan:
- Interaksi
dengan klien yang kadang terlalu berlebihan, klien yang terlalu
agresif membuat pengembang merasa tertekan.
- Sulit diimplementasikan dalam
proyek yang berskala besar.
- Membutuhkan manajemen tim yang
sangat terlatih. karena perencanaan, pengorganisasian, pengarahan,
pengawasan harus diatur dengan baik
SCRUM
Scrum bukanlah sebuah metodologi,
melainkan sebuah framework atau kerangka kerja yang digunakan untuk
mengembangkan produk kompleks. Sedangkan kerangka kerja dengan metodologi
merupakan kerangka kerja lebih kepada batasan-batasan dan aturan-aturan
tertentu yang perlu dipenuhi untuk mencapai sesuatu, sedangkan cara, proses,
dan tekniknya dapat bebas berkreasi. Sedangkan metodologi menjelaskan cara,
proses, dan teknik yang perlu dilakukan untuk mencapai sesuatu. Karena itu
Scrum hanyalah sebuah kerangka kerja, maka di dalamnya sangat mungkin berisi
kombinasi antara berbagai metodologi, selama tidak mengganggu filosofi
Scrum[3]. Scrum adalah kerangka kerja yang sangat preskriptif dengan peran
dan penerapan tertentu dan 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 yang baik.
Keuntungan:
- Transparansi dan visibility
proyek supaya tidak adanya kesalahpahaman dan kebingungan. Seluruh
isu dapat diidentifikasi secara bersamaan. Dimana tim menyelesaikan
sebelum mengakhiri beban tanggung jawabnya.
- Meningkatkan pertanggungjawaban
tim, semua bekerja sama, saling membantu, untuk meningkatkan
kolaborasi dan memberdayakan setiap anggota tim untuk mandiri dalam artian
melakukan memikul tugas dengan lapang dada didasari gotong royong.
- Mudah untuk mengakomodasi
perubahan: jika tim menemukan suatu tanggapan pengguna baru
selama satu sprint, maka sebagai rencana sprint berikutnya yang
harus dilakukan memperbaikan celah dari tanggapan tersebut (backlog).
- Menghemat biaya yang
dikeluarkan, dimana biaya dari proses dan manajemen sangat minim
sehingga mengarah ke hasil lebih cepat dan biaya lebih murah.
Kelemahan:
- Risiko scope creep yang
berarti membuang-buang uang, mengurangi kepuasan, dan menyebabkan nilai
proyek (project values) yang diharapkan tidak terpenuhi. Itu terjadi karena
kurangnya batas waktu. Tanpa batas waktu tersebut,
stakeholder mungkin akan tergoda untuk terus meminta fungsi tambahan.
- Membutuhkan pengalaman tingkat
tinggi dan komitmen dari suatu tim proyek. Dengan peran dan tanggung
jawab yang ditetapkan, tim perlu menjalin rasa keakraban satu sama lain.
Karena dalam Tim Scrum tidak ada peran didefinisikan (setiap orang
melakukan sesuatu), yang membagi tugas anggota tim secara teknisnya.
- Buruknya definisi tugas
menyebabkan ketidakakuratan. Apabila tugas tidak didefinisikan dengan
baik, perkiraan biaya proyek dan waktu tidak akan akurat. Dalam kasus
seperti ini, tugas dapat tersebar di beberapa sprint.
Sumber:
- [1]Anonim,
"4", Fer.unizg.hr, 2005. [Online]. Available:
https://www.fer.unizg.hr/_download/repository/Component-based_Development_Process_and_Component_Lifecycle[1].pdf.
[Accessed: 16- Sep- 2019].
- [2]J. Alexandra,
"Agile Development Methods", School of Information
Systems, 2017. [Online]. Available:
https://sis.binus.ac.id/2017/05/08/agile-development-methods/. [Accessed:
16- Sep- 2019].
- [3]R. Rahmadzani,
"Scrum Sebagai Management Software Development Era
Modern", Rifqifai | Rifqi Fauzi Rahmadzani, 2019.
[Online]. Available:
https://rifqifai.com/scrum-sebagai-management-software-development-era-modern/.
[Accessed: 16- Sep- 2019].
Komentar
Posting Komentar