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