Semoga bermanfaat ^^
Pengertian agility
Menurut ivar Jacobson
Perubahan adalah jantung dan jiwa dari perangkat lunak.
Perubahan dari : requipment software, team member, teknologi berdampak pada produk.
Team agile mengakui bahwa perangkat lunak dikembangkan oleh individu yang bekerja dalam tim dengan skill dari tim, kemampuan untuk berkolaborasi adalah kunci keberhasilan projek
Agility merupakan dinamis, konten spesifik, agresif mengakomodir perubahan dan berorientasi pada pengembangan.
Karakteristik agility
1. Respon yang efektif, cepat dan adaptif terhadap perubahan
2. Komunikasi yang efektif diantara stakeholder
3. Menggambarkan kebutuhan cutomer terhadap tim
4. Mengorganisasikan tim sehingga performansi kerja berada dalam control
5. Cepat, pertambahan delivery software
6. Menghilangkan gap antara developer dan customer
7. Menekankan pentingnya delivery secara cepat dari software operasional dan menekankan pentingnya diantara work product
Prinsip – prinsip agile
1. Prioritas tertinggi adalah kepuasan customer melalui delivery di awal secara berkelanjutan dari software yang berharga.
2. Menerima perubahan requirement bahkan membuat lambat development, ditampilkan mengakomodir perubahan, dibuktikan dengan meningkatkan keunggulan kompetitif pelanggan.
3. Delivery dari software diatur dengan preferensi jadwal delivery yang singkat misalnya 2 minggu, 3 minggu.
4. Tim bisnis dan developer harus bekerjasama setiap hari selama project berjalan
5. Membangun motivasi semua individu didalam project ,
6. Memberikan support dan yang dibutuhkan, memberikan kepercayaan untuk menyelesaikan projek.
7. Atensi yang berkelanjutan untuk technical excellence dan desiain enhance secara tangkas.
8. Simplicity (didefinisikan sebagai memaksimalkan pekerjaan yang belum dilakukan) adalah penting.
9. The arsitektur terbaik, requirement, dan desain muncul dari tim yang mengatur dirinya sendiri.
1 Dalam reguler interval tim mencerminkan bagaimana untuk menjadi lebih efektif dan meyesuaikan perilakunya sesuai.
ASUMSI KUNCI
1. Sulitnya memprediksi di awal mengenai requirement atau prioritas pelanggan akan berubah dan mana yang tidak. Hal ini juga sulit untuk memprediksi bagaimana prioritas pelanggan akan berubah sebagai hasil proyek. Sulitnya memprediksi di awal dimana requirement dan customer prioritas akan berubah dan mana yang tidak. Sulitnya memprediksi bagaimana prioritas customer akan mengubah progress project.
2. Untuk banyak jenis kegiatan perangkat lunak, desain dan konstruksi yang disisipkan (konstruksi digunakan untuk membuktikan desain). Sulit untuk memprediksi bagaimana prioritas pelanggan akan berubah sebagai hasil proyek..
3. Analysis, design dan testing tidak dapat diprediksi dari rencana perspektif seperti halnya salah satu mungkin masih.
4. Untuk banyak jenis kegiatan perangkat lunak,
AGILE PROCESS
1. Didorong oleh deskripsi dari kebutuhan pelanggan (skenario)
2. Mengenali bahwa rencana memiliki durasi yang pendek
3. Pengembang perangkat lunak secara iteratif dengan lebih menekankan pada kegiatan pengembangan.
4. Bertambahnya delivery perangkat lunak secara increment.
5. Adaptasi terhadap perubahan yang sering terjadi.
SIFAT ANGGOTA TIM
1. Kompetensi
Bakat bawaan, software skill, skill yang berhubungan dengan software secara spesifik, pengetahuan terhadap proses yang diterapkan.
2. Focus umum
Delivery working software secara incremental terhadap customer sesuai dengan waktu yang telah disepakati.
3. Kolaborasi
Kerjasama developer dan manajer satu sama lain.
4. Kemampuan pengambilan keputusan
Baik project maupun technical issue.
5. Kemampuan problem solving dan harus berhubungan dengan ambigu.
6. Saling percaya dan menghargai.
7. Mengorganisasi tim sendiri
a. Mengorganisasikan pekerjaan yang akan diselesaikan.
b. Mengorganisasikan proses yang mengakomodir lingkungan local.
c. Mengorganisasikan jadwal kerja untuk pencapaian delivery terbaik dalam pengembangan software.
LANGKAH AGILE SOFTWARE
1. Aktifitas framework (terhadap pembangunan dan delivery)
a. Komunikasi Customer
b. Planning
c. Modelling
d. Construction
e. Delivery
f. Evaluation
Work product adalah sebuah operasional perangkat lunak yang berkembang dan disampaikan kepada user saat tanggal komitmen sesuai dibuat. Ingatlah bahwa tidak mampu mendefinisikan persyaratan sepenuhnya sebelum proyek dimulai.
Agile tim sepakat bahwa process work dan tim menghasilkan peningkatan delivery perangkat lunak yang sesuai dengan kebutuhan user, sehingga dilakukan dengan benar
Agile process model:
1. Extreme programming (XP)
2. Adaptive Software Development (ASD)
3. Dynamic Systems Development Method (DSDM)
4. Scrum
5. Crystal
6. Feature Driven Development (FDD)
7. Agile Modelling (AM)
*Extreme progamming (XP)XP merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Kent Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme Programming (XP) is a lightweight, efficient, low-risk, flexible, predictable, scientific, and fun way to develop software“. Model ini cenderung menggunakan pendekatanObject-Oriented. Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. 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 merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal.
XP tepat digunakan saat kondisiKeperluan berubah dengan cepat
Resiko tinggi dan ada proyek dengan tantangan yang bar
Tim programmer sedikit, yaitu 2-10 orang
Mampu mengotomatiskan tes
Ada peran serta pelanggan secara langsung
Kelemahan XP:
Cerita-cerita yang menunjukkan requirements kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user. *Adaptive Software Development (ASD)Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik 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 : collaboration dan learning. Collaboration : orang-orang yang bermotivasi tinggi bekerja sama, saling melengkapi, rela membantu, kerja keras, terampil di bidangnya, dan komunikasikan 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:Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.Formal Technique Reviews, tim ASD lengkap melakukan review.Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses. * Dynamic Systems Development Method (DSDM)Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. Metode ini akan membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
Dynamic System Development Method dapat dikombinasikan dengan Extreme Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic System Development Method dan praktek yang sejalan dengan Extreme Programmning.
Dynamic System Development Method memiliki beberapa aaktifitas seperti :
– Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
– Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
– Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
– Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
– Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.
* Scrum1. Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan sedangkan XP adalah menekankan metodologi yang berbeda yaitu ujian, pemrograman dan pembangunan. Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkinScrum merupakan suatu kerangka kerja. Jadi, bukannya menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen organisasi utama pada scrum yaitu product owner, Scrum master, dan the Scrum team. Scrum Master dapat dianggap sebagai pelatih bagi tim, membantu anggota tim menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat ikut membantu dalam koordinasi team.
Scrum tepat digunakan saat kondisi:
Keperluan berubah dengan cepat
Tim programmer sedikit, yaitu 5-9 orang
Pelanggan tidak terlalu paham dengan apa yang diinginkan Scrum memiliki prinsip yaitu:
Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lainProses dapat beradaptasi terhadap perubahan teknis dan bisnis
Proses menghasilkan beberapa software increment
Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan Kelebihan Scrum antara lain:
Keperluan berubah dengan cepat
Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan Kelemahan Scrum antara lain:Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
* 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. * Feature Driven Development merupakan model proses praktis untuk keahlian proses software engineering, Feature merupakan sebuah fungsi yang berharga dimana dapat dilaksanakan.Keuntungan dari metode feature :
User dapat menggambarkan dengan mudah bentuk system.
Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.
Desain dank ode lebih mudah diperiksa secara efektif.
Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.
* Agile ModelingDalam 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.
– Travel light: simpan model-model yang bersifat jangka panjang saja
– Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens yang tepat.
– Memahami model dan alat yang yang digunakan untuk membuat software
–Adaptasi secara local
* Referensi
- https://dwijaantara.wordpress.com/2010/10/25/agile-method/
- http://id.wikipedia.org/wiki/Agile_Development_Methods
- http://dhiekalantana.blog.unas.ac.id/2012/10/perbandingan-up-xp-scrum-agile/
-http://www.ajihutomopurnomo.blogspot.com/search/label/Rekayasa%20Perangkat%20Lunak
Tidak ada komentar:
Posting Komentar