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.
  1. Adaptive Software Development (ASD)
    • Diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks.
    • Filosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri.
    • Aktifitas: Speculation, Collaboration dan Learning
    • Aktifitas Speculation : 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)
    • Aktifitas Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: salingmelengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif.
    • Aktifitas Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek,padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui 3 cara:
      • Focus group: klien dan pengguna memberi masukan terhadap software
      • Formal Technique Reviews: Tim ASD lengkap melakukan review
      • Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses 


  2. 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.
    • Membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
    • Aktifitas: feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
    • Aktifitas: Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
    • Aktifitas: Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
    • Aktifitas: Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
    • Aktifitas: Implementation: menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan.
    • DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.


  3. Scrum
    • Diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an
    • Pengembangan berikutnya dilakukan oleh Schwaber dan Beedle
    • Scrum memiliki prinsip:
      • Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
      • Proses 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
    • Aktifitas Scrum : Backlog, Sprints, Scrum Meetings, Demo
    • Aktifitas Backlog : Backlog adalah daftar kebutuhan yang jadi prioritas klien. Daftar dapat bertambah
    • Aktifitas Sprints: unit pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-box (biasanya 30 hari). Selama proses ini berlangsung backlog tidak ada penambahan
    • Aktifitas Scrum Meeting: pertemuan 15 menit perhari untuk evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selanjutnya
    • Aktifitas Demo:penyerahan software increment ke klien didemonstrasikan dan dievaluasi oleh klien


  4. Agile Modeling (AM)
    • banyak situasi pembangun 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.
    • AM adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan sistem software
    • AM adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif
    • Prinsip dalam AM :
      • 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 lokal


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


  6. Feature Driven Development (FDD)
    Merupakan model proses praktis untuk keahlian proses software engineering, Feature merupakan sebuah fungsi yang berharga dimana dapat dilaksanakan. 
    Keuntungan dari metode FDD :
    • 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.


  7. Lean Software Developments (LSD)
    Lean software development adalah suatu proses engineering yang digunakan untuk mengembangkan dan menghasilkan suatu software berkualitas tinggi yang telah terjamin kehandalannya sehingga tidak terjadi kegagalan dalam penggunaan software tersebut. Lean software development ini berpedoman pada pemahaman lapangan dan kesesuaian pelaksanaan prinsip lean disepanjang seluruh proses pengembangan software. Slogan yang dipakai yaitu berpikir besar, bertindak kecil, gagal cepat, belajar cepat.
    7 Prinsip LSD :
    • Eliminate waste (Mengeliminasi Ketidak Effisienan)
    • Amplify learning (Mengamplifikasi pembelajaran)
    • Decide as late as possible (Menentukan keterlambatan sebagai hal yang mungkin)
    • Deliver as fast as possible (Mengantarkan Secara cepat sebagai hal yang mungkin)
    • Empower the team (Memberdayakan team)
    • Build integrity in (Membangun integritas)
    • See the whole (Melihat secara kesatuan/keseluruhan.)


  8. Agile Unified Process
    merupakan suatu metode pembangunan sistem secara objek oriented yang dikembangkan oleh Rational Rose, bagian dari IBM. Secara luas, AUP telah diakui sebagai standar metodologi pengembangan sistem berorientasi objek. Vesri alsi dari UP didefinisikan sangat rumit untuk setiap kegiatan. Namun versi terbaru dari UP yakni metodologinya lebih sederhana. Ciri utama metode ini adalah menggunakan use-case driven dan pendekatan iteratif untuk siklus pengembangan perangkat lunak.
    AUP tepat digunakan saat kondisi:
    • Pengembangan perangkat lunak yang berorientasi objek dengan berfokus pada UML (Unified Modeling Language )
    • Mempunyai waktu pengembangan yang panjang
    • Dikembangkan pada perangkat lunak sebagai sarana interaksi antara pengguna dan perangkat keras
    • Mempunyai tim programmer yang cukup banyak
    • Pengembangan dan perubahan perangkat lunak berdasarkan kebutuhan user

0 komentar:

Posting Komentar