March 21, 2015

AGILE DEVELOPMENT

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. 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. Rekayasa perangkat lunak  dapat terwujud jika (manajer, pelanggan, dan pengguna) bekerja sama dalam satu tim  dan bisa mengatur ,mendukung komunikasi dan kolaborasi di antara semua pihak yang terlibat di dalamnya.


 Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto, 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 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.

Other Agile Development (Model Proses Cepat Lainnya)

1.    Adaptive Software Development (ASD) Pengembangan Perangkat  Lunak  Adaptif Adaptive.
Software Development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari Adaptive SoftwareDevelopment (ASD) adalah kolaborasi manusia dan tim yang mengatur diri sendiri
Spekulasi
Proyek dimulai dari SIKLUS PERENCANAAN ADAPTIF. Dimana yang digunakan adalah: Inisiasi.
Informasi Proyek, Pernyataan Misi Konsumen, Kendala Proyek
Pembelajaran
ASD menekankan pada pembelajaran sebagai elemen kunci dalam pencapaian sebuah tim perangkat lunak yang mampu “Mengorganisasi dirinya sendiri”.
Kolaborasi                                                       
Mengkritik Tanpa Permusuhan, Membantu Tanpa Rasa Kecewa, Bekerja Keras bahkan Lebih dari yang biasanya Dilakukan, Memiliki Kontribusi Untuk Pekerjaan yang Ada, Mengomunikasikan Setia Permasalahan maupun Kecurigaan

2.    Dynamic System Development Method (DSDM) Metode Pengembangan Sistem Dinamis “Menyediakan Kerangka Kerja” untuk membangun dan memelihara system perangkat lunak yangmemenuhi batasan waktu melalui penggunaan prototype yang ditambahi dan diperluas. Pada dasarnya 80 persen dari aplikasi dapat disampaikan dalam 20 persen dari waktu yang dibutuhkan untuk menghantarkan aplikasi yang lengkap (100 persen).

3.    Scrum
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan pengembangan selanjutnya dilakukan oleh Schwaber dan Beedle. Prinsip Secrum konsisten untuk untuk membangun kegiatan pengembangan dalam satu proses yang mencakup KEBUTUHAN, ANALISIS, PERANCANGAN, EVOLUSI, dan PENGHANTAR. Scrum menggunakan satu set pola proses perangkat lunak, yaitu:
Langkah:
Backlog: daftar prioritas dari kebutuhan proyek  atau fitur yang menyediakan nilai bisnis bagi pelanggan (Prioritas Update Kebutuhan).
Sprint: Unit kerja untuk mencapai daftar yang ada di Backlog, dan harus sesuai dengan time box.
Meeting: Pertemuan tiap hari yang mempertanyakan apa yang sudah dilakukan, kendala saat ini, dan perencanaan kedepan.

4.    Crystal
Metode Kristal ini pertama kali dibuat oleh Allstair Cockburn dan Jim Highsmith. Metode Kristal ini sendiri dibuat untuk mencapai suatu pendekatan pengembangan perangkat lunak yang berprioritas pada “kemampuan bermanuver”. Inti dari Metode Kristal ini sendiri adalah tujuannya yang memungkinkan Agile Team untuk memilih anggota dari “Keluarga Kristal” yang paling sesuai dengan proyek dan lingkungan mereka. 

5.    Feature Driven Development (FDD) Pengembangan Drive Fitur
User dapat menggambarkan dengan mudah bentuk system,Dapat di organisasikan atau diatur ke dalam kelompok bisnis yang hirarki, Desain dank ode lebih mudah diperiksa secara efektif, Merancang proyek, penjadwalan dan jalur diarahkan oleh feature. Metode ini pertama kali dikemukakan dalam berbentuk konsep oleh Peter Coad.  Yang kemudian dikembangkan oleh Stephen Palmer dan Felsing John. 
Adapula keuntungan metode ini: User dapat menggambarkan dengan mudah bentuk system, Dapat di organisasikan atau diatur ke dalam kelompok bisnis yang hirarki, Desain dank ode lebih mudah diperiksa secara efektif, Merancang proyek, penjadwalan dan jalur diarahkan oleh feature

6.    Agile Modeling (AM)/ Pemodelan Cepat
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. Tetapi karena keefektifan ini pula, tentunya ada bagian bagian yang harus dipertimbangkan keadaanya. Model ini sendiri memang efektif di bandingkan model tradisional karena hanya mencapai tahapan baik, dan bukan sempurna.
Suatu penekanan pada software pengiriman secara cepat yang memuaskan pelanggan bisa menggunakan Express Programming. Sedangkan untuk menyesuaikan dengan kebutuhan Proyek adalah menggunakan Scrum. Sedangkan untuk pengembangan fitur yang memang sedikit lebih resmi dibandingkan metode lainnya yaitu Feature Driven Development (FDD).

7.    Agile Unified Process (AUP)
Metodologi AUP atau Agile - Unified Process merupakan suatu metodologi pengembangan perangkat lunak yang mulai marak digunakan.
Garis besar tahapan analisa dan perancangan yang dilakukan adalah sebagai berikut:
1)    Inception,
dengan aktivitas mendefinisikan project scope, mengestimasi biaya dan penjadwalan, mendefinisikan resiko, membuat kelayakan proyek dan mempersiapkan lingkungan pengerjaan proyek (tim, tempat kerja, instalasi, dan sebagainya). Proses iterasi dilakukan satu kali. Artifak yang dihasilkan diantaranya adalah dokumen Vision, dokumen Supplementary Specification, dokumen Glossary, Gantt Chart dan Iteration Plan.

2) Elaboration,
dengan aktivitas mengidentifikasi dan validasi arsitektur aplikasi. Proses iterasi dapat dilakukan satu sampai dua kali. Artifak yang dihasilkan adalah UML Use Case, Model Arsitektur (update dan snapshot), Architecture Prototype Code, Scenario Test Plan, dokumen Business Rule, dokumen Supplementary dan Glossary yang telah diupdate.

3) Construction,
dengan aktivitas memodelkan, membangun dan menguji sistem aplikasi (unit testing) serta membuat dokumentasi pendukung. Proses iterasi dapat dilakukan dua hingga delapan kali. Artifak yang dihasilkan adalah Use Case (yang telah diupdate), dokumen Supplementary dan Glossary (yang telah diupdate), Domain Model (snapshot), UML Activity Diagram (snapshot), UML Class Diagram (snapshot), CRC Card, UML Sequence Diagram (snapshot), Source Code, Code Documentation, Regression Test Suite, Acceptance Test dan Bugs Report.

4) Transition,
dengan aktivitas menguji sistem (integration sistem dan user testing), mereview kembali sistem aplikasi dan menginstalasi sistem aplikasi. Proses iterasi dapat dilakukan satu hingga dua kali. Artifak yang dihasilkan adalah Dokumen System Requirement Specification, Dokumen System Technical Specification, Panduan Instalasi dan Panduan Pengguna, Dokumen Pelatihan, Regression Test Suite, User Acceptance Test dan Bugs Report (yang sudah final).

8. Lean Software Development (LSD)
Adalah terjemahan dari lean manufacturing dan lean IT prinsip dan praktek untuk pengembangan perangkat lunak domain.



Sumber :
-          Ilmukuilmumu.wordpress.com
-          http://id.wikipedia.org/

No comments:

Post a Comment