NIM : 1815025091
KELAS : ILKOM B 2018
MATKUL : REKAYASA PERANGKAT LUNAK
AGILE DEVELOPMENT
Metode pengembangan perangkat lunak telah dilacak kembali pada tahun 1957. Pada
tahun tersebut EA Edmonds telah memperkenalkan proses pengembangan perangkat lunak
adaptif. “Lightwight” merupakan metode pengembangan perangkat lunak yang berkembang
pada tahun 1990, sebagai reaksi terhadap apa yang disebut metode “heavyweight”. Yang
ditandai dengan kritik mereka terhadap metode waterfall
Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama
agile methods,kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Metodologi
yang dikenal sebagai agile methods ini mengutamakan fleksibilitas terhadap perubahan-
perubahan yang terjadi selama pengembangan. Bahkan perubahan ataupun penambahan pada
saat fase terakhir pun teratasi apabila menggunakan metodologi ini.
Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal
yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user.
Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan
menyatakan bahwa Agile Software Development adalah cara membangun software dengan
melakukannya dan membantu orang lain membangunnya sekaligus.
1. Pengertian
Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam
pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek
yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.
Dalam Agile Software Development interaksi dan personel lebih penting dari pada
proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap,
kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap
terhadap perubahan lebih penting daripada mengikuti rencana.
Agile Software Development juga melihat pentingnya komunikasi antara anggota tim,
antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain
adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12
prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah
bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:
1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus
menerus.
2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
3. Penyerahan hasil/software dalam hitungan waktu beberapa minggu sampai beberapa
bulan.
4. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan
berjalan.
5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja
dalam lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan
proyek.
6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek
8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga
perkembangan yang berkesinambungan
9. Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
10. Kesederhanaan penting
11. Arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya
sendiri
12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera
melakukannya.
Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat
agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3
asumsi penting tentang proyek software pada umumnya:
1. Kebutuhan software 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.
Komunikasi (Communication)
Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah
mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi
dalam Extreme Programmning dibangun dengan melakukan pemrograman berpasangan (pair
programming). Developer didampingi oleh pihak klien dalam melakukan coding dan unit
testing sehingga klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi
dengan developer. Tujuannya untuk memberikan pandangan pengembang sesuai dengan
pandangan pengguna sistem.
Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini
dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses desain
dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi
atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya besok
jika diperlukan.
Keberanian (Courage)
Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan
ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk selalu
melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang
terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka
seharusnya kode program seperti itu di refactor (kalau perlu dibangun ulang). Hal ini
menjadikan pengembang merasa nyaman dengan refactoring program ketika diperlukan.
Adaptive cycle planning yaitu menggunakan informasi awal seperti misi dari klien,
batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment (produk
software yang secara berkala diserahkan)
Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek,
padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang
proyek melalui 3 cara:
– Focus group: klien dan pengguna memberi masukan terhadap software
Sprints
Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi
kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-
box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.
Scrum Meetings
Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk
evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan
meeting selanjutnya.
Demo
Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan
dievaluasi oleh klien.
1.2.5. Crystal
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada
jalur kritis, dapat menghabikan waktu lebih, mereka yang memperbaiki produk atau
membantu oaring yang ada di jalur proyek kritis.
Karakteristik Crystal :
Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar
karakteristik permasalahan
Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim
Selalu murah dan cepat berkomunikasi secara langsung.
Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi
lebih tinggi.
Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan
memungkinkan para developer aplikasi untuk menerapkan metoda iterative (analisis, disain,
implementasi dan pengujian) pada tiap komponen. Dengan menggunakan model ini, RUP
membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut.
– Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil
analisis di tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup
pembuatan disain arsitektur subsistem), disain komponen sistem, disain format data disain
database, disain antarmuka/tampilan, disain peta aliran tampilan, penentuan design pattern
yang digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.