Saturday, February 28, 2015

AGILE METHOD

Nama      : Muhammad Ihsan Al kahfi

NIM       : 2012130021

STTM Cileungsi ,Teknik Informatika Semester 6

  Metodologi Extreme Programing (XP)

  • Extreme Programming yang selanjutnya disingkat dengan XP merupakan salah satu dari sekian banyaknya metodologi dalam rekayasa perangkat lunak dan juga merupakan bagian dari metodologi pengembangan perangkat lunak agile.
  • Secara umum Extreme Programming (XP) dapat dijabarkan sebagai sebuah pendekatan pengembangan perangkat lunak yang mencoba meningkatkan efisiensi dan fleksibilitas dari sebuah proyek pengembangan perangkat lunak dengan mengkombinasikan berbagai ide simpel/sederhana tanpa mengurangi kualitas software yang akan dibagun.
  • XP dikembangkan oleh Beck, Cunningham, dan Jeffries dan ini merupakan lightweight disciplinepengembangan perangkat lunak berdasarkan empat core value.
Kelebihan dan Kekurangan XP
Kelebihan :
  • Meningkatkan kepuasan kepada klien
  • Pembangunan system dibuat lebih cepat
  • Menjalin komunikasi yang baik dengan client.
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kekurangan :
  • User story 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

Metodologi Adaptive Software Development

Metodologi Adaptive Software Development bisa di singkat ASD di definisikan yaitu mewujudkan prinsip bahwa adaptasi yang berdekatan dari proses kerja urusan keadaan normal. Metode ini bisa dikatakan menggantikan metode pengembangan software waterfall dengan serangkaian perulangan berspekulasi, berkolaborasi dan siklus. Siklus dinamis memberikan pembelajaran dan adaptasi kepada proyek. Karakteristik dari siklus hidup ASD adalah mengacu kepada misi fokus, berbasis fitur, perulangan, timeboxed, risiko, dan tolerasi yang berubah-ubah.

Gambar Skema ASD

ASD ini di kembangkan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri.
3 aktifitas yang di lakukan ASD yaitu sebgai berikut :
  1. Speculation adalah aktivitas 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).
  2. Collaboration adalah aktifitas orang-orang yang bermotivasi tinggi bekerja sama: saling melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
  3. Learning adalah aktivitas tim pembangun sering merasa sudah tahu semua hal tentang proyek. Proses pembelajaran proyek ini bisa dilakukan 3 cara yaitu sebagai berikut :
    1. Focus group adalah klien dan pengguna memberi masukan terhadap software.
    2. Formal Technique Reviews adalah tim ASD lengkap melakukan review.
    3. Postmortems adalah tim ASD lakukan instrospeksi pada kinerja dan proses.
Jadi, bisa diambil kesimpulan bahwa metodologi ASD ini merupakan aktivitas tim pengembanhan software yang pertama di tekankan adalah adaptasi atau melakukan pendekatan kepada proyek yang sedang di kerjakan, sama halnya seperti 3 aktifitas ASD yang sebelumnya di jelaskan bahwa untuk melakukan proses metode ASD harus di lakukan Speculation, Collaboration dan Learing yang intinya ketiga aktifitas tersebut bertujuan untuk melakukan adaptasi terhadap suatu proyek pengembangan yang sedang di kerjakan.


Metodologi 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.

Kelebihan Dynamic Software Development Method (DSDM)
  • Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan
  • Membangun software dengan cepat  
  •  DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP
Kelemahan Dynamic Software Development Method (DSDM)
  • Setiap iterasi bergantung pada prototype sebelumya
  • Menentukan scope dari suatu prototype proyek tidak pernah selesai
  • Dokumentasi sering kali tidak lengkap fokus pada pembuatan prototype
  • Isu-isu mengenai system backup and recoverysystem performance dan system security kurang/tidak diperhatikan dan sering terlupakan

Metodologi Scrum

Scrum adalah iteratif dan pengembangan perangkat lunak kerangka kerja tambahan tangkas untuk proyek-proyek perangkat lunak dan mengelola produk atau pengembangan aplikasi. Fokusnya adalah pada "strategi, pengembangan produk fleksibel holistik di mana tim pengembangan bekerja sebagai sebuah unit untuk mencapai tujuan bersama" sebagai lawan dari "pendekatan tradisional, berurutan".
Kelebihan dan Kekurangan Scrum


1). Kelebihan
-          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
2). Kekurangan
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.



Metodologi Agile Modeling


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.
–       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

Kelebihan
·         Meningkatkan kepuasan kepada klien.
·         Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
·         Pembangunan system dibuat lebih cepat.
·         Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
·         Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan
·         Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
·         Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
·         Tidak cocok dalam skala tim yang besar (>20 orang).
·         Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.