You are on page 1of 11

INTRODUCTION

Agile development erat kaitannya dengan metodologi dan proses pengembangan


perangkat lunak dimana mengutamakan keterlibatan pengguna. Kolaborasi yang
baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika
menggunakan agile development. Klien menjadi bagian dari tim pengembangan
perangkat lunak karena pada dasarnya fungsi-fungsi dari perangkat lunak yang
dikembangkan harus terus menerus dibicaraka, diimprovisasi dan disesuaikan
dengan keinginan klien. Agile memiliki pengertian bersifat tangkas, cepat, ringan,
bebas bergerak, dalam pengembangan perangkat lunak dengan menggunakan
metode agile development dibutuhkan ketangkasan, inovasi, fleksibilitas dan
tanggung jawab oleh tim pengembang dan klien dengan tujuan tim dapat bekerja
seimbang, perangkat lunak yang dihasilkan memiliki kualitas yang baik, serta
sesuai dengan keinginan klien. Praktisi pengembang perangkat lunak pada
umumnya sering menggunakan agile development dalam pengembangan
perangkat lunaknya.

Keyword : Agile development, Metodologi pengembangan software, Software


Engineering

PENDAHULUAN
1.1 Latar belakang
Sejarah Perkembangan Komputer hingga saat ini erat kaitannya dengan
kemampuan dan kemajuan manusia yang selalu menggunakan akal pikiran
dan logika dalam kehidupannya sejak zaman dahulu. Pengolahan data dan
informasi telah dilakukan manusia sejak dahulu serta berpikir untuk
menciptakan inovasi serta mengembangkan aplikasi dan pengolahan data yang
lebih baik.
Kaitannya dengan pengembangan/perkembangan perangkat lunak saat ini
terdapat berbagai metode yang digunakan baik dilakukan secara individu
maupun team work. Terdapat hubungan erat antara kualitas, biaya, dan waktu
dalam pengembangan perangkat lunak. Secara garis besar terdapat enam
langkah yang digunakan dalam metodologi pengembangan perangkat lunak
diantaranya perencanaan, implementasi, testing, dokumentasi, deployment,
dan maintenance.
Agile Development Methods adalah kumpulan metodologi pengembangan
perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau
pengembangan sistem jangka pendek dimana memerlukan adaptasi yang cepat
dari pengembang terhadap perubahan dalam bentuk apapun, dalam
penggunaannya agile development memerlukan inovasi dan tanggungjawab
yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak
yang dihasilkan bagus dan seimbang.
Lebih lanjut tentang pengertian dan hal-hal yang berhubungan dengan
agile development akan di bahas pada bab selanjutnya

1.2 Tujuan
Tujuan dari makalah ini adalah untuk memberikan penjelasan tentang
pengertian dan hal-hal yang berkaiyan dengan agile development sebagai
metodologi pengembang perangkat lunak

PEMBAHASAN
2.1 Pengertian Agile Development
Agile development erat kaitannya dengan metodologi dan proses
pengembangan perangkat lunak, 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.
Agility for a software development organization, means the ability to
adapt and react quick and effectively and appropriately to changes in its
environment and to demands imposed by this environment (Abrahamsson, P.,
Salo, O., Ronkainen, J., & Warsta, J., 2002). Agile Development Methods
secara singkat dapat diartikan sebagai 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.
Agility dalam pengembangan perangkat lunak diartikan sebagai
kemampuan untuk beradaptasi dan bereaksi secara cepat dan efektif terhadap
perubahan serta meminimalisir dampak terhadap perangkat lunak yang sedang
dibangun. Kolaborasi antara tim pengembang dengan klien menjadi hal yang
penting, klien dianggap sebagai anggota tim. Fleksibilitas di tawarkan kepada
klien kaitannya dengan kesadaran dan pengetahuan pelanggan tentang apa
yang dia inginkan.
Agile development juga dapat didefinisakan dalam empat nilai atau sring
disebut sebagai agile manifesto, diantaranya :
1. Interaksi dan personal, dibutuhkan interaksi yang baik antara anggota atau
personal pengembang karena tanpa adanya hal tersebut pengembangan
perangkat lunak tidak akan berjalan dengan baik
2. Perangkat lunak yang berjalan, hal ini berfungsi pada saat melakukan
meeting (demonstrasi) kepada klien. Perangkat lunak yang masih dalam
proses akan lebih berguna dari sekedar dokumentasi
3. Kolaborasi dengan klien, ini merupakan ciri dari agile development
dimana mengutamakan keterlibatan dan kolaborasi dari klien
4. Respon terhadap perubahan, sesuai dengan namanya agile development
berfokus terhadap kecepatan respon tim ketika klien menginginkan
perubahan saat proses pembuatan perangkat lunak
Gambar 1 : Diagram Agile Development Method

2.2 Model Proses atau metode-metode pada Agile Development


Terdapat 20 model proses atau metode pada agile development, dalam
makalah ini hanya akan dibahas beberapa metode yang diulas dalam jurnal
internasional, diantaranya :
a. Extreme Programming
Ektreme programming merupakan metode pada agile development yang
sering digunakan. XP (Extreme progreamming) didasarkan pada :
1. Communication
2. Simplicity
3. Feedback
4. Courage
dalam extreme programin pelanggan akan memberikan kebutuhan mereka
dalam bentuk cerita yang pada dasarnya bersifat non-teknis. Cerita dari
pelanggan selanjutnya akan diubah menjadi tugas, dalam pembangunan
perangkat lunak akan berlangsung iterasi kecil dimana setiap iterasi
sekelompok tugas akan dibahas. Pelanggan akan terlibat untuk
memperoleh feed back yang cepat. Pengujian akan di lakukan dalam
bentuk unit test dan accetance test.
b. Adaptive Software Development (ASD)
Teknik atau metode ini biasanya digunakan untuk membangun software
dan sistem yang kompleks. Filosofi yang mendasari adaptive software
development adalah kolaborasi manusia dan tim yang mengatur diri
sendiri. Sistem kerja adaptive software development adalah collaboration
and learning.
Collaboration : bermotivasi tinggi untuk bekerja sama, saling melengkapi,
rela membantu, kerja keras, terampil di bidangnya, dan
mengkomunikasikan masalah untuk menyelesikan masalah secara efektif.
Learning : tim developer sering merasa sudah tahu semua hal tentang
proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat
mereka belajar lebih tentang proyek melalui tiga cara:
1. Fokus grup, klien dan pengguna memberi masukan terhadap perangkat
lunak.
2. Formal Technique Reviews, tim ASD lengkap melakukan review.
3. Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses.
c. Scrum
Scrum merupakan salah satu development method yang paling populer.
Kegiatan pada metode ini diantaranya :
1. Sprint Planning
2. Sprint Review
3. Scrum Meeting
Scrum Master memfasilitasi harian Pertemuan Sprint (Rapat perencanaan
pembuatan perangkat lunak dilakukan 2 - 4 minggu sekali) dengan pemilik
produk dan tim, di mana di setiap individu akan menjelaskan status tugas
mereka saat itu dan apa yang akan mereka lakukan hari berikutnya. Sebuah
Sprint review biasanya membentang sekitar dua sampai empat minggu,
dimana setiap tim harus memiliki perangkat lunak bekerja.
d. Dynamic Systems Development Method (DSDM)
Metode DSDM merupakan perpanjangan dari Rapid Application
Development. DSDM menekankan pada keterlibatan terus pelanggan.
DSDM adalah metode yang lebih cocok untuk proyek-proyek yang
memiliki keterbatasan waktu dan anggaran.
Siklus hidup DSDM Project memiliki 4 tahap
1. Studi
2. Fungsional Model Iterasi
3. Desain dan Build
4. Pelaksanaan

DSDM memberikan pendekatan berulang tambahan dan juga memberikan


beberapa teknik inti yang disebut time boxing, Prototyping, Pengujian,
Workshop dll. Tujuan utama dari metode DSDM adalah untuk menjaga
Proyek serta mengendalikan waktu dan anggaran.
e. Crystal Methods
Crystal Method dimulai sebelum agile Manifesto dan merupakan salah
satu pendiri metodologi tangkas. Metode ini memiliki 3 Prioritas dan 3
Properti, diantaranya :
1. prioritas: Keselamatan, Efisiensi, Habitability
2. properti: Frequent Delivery, Peningkatan Reflektif, Komunikasi
tertutup
crystal method adalah keluarga dari Adaptive, Ultra-light dan Stretch-to-
fit metodologi dan lebih difokuskan pada Orang daripada proses atau
arsitektur
f. Feature Driven Development (FDD)
Feature driven development merupakan sebuah model pengembangan
perangkat lunak yang berdasarkan pada fitur yang akan dibuat.
Keuntungan dari metode feature driven development :
1. User dapat menggambarkan dengan mudah bentuk sistem yang akan
dibuat.
2. Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai
hirarki yang ada.
3. Desain dan kode lebih mudah diperiksa secara efektif.
4. Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh
fiturnya

2.3 Prinsip Agile Development


Agile development menetapkan dua belas prinsip untuk memandu/mengontrol
metode-metode pada agile development yang berbeda-beda. Agar suatu tim
berhasil dalam menerapkan agile development methods, maka tim tersebut
harus mengikuti dua belas prinsip tersebut. Keduabelas prinsip itu
diantaranya:
1. Prioritas utama proses agile adalah memberikan kepuasan terhadap
pelanggan dengan penyampaian hasil perangkat lunak yang bernilai secara
cepat dan berkesinambungan
2. Menyambut perubahan kebutuhan, walaupun terlambat dalam
pengembangan perangkat lunak. Proses Agile memanfaatkan perubahan
untuk keuntungan kompetitif klien.
3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka
waktu beberapa minggu sampai beberapa bulan, dengan preferensi kepada
jangka waktu yang lebih pendek.
4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap
hari sepanjang proyek.
5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan
mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai
mereka untuk menyelesaikan pekerjaan dengan baik.
6. Metode yang paling efisien dan efektif untuk menyampaikan informasi
dari dan dalam tim pengembang perangkat lunak adalah dengan
komunikasi secara langsung.
7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
8. Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-
sponsor, pengembang-pengembang, dan pengguna-pengguna dapat
mempertahankan kecepatan tetap secara berkelanjutan.
9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan
rancangan yang baik meningkatkan Agility.
10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal
yang amat penting.
11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari
tim yang yang dapat mengorganisir diri sendiri.
12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk
menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan
kebiasaan bekerja mereka.

Prinsip-prinsip tersebut juga merupakan bentuk usaha untuk menyiasati tiga


masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak,
diantaranya :
1. Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan
berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya
proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan
seberapa jauh desain yang diperlukan sebelum pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti
yang diinginkan.

2.4 Tujuan Agile Development


a. High-value & working App system, dengan menggunakan agile
development methods akan menghasilkan perangkat lunak yang
mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan
perangkat lunak bisa berjalan dengan baik.
b. Collaboration, dengan menggunakan agile, tim pengembang diharuskan
sering bertemu untuk membahas perkembangan proyek dan feedback dari
klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga
tim bisa berkolaborasi dengan maksimal.
c. Iterative, incremental, evolutionary, agile adalah metode pengembangan
perangkat lunak yang iteratif, selalu mengalami perubahan, dan
evolusioner.
d. Cost control & value-driven development, salah satu tujuan dari agile yaitu
pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna,
tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna
sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
e. High-quality production, walaupun biaya pembuatan perangkat lunak bisa
ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari
perangkat lunak yang dibuat harus tetap dijaga.
f. Flexible & risk management
g. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan
dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan
agile dan SDM lainnya. Dengan agile, developer dapat memanajemen
dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan
developer perangkat lunak dengan klien. Sehingga terciptalah tim yang
solid.
2.5 Keuntungan dan Permasalahan Dalam Agile Development
a. Keuntungan menggunakan metode agile development
1. Meningkatkan komunikasi dan koordinasi antar anggota tim
2. Pengembang membuat demo yang dapat rilis setiap beberapa minggu
bukannya setiap beberapa bulan atau tahun (quick release).
3. Lebih dinamis serta mendukung real-time tracking
4. Reasonable Process
5. Kepuasan klien dan kualitas perangkat lunak terjamin
6. Fleksibilitas desain
b. Kekurangan atau permasalahan pada agile development
1. Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
2. Tidak cocok dalam skala tim yang besar.
3. Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
4. Kekhawatiran saat berkoordinasi dengan tim lain
PENUTUP
3.1 Simpulan
Agile Development Methods adalah 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.
Kolaborasi antara tim pengembang dengan klien menjadi hal yang penting
dalam agile development, klien dianggap sebagai anggota tim. Fleksibilitas di
tawarkan kepada klien kaitannya dengan kesadaran dan pengetahuan pelanggan
tentang apa yang dia inginkan.
Terdapat dua belas prinsip pada agile development yang menjadi suatu dasar
bagi tim agar sukses menerapkan agile development methods dalam
pengembangan atau pembuatan perangkat lunak. Komunikasi dan koordinasi
antar tim dapat ditingkatkan dengan menggunakan metode ini, selain itu kepuasan
klien dan kualitas perangkat lunak yang dihasilkan dapat terjaga.
Terdapat dua puluh metode yang termasuk dalam agile metodologi. Metode-
metode tersebut sering digunakan oleh praktisi pengembang perangkat lunak
dalam pembuatan atau dalam pengembangan.
Setiap model dan metodologi memiliki kemampuan (keuntungan) dan
kekurangannya sendiri-sendiri. Menggunakan metode pengembangan perangkat
lunak merupakan hal yang penting serta di pengaruhi oleh beberapa faktor akan
tetapi tidak terbatas pada budaya dan organisasi.
DAFTAR PUSTAKA

https://en.wikipedia.org/wiki/Agile_software_development
Subhas misra, Vinod kumar and Uma kumar, Kamel fantazy, Mahmud akh-
ter.2001.Agile software development practices: evolution, principles, and
criticisms
H. Frank Cervone. (2011). Understanding agile project management methods
using Scrum. OCLC Systems & Services: International digital library
perspectives, Vol. 27 Iss 1 pp. 18-22
Kiran Jammalamadaka, V Rama Krishna.2013. Agile Software Development And
Challenges. IJRET : International Journal of Research in Engineering and
Technology
Subhas C. Misra dan Virender Singh.2013.Conceptualizing open agile software
development life cycle (OASDLC) model. IJQRM : International Journal of
Quality & Reliability Management.
Gaurav Kumar, Pradeep Kumar Bhatia.2012. Impact of Agile Methodology on
Software Development Process. IJTEE : International Journal of Computer
Technology and Electronics Engineering. Volume 2, issue 4
Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile Software
Development Methods: Review and Analysis. VTT Publications
https://www.academia.edu/23009791/Agile_software_development

You might also like