1. Agile Modeling
Agile Modeling (AM)
merupakan metodologi berbasis praktik untuk pemodelan yang efektif dan
dokumentasi perangkat lunak berbasis sistem.
![]() |
Software Proses |
AM adalah kumpulan nilai-nilai,
prinsip, dan praktik untuk perangkat lunak pemodelan yang dapat diterapkan pada
sebuah proyek pengembangan perangkat lunak secara efektif dan ringan.
Kunci keberhasilan AM
- memiliki komunikasi yang efektif antara semua stakeholder proyek
- berusaha untuk mengembangkan solusi yang paling sederhana
- memenuhi semua kebutuhan anda
- mendapatkan feedback mengenai usaha anda
- memiliki keberanian untuk membuat keputusan
- memiliki kerendahan hati untuk mengakui bahwa Anda tidak mungkin tahu segalanya, bahwa orang lain memiliki nilai untuk menambah upaya proyek.
- diperlukan adanya komunikasi yang terbuka dan kejujuran pada tim untuk memastikan kerja sama tim yang efektif.
![]() |
Driven Development |
Macam-macam Agile Modelling
- Pengembangan perangkat lunak adaptif (Adaptive Software Development [ASD])
- Pengembangan oleh banyak orang atau scrum
- Metode pengembangan sistem dinamik (Dynamic Systems Development Method [DSDM])
- Kristal
- Pengembangan Drive fitur (Feature Drive Development [FDD])
- Pengembangan perangkat lunak yang ringkas (Lean Software Development [LSD])
- Permodelan cepat (Agile Modeling [AM])
- Proses cepat terpadu (Agilr Unified Process [AUP])
2. Agile Proses Model
Agile process memadukan
filosofi dan sekumpulan aturan dalam pengembangan software. Aturan-aturan
pengembangan software lebih menekankan penyampaian ke pelanggan tentang
pendesainan dan analisa software itu sendiri serta komunikasi yang aktif dan
berkesinambungan antar developer dan pelanggan.
3. Pengembangan perangkat lunak adaptif
Ø Pengembangan perangkat lunak adaptif (Adaptive Software Development [ASD]) diusulkan oleh Jim Highsmith
Ø
Sebagai suatu teknik yang dapat
digunakan untuk membangun/mengembangkan perangkat lunak dan sistem yang
kompleks.
Ø
Menggabungkan 3 fase:
spekulasi, kolaborasi dan pembelajaran
4. Model Pengembangan Sistem Dinamik
- Menyediakan kerangka kerja untuk membangun dan memelihara sistem/ perangkat lunak melalui penggunaan prototipe (incremental prototype).
- Proses perangkat lunak berulang dimana setiap iterasi mengikuti aturan 80 persen dan 20 persen
5. Kristal
Ø Konsepnya dibuat oleh Allstair Cockburn dan Jim HighsmithØ Menempatkan prioritas tinggi pada “kemampuan bermanuver” untuk mencapai suatu pendekatan pengembangan perangkat lunak.
Ø Tujuannya adalah untuk memungkinkan team cepat untuk memilih anggota keluarga kristal yg paling sesuai dengan proyek dan lingkungan mereka
6. Pengembangan Kendali Fitur
Dikemukakan oleh Peter Coad dengan
orientasi objek. Kemudian dikembangkan oleh Stephen Palmer dan Felsing John. Mengadopsi
beberapa falsafah:
a) Menekankan kolaborasi antara orang-orang pada tim FDD
b) Mengelola kompleksitas masalah yang menggunakan dekomposisi berbasis fitur
c) Melakukan beberapa komunikasi teknis rinci yang menggunakan sarana
berbasis teks, verbal dan grafis
Manfaat Fitur-fitur (FDD)
- Dapat lebih mudah dipahami dan dapat menemukan ambiguitas, kesalahan atau kelalaian
- Dapat diatur menjadi pengelompokan hierarkis yang berhubungan dengan bisnis
- Rancangan dan representasi kode-kode program lebih mudah untuk diperiksa
7. Adaptif Software Development
Dipelopori oleh Jim
Highsmith. Karakter yang membedakan :
- Perencanaan berbasis misi
- Fokus berbasis komponen
- Menggunakan “time-boxing”
- Konsideran eksplisit pada resiko
- Menekankan kolaborasi bagi pengumpulan kebutuhan
- Menekankan pembelajaran melalui proses
Proses :
ASD Spekulasi
- Menggunakan adaptive cycle planning
- Menggunakan user mission statement, project constraints.
- Setelah siklus pertama,rencana dikaji ulang dan disesuaikan agar proyeknya sesuai dengan realita dimana team ASD bekerja
ASD Kolaborasi
- Meliputi komunikasi dan kerjasama antar team tetapi tetap menekan individualis.
- Mengumpulkan kebutuhan dengan mini specs.
ASD Learn
- Menggunakan Focus group dan Formal Technical Review.
- Melakukan evaluasi ulang
8. Pemrograman Extreme
Definisi XP
sebuah
model pengembangan perangkat
lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan
tersebut sehingga menjadi lebih adaptif dan fleksibel.
Nilai-nilai Dasar XP
- Communication : XP memfokuskan pada hubungan komunikasi yang baikanta anggota tim.
- Courage : Para anggota tim dan penanggungjawab pengembangan perangkat lunak harus selalu memiliki keyakinan dan integritas dalam melakukan tugasnya.
- Simplicity : gunakan method yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya, dan berbagai proses penyederhanaan lain akan selalu menjadi nilai utama dari setiap aspek XP.
- Feedback : berikan selalu feedback kepada sesama anggota tim maupun pihak-pihak lain yang terlibat dalam pengembangan perangkat lunak.
- Quality Work : semua ini diatas berujung pada sebuah kondisi dimana kita melakukan pekerjaan dengan berkualitas.
Aspek Dasar XP
- The planning game
- Small releases
- Metaphor
- Simple design
- Refactoring
- Testing
- Pair programming
- Collective ownership
- Coding standard
- Continous integration
- 40 hours week
- On site customer
The planning games
pada XP proses ini menggunakan terminologi "game" karena Beck
menyarankan untuk menggunakan teknik score card dalam menentukan
requirements. Semakin sulit aspek teknis yang dibutuhkan semakin tinggi
pula score cardnya.
Metaphor
metaphor, walaupun mirip dengan arsitektur lebih bersifat dan
deskriptif. Dengan demikian diharapkan komunikasi antara klien dengan
developer akan berlangsung lebih baik dan lancar dengan penggunaan
metaphor.
Simple design
Pada XP desain dibuat dalam lingkup kecil dan sederhana. Dengan desain
yang simpel apabila terjadi perubahan maka membuat desain baru untuk
mengatasi perubahan tersebut dapat dengan mudah dilakukan dan resiko
kegagalan desain dapat diperkecil.
Refactoring
Melakukan perubahan pada
kode program dari perangkat lunak dengan tujuan meningkatkan kualitas dari
struktur program tersebut tanpa mengubah cara program tersebut bekerja. Dengan Refactoring tim pengembang dapat
melakukan berbagai usaha untuk meningkatkan kualitas program tanpa kembali
mengulang-ulang proses desain.
Testing
Jika pada pengembangan
perangkat lunak lainnya tes baru dikembangkan setelah perangkat lunak selesai
menjalani proses coding maka
pada XP tim pengembang harus membuat terlebih dahulu tes yang hendak dijalani
oleh perangkat lunak.
- Sikuls pada XP adalah requirement analysis à test à code à design
Pair programming
melakukan proses menulis program dengan berpasangan.
Coding standard
Dengan adanya coding
standards yang telah disepakati
terlebih dahulu maka pemahaman terhadap program akan menjadi mudah untuk semua
programer dalam tim.
Continous integration
Dengan melakukan build sesering mungkin
berbagai kesalahan pada program dapat dideteksi dan diperbaiki secepat mungkin. Pada XP tim disarankan
untuk melakukan build
sesering mungkin misalnya setiap 4 jam atau bahkan lebih cepat lagi.
9. Scrum
Scrum adalah sebuah proses agile yang memungkinkan kita untuk memfokuskan
diri guna menghasilkan produk dengan nilai ekonomi paling tinggi dalam jangka
waktu yang sangat pendek. Dalam jangka waktu tertentu semua pihak dapat melihat
sebuah software yang dapat bekerja dan memutuskan untuk merilis software
sebagaimana adanya atau melanjutkan untuk mengembangkannya di sprint
berikutnya.
Keterangan :
- Product Backlog : Fitur-fitur yang di catat sebagai item dan diurutkan berdasarkan pioritasnya
- Sprint Backlog : Backlog yang memiliki pioritas lebih tinggi untuk di kerjakan oleh tim scrum berdasarkan spesialisasi masing-masing
- Daily Meetings : Meeting yang wajib dilakukan oleh Scrum master dan di hadiri oleh anggotatim untuk menjawab pertanyaan sebagai evaluasi hasil kerja per 24 jam. Tiga pertanyaan kunci :
- Apa yang anda lakukan sejak pertemuan terakhir tim ?
- Kendala apa yang anda hadapi ?
- Apa yang akan anda lakukan hari ini ?
- Potentially product shipping increment : yaitu setiap backlog atau product yang telah selesaidikerjakan selama sprint dan di demonstasikan ke product owner
Sejarah Scrum
a.) Jeff Sutherland- Dimulai di Easel Corp pada tahun 1993
- IDX dan 500+ orang melakukan Scrum
b.) Ken Schwaber
- ADM
- Scrum dipresentasikan di OOPSLA pada tahun 96 dengan Sutherland
- Penulis 3 buku mengenai Scrum
c.) Mike Beedle
- Scrum patterns di PLOPD4
d.) Ken Schwaber dan Mike Cohn
- Mendirikan Scrum Alliance pada tahun 2002 yang awalnya bagian dari Agile Allianc
![]() |
Karakteristik Scrum |
![]() |
Kelebihan dan Kekurangan Scrum |
Software yang menggunakan scrum
- Software komersil
- Pengembangan internal
- Proyek dengan kontrak
- Aplikasi keuangan
- Aplikasi yang tersertifikasi ISO 9001, dll
10. Dynamic System Development Model (DSDM)
Dipromosikan oleh
konsorsium DSDM. Mirip dalam banyak dengan XP dan/atau ASD. Sembilan
prinsip-prinsip panduan :
- Pelibatan user secara aktif adalah keharusan.
- Tim DSDM harus diberdayakan untuk mengambil keputusan.
- Fokus pada penyajian produk sesering mungkin.
- Penerimaan dari tujuan bisnis adalah kriteria esensial untuk penerimaan penyajian.
- Pengembangan bertahap dan berulang dibutuhkan untuk fokus pada solusi bisnis yang akurat
- Semua perubahan selaman pengembangan dapat dibalik.
- Kebutuhan adalah dasar pada level tinggiPengujian terintegrasi dalam siklus kehidupan
Sumber: http://arekget.blogspot.com/2013/01/bab-3-pengembangan-dan-implementasi.html