com/2010/10/25/agile-method/
PENDAHULUAN
Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun suatu perangkat
lunak,dengan perkembangan teknologi yang sangat pesat metodologi perangkat lunak juga terjadi
perubahan atau penambahan requirements. Dari model waterfall sampai dengan model-model incremental.
Semua metodologi yang berkembang sebelumnya tidak mampu menangani kemungkinan perubahan atau
penambahan requirements. 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. 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 Method juga dapat diartikan sekelompok metodologi pengembangan software yang didasarkan pada
prinsip-prinsip yang sama atau pengembangan system jangka pendek yang memerlukan adaptasi cepat dari
pengembang terhadap perubahan dalam bentuk apapun
1.1. Prinsip Agile Software Development
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.
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.
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
2.
3.
4. Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.
1.2. Model-model Agile method
1.
2.
3.
4.
Scrum Methodology
5.
Crystal
6.
7.
Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan semua
yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan proses ini memberikan perangkat
lunak yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman memberdayakan
pengembang Anda untuk percaya diri menanggapi perubahan kebutuhan pelanggan, bahkan terlambat
dalam siklus hidup.
Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan pengembang semua mitra
setara dalam sebuah tim kolaboratif. Extreme Pemrograman menerapkan, sederhana namun efektif yang
memungkinkan tim lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi masalah untuk
menyelesaikannya seefisien mungkin.
Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima cara penting; komunikasi,
kesederhanaan, umpan balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi
dengan pelanggan mereka dan programer sesama. Mereka terus desain mereka yang sederhana dan bersih.
Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari pertama.
Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti
yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang unik
dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram dapat berani merespon
perubahan kebutuhan dan teknologi.
Aspek yang paling mengejutkan dari Extreme Programming adalah aturan sederhana. Extreme
Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potongan-potongan kecil. Individual potongan
Extreme Programming adalah metode pengembangan perangkat lunak yang ringan dan termasuk salah satu
agile methods yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme Programming
merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat
terkenal. Sasaran Extreme Programming adalah tim yang dibentuk berukuran antara kecil sampai medium
saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi
requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat.
Extreme Programming sebagai sebuah metode yang dinamis diperlihatkan dalam empat values yang
dimilikinya dan keempatnya merupakan dasar-dasar yang diperlukan dalam Extreme Programming. Kent
Beck menyatakan bahwa tujuan jangka pendek individu sering berbenturan dengan tujuan sosial jangka
panjang. Karena itu dibuatlah values yang menjadi aturan, hukuman, dan juga penghargaan. Keempat
values tersebut adalah :
1. 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.
1. 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.
1.
Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun.
Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar
hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin. Setiap feed
back ditanggapi dengan melakukan tes, unit test atau system integration dan jangan menunda karena biaya
akan membengkak (uang, tenaga, waktu).
1. 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 refactoringprogram ketika diperlukan.
Extreme Programming menggunakan pendekatan berorientasi objek. Pada aktifitas Perencanaan terjadi
pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan
lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa story yang lebih kecil. Terjadi
pemeriksaan dan pertimbangkan resiko dan aktifitas Desain kegiatannya sederhana yaitu memanfaatkan
kartu CRC (Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika
temuikan kesulitan, prototype dibangun [ini namanya spike solution].
Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis. Pada aktifitas
Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk
membuat program. Pair programming dilakukan untuk real time program solving dan real time quality
assurance. Proses pengujiannya menggunakan unit test yang dipersiapkan sebelum pengkodean
Menggunakan pendekatan berorientasi objek
Gambar 1. Proses Extreme Programming (XP)
Sebagai sebuah metodologi untuk mengembangkan peragkat lunak Extreme Programming tentu memiliki
siklus hidup. Siklus hidup pada Extreme Programming ini terdapat lima fase yaitu :
1.
Exploration Phase
2.
Planning Phase
3.
4.
Productionizing Phase
5.
Maintenance Phase
6.
Death Phase
Gambar 2. Fase Extreme Programming (XP) sebelum dimodifikasi
Pada bagian ini akan dilakukan penambahan fase pada Extreme Programmning yaitu dengan menyisipkan
sebuah fase yang disebut requirements management phase. Fase ini disisipkan tidak sekuensial tapi paralel
dengan fase planning. Tujuan penyisipan secara paralel ini adalah mengurangi kemungkinan Extreme
Programmning keluar dari lingkup agile. Tiga hal yang dilakukan yaitu:
1.
Requirements Management
2.
Setelah dilakukan modifikasi terdapat beberapa pengaruh pada practice-nya. Dari dua belas practice yang
terdapat pada Extreme Programmning, ada empat buah practice yang mempunyai singgungan kuat dengan
requirements management yaitu planning game, metaphor, 40-hour week, On-site customer. Dari
keempatnya planning game-lah yang paling besar keterkaitannya dengan requirements. Pada bagian ini
akan dipaparkan yang terjadi pada keempat practice tersebut setelah dilakukan modifikasi pada Extreme
Programmning tersebut.
1. Planning Game
Berikut ini adalah tabel setelah dilakukan perubahan pada siklus:
NO
PHASE
BUSINESS
DEVELOPMENT
phase
Estimate story
Split story
Summarize stories
(simple
documenting)
II
Sort by risk
Sort by velocity
Steering
Iteration
phase
Recovery
New story
Re-estimate
Summarize stories
(update simple
document)
1. On-site Customer
Komunikasi dengan on-site customer tetap dilakukan terus, termasuk dalam melakukan summarize stories.
Sifatnya hanya merangkum story ke dalam requirements yang akan menjadi feature pada sistem yang
dibuat.
Penerapan Extreme Programmning
Beberapa hal yang harus dipertimbangkan sebelum seseorang masuk dalam dunia Extreme
Programmning adalah sebagai berikut:
1. User harus memahami konteks bisnis yang akan dikembangkan sistemnya, sehingga developer dapat
menangkap sistem secara aplikatif dan dapat mengusulkan teknologi apa yang dapat dikembangkan dalam
sistem barunya.
2. Akan lebih efektif apabila developer pernah menangani proyek pengembangan sistem yang sejenis
sehingga dapat memberikan usulan model sistem baru, di samping alasan bahwa developer telah memiliki
template aplikasi sistem tersebut untuk dijadikan prototype sistem baru. Hal ini akan berimplikasi kepada
kemudahan dalam konstruksi sistem karena dikembangkan berdasarkan template yang sudah ada.
3. Extreme programming menuntut komunikasi antar developer dan user secara intensif dan komunikasi
internal antar developer secara komprehensif, sehingga akan lebih representatif apabila tahap
pengembangan sistem dilakukan di lokal yang mendukung proses komunikasi tersebut.
Extreme Programmning adalah suatu bentuk pembangunan perangkat lunak yang berbasis nilai
kemudahan, komunikasi, umpan balik, dan keberanian. Bekerja dalamwhole team bersama-sama dengan
praktek yang mudah. Dalam Extreme Programming terdapat 12 practices utama yaitu :
1. Planning Game
Hubungan antara Customer dengan Programer untuk memperkirakan kenbutuhan kebutuhan dari
Custumer dalam implementasinya.
1. Small, frequent releases
Memproduksi dengan cepat.
1. System metaphors
System metaphors antara Customer dengan Programeruntuk menunjukkan semua perkembangan dengan
menjelaskan bagaimana cara kerja system.
1. Simple design
Perhatiannya pada pendisainnan atau perancngan solusi yang sederhana
1. Testing (unit testing & TDD)
Pelaksanaan pengujian atau testing keseluruhan
1. Frequent refactoring
Penyusunan system kembali dengan cara duplikat atau salinan,memperbaiki komunikasi, menambahkan
kelenturan
1. Pair programming
Dua orang menulis kode pada 1 komputer
1.
Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar
karakteristik permasalahan
2.
3.
4.
Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan
2.
3.
Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan penting. Jangkauan
dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi menjadi lebih
kecil dan kualitas dapat dijaga pada tiap langkah pembangunan
software. Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system
software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan
software agar dapat diaplikasian pada software development proyek secara efektif.
Prinsip dalam Agile Modeling :
Membuat model dengan tujuan: tentukan tujuan sebelum membuat model
-
Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model lain.
Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
Memahami model dan alat yang yang digunakan untuk membuat software
Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang
umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap ekspetasi
pengguna.
Sumber : http://id.wikipedia.org/wiki/Agile_Development_Methods
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. Agile
development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang
digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan,
bebas bergerak, dan waspada.[1]Sehingga saat membuat perangkat lunak dengan
menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim
pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari
tim seimbang.
Daftar isi
[sembunyikan]
1 Pendahuluan
2 Agile manifesto
4 Tujuan agile
5.2 Story
5.3 Sprint
6.1 Kelebihan
6.2 Kekurangan
7 Sumber (Resources)
8 Referensi
Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan
dari perangkat lunak yang akan dibuat.
Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas
agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses
dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem.
Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100%
bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara
berkala.
Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliances
Manifesto,[4] diantaranya :
1. Interaksi dan personel lebih penting dari pada proses dan alat.
2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
3. Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.
4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Pengertian dari Agile Alliance's Manifesto[4] dijelaskan di bawah ini:
Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar
anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses
pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat
melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan
lebih berguna daripada dokumentasi yang lengkap.
Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile
adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik
dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan
agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus
dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development
methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat
proses pembuatan perangkat lunak.
Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus
mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance,[4] 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, pengembangpengembang, 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.
Agile Modeling
Crystal Clear
Crystal Methods
Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk
membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan
prototip yang incremental dalam lingkungan yang terkondisikan. Metode ini bisa membuat
pengerjaan software lebih cepat 80%.Hal -hal yang perlu diperhatikan jika
menggunakan dynamic system development method:
1. Feasibility study, siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan
proses DSDM.
2. Business Study, susun kebutuhan fungsional dan informasi, tentukan arsitektur
aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.
3. Functional model iteration, perlihatkan fungsi perangkat lunak ke klien untuk
mendapatkan feedback
4. Design and Build Iteration, cek ulang prototip yang dibangun dan pastikan bahwa
prototip dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar
bekerja.
5. Implementation: buat perangkat lunak sesuai protoip yang ada dan terus tambah
fungsionalitasnya.
Kanban
Rational unified process, adalah suatu kerangka pengembangan perangkat lunak iteratif
yang dibuat oleh Rational Software, suatu divisi dari IBM sejak 2003. Rational unified
process bukanlah suatu proses dengan aturan yang konkrit, melainkan suatu kerangka
proses yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh tim pengembang
perangkat lunak yang akan memilih elemen proses disesuaikan dengan kebutuhan
mereka.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, Rational unified process membagi tahapan pengembangan perangkat lunaknya ke dalam
4 fase sebagai berikut.
1. Inception, merupakan tahap untuk mengidentifikasi sistem yang akan
dikembangkan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup
analisis sistem, perumusan target dari sistem yang dibuat, identifikasi kebutuhan,
perumusan kebutuhan pengujian, pemodelan diagram UML, dan pembuatan
dokumentasi.
2. 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 tampilan,
penentuan design pattern yang digunakan, pemodelan diagram UML, dan
pembuatan dokumentasi.
3. Construction, merupakan tahap untuk mengimplementasikan hasil disain dan
melakukan pengujian hasil implementasi. Pada tahap awal construction, ada
baiknya dilakukan pemeriksaan ulang hasil analisis dan disain, terutama disain pada
diagram sequence,class, component, dan deployment. Apabila disain yang dibuat
telah sesuai dengan analisis sistem, maka implementasi dengan bahasa
pemrograman tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini
antara lain mencakup pengujian hasil analisis dan disain (misal menggunakan class
responsibility collaborator untuk kasus pemrograman berorientasi obyek), pendataan
kebutuhan implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap
analisis), penentuan coding pattern yang digunakan, pembuatan program,
pengujian, optimasi program, pendataan berbagai kemungkinan pengembangan /
perbaikan lebih lanjut, dan pembuatan dokumentasi.
4. Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (rollout), yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan
testing beta aplikasi terhadap ekspetasi pengguna.
Scrum
Scrum-ban
Story-driven modeling
Velocity tracking
Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan
dibuat.
Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak
tidak akan bisa dibuat.
ID Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari
kehilangan jejak story kalau kita mengganti namanya.
Nama Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata),
sehingga tim dan klien memahami kira-kira story yang dibicarakan.
Perkiraan awal Perkiraan awal tim tentang berapa banyak kerja yang
diperlukan untuk mengimplementasikan sebuah story.
Demo deskripsi umum bagaimana cara story ini didemokan pada waktu sprint
demo (lakukan ini, klik itu, lalu ini akan muncul,dll).
Tujuan sprint.
Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei
dikerjakan, sebagai contoh:
Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan
3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang
dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan evaluasi dari
Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai aplikasi selesei
dikerjakan.
Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
Karakteristik untuk membuat tim yang tangkas dan bisa memanajemen dirinya sendiri.
Apa yang harus dilakukan ketika menemukan perencanaan yang tidak sesuai, dan
bagaimana dapat mengoreksinya dengan benar.
Bagaimana mengeksekusi rencana yang ada dengan sumber daya yang tersedia
dengan tepat.
Merupakan salah situs yang wajib dibaca bila anda ingin belajar tentang agile development
methods, didalamnya anda dapat menemukan informasi diantaranya :
Lean startup
Pivotal tracker
Pivotal tracker merupakan perangkat lunak agile project management dari Pivotal Lab.Di
dalam perangkat lunak ini terdapat berbagi file dan fungsionalitas manajemen tugas,
pelacakan kecepatan dan perencanaan iterasi, penanda rilis, dan grafik kemajuan.
Trello
Trello merupakan layanan berbasis web yang bisa membantu kita dalam memanajemen
proyek yang sedang dikembangkan baik sendiri atau dalam suatu tim. Di Trello kita dapat
membuat pekerjaan lebih fokus dan terarah.
Asana
Asana merupakan aplikasi alternatif yang sederhana dan intuitif untuk manajemen kerja,
baik dalam tim maupun sendiri.
Salah satu model pengembangan perangkat lunak dimana pada model ini berawal dari suatu
proses perencanaan dan berakhir pada proses deployment
Iterasi
a b
a b c
a b
Education.USA:Phytorion.
9. ^
a b
Practice.USA:C4Media.
10. ^ Taymor, E.Agile Handbook.USA:Philosophie.