Anda di halaman 1dari 12

MAKALAH

AGILE SOFTWARE DEVELOPMENT

Diajukan untuk memenuhi salah satu tugas Mata Kuliah Dasar Pengembangan
Sistem Informasi

Dosen Pengampu:
Satrio Agung Wicaksono, S.Kom, M.Kom

Disusun oleh:

Aldriyan Dicky Prayoga

145150400111100

FAKULTAS ILMU KOMPUTER


UNIVERSITAS BRAWIJAYA MALANG
2016

BAB I
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.

1.2 Rumusan Masalah


1. Apa pengertian dari Agile Software Development?
2. Apa saja prinsip-prinsip dalam Agile Software Development?
3. Apa saja Model Proses atau metode-metode pada Agile Software
Development?
4. Apa tujuan Agile Software Development?
5. Apa kelebihan dan kekurangan Agile Software Development?

1.3 Tujuan
Tujuan dari makalah ini adalah untuk memberikan penjelasan tentang pengertian
dan hal-hal yang berkaitan (prinsip, model-model, dsb) dengan Agile Software
Development sebagai metodologi pengembang perangkat lunak.

BAB II
PEMBAHASAN

2.1 Pengertian
Agile Software Development adalah kumpulan pendekatan yang berpusat
pada pengguna yang inovatif untuk pengembangan suatu sistem. Agile mencoba
untuk menentukan perencanaan sistem secara keseluruhan dengan cepat,
mengembangkan dan merilis software dengan cepat, dan kemudian terus menerus
merevisi software untuk menambahkan fitur tambahan. Agile diciptakan karena
adanya beberapa kerugian dari pendekatan pengembangan perangkat lunak yang
sudah ada sebelumnya (yang mana terlalu banyak dokumentasi, semua
persyaratan harus diketahui pada awal project, dll).
Agile Software Development bukanlah satu set alat atau metodologi tunggal,
melainkan filosofi orang-orang yang telah menyadari bahwa dalam
pengembangan perangkat lunak itu cukup sulit untuk memprediksi:

Jumlah perubahan dan perubahan prioritas dalam persyaratan perangkat


lunak
Berapa banyak desain yang dibutuhkan sebelum implementasi yang
digunakan untuk membuktikannya
Waktu untuk analisis, desain, implementasi dan pengujian

Karakteristik utama dari Agile Software Development:

Deliver frequently
More iterations
Less defects
Test frequently
Collaborative approach
Maximum ROI

Siklus Agile Software Development

2.2 Prinsip-prinsip
Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim
tersebut harus mengikuti dua belas prinsip yang ditetapkan oleh Agile
Alliance yaitu:
1. Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan
perangkat lunak yang bernilai dengan cepat dan rutin.
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.
Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses
menerapkan agile
development
methods.
Dengan
prinsip-prinsip
tersebut agile berusaha untuk menyiasati tiga masalah yang biasanya dihadapi
saat proses pembuatan perangkat lunak, yaitu:
Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah.
Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa
jauh desain yang diperlukan sebelum pembangunan.
Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti
yang diinginkan.

2.3 Model Proses


Di makalaj makalah ini dibahas beberapa metode, diantaranya:
a. Extreme Programming
Extreme 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
feedback 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-tofit 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 FDD:
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.
Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh
fiturnya.

2.4 Tujuan Agile Software 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.6 Kelebihan dan Kekurangan
Kelebihan dari Agile Software Development adalah:
Meningkatkan kepuasan kepada klien.
Dapat melakukan review pelanggan mengenai software yang dibuat lebih
awal.
Pembangunan system dibuat lebih cepat.
Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi
materi relatif kecil.

Sedangkan kekurangan dari Agile Software Development antara lain:


Developer harus selalu siap dengan perubahan karena perubahan akan
selalu diterima.
Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
Tidak cocok dalam skala tim yang besar (>20 orang).
Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

BAB III
PENUTUP

3.1 Kesimpuan
Agile Software Development 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.
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
http://www.adfkickstart.com/agile-methodology

https://www.academia.edu/23009791/Agile_software_development
http://oo.or.id/content/agile-software-development

Anda mungkin juga menyukai