Rabu, 18 Maret 2015

Agile Software Development

1. Agile Modeling

Agile Modeling (AM) merupakan metodologi berbasis praktik untuk pemodelan yang efektif dan dokumentasi perangkat lunak berbasis sistem.
Software Proses
AM adalah kumpulan nilai-nilai, prinsip, dan praktik untuk perangkat lunak pemodelan yang dapat diterapkan pada sebuah proyek pengembangan perangkat lunak secara efektif dan ringan.

Kunci keberhasilan AM

  • memiliki komunikasi yang efektif antara semua stakeholder proyek
  • berusaha untuk mengembangkan solusi yang paling sederhana
  • memenuhi semua kebutuhan anda
  • mendapatkan feedback mengenai usaha anda
  • memiliki keberanian untuk membuat keputusan
  • memiliki kerendahan hati untuk mengakui bahwa Anda tidak mungkin tahu segalanya, bahwa orang lain memiliki nilai untuk menambah upaya proyek.
  • diperlukan adanya komunikasi yang terbuka dan kejujuran pada tim ​​ untuk memastikan kerja sama tim yang efektif.

Driven Development

Macam-macam Agile Modelling

  1. Pengembangan perangkat lunak adaptif (Adaptive Software Development [ASD])
  2. Pengembangan oleh banyak orang atau scrum
  3. Metode pengembangan sistem dinamik (Dynamic Systems Development Method [DSDM])
  4. Kristal
  5. Pengembangan Drive fitur (Feature Drive Development [FDD])
  6. Pengembangan perangkat lunak yang ringkas (Lean Software Development [LSD])
  7. Permodelan cepat (Agile Modeling [AM])
  8. Proses cepat terpadu (Agilr Unified Process [AUP])

2. Agile Proses Model

Agile process memadukan filosofi dan sekumpulan aturan dalam pengembangan software. Aturan-aturan pengembangan software lebih menekankan penyampaian ke pelanggan tentang pendesainan dan analisa software itu sendiri serta komunikasi yang aktif dan berkesinambungan antar developer dan pelanggan.

3. Pengembangan perangkat lunak adaptif

Ø  Pengembangan perangkat lunak adaptif (Adaptive Software Development [ASD]) diusulkan oleh Jim Highsmith
Ø  Sebagai suatu teknik yang dapat digunakan untuk membangun/mengembangkan perangkat lunak dan sistem yang kompleks.
Ø  Menggabungkan 3 fase: spekulasi, kolaborasi dan pembelajaran


4. Model Pengembangan Sistem Dinamik

  •  Menyediakan kerangka kerja untuk membangun dan memelihara sistem/ perangkat lunak melalui penggunaan prototipe (incremental prototype).
  •  Proses perangkat lunak berulang dimana setiap iterasi mengikuti aturan 80 persen dan 20 persen

5. Kristal

Ø  Konsepnya dibuat oleh Allstair Cockburn dan Jim Highsmith
Ø  Menempatkan prioritas tinggi pada “kemampuan bermanuver” untuk mencapai suatu pendekatan pengembangan perangkat lunak.
Ø  Tujuannya adalah untuk memungkinkan team cepat untuk memilih anggota keluarga kristal yg paling sesuai dengan proyek dan lingkungan mereka


6. Pengembangan Kendali Fitur

Dikemukakan oleh Peter Coad dengan orientasi objek. Kemudian dikembangkan oleh Stephen Palmer dan Felsing John. Mengadopsi beberapa falsafah:
a)      Menekankan kolaborasi antara orang-orang pada tim FDD
b)      Mengelola kompleksitas masalah yang menggunakan dekomposisi  berbasis fitur
c)       Melakukan beberapa komunikasi teknis rinci yang menggunakan sarana berbasis teks, verbal dan grafis 

Manfaat Fitur-fitur (FDD)

  • Dapat lebih mudah dipahami dan dapat menemukan ambiguitas, kesalahan atau kelalaian
  • Dapat diatur menjadi pengelompokan hierarkis yang berhubungan dengan bisnis
  • Rancangan dan representasi kode-kode program lebih mudah untuk diperiksa

7. Adaptif Software Development

Dipelopori oleh Jim Highsmith. Karakter yang membedakan :
  • Perencanaan berbasis misi
  •  Fokus berbasis komponen
  • Menggunakan “time-boxing”
  • Konsideran eksplisit pada resiko
  •  Menekankan kolaborasi bagi pengumpulan kebutuhan
  • Menekankan pembelajaran melalui proses

Proses :

ASD Spekulasi

  • Menggunakan adaptive cycle planning
  • Menggunakan user mission statement, project constraints.
  • Setelah siklus pertama,rencana dikaji ulang dan disesuaikan agar proyeknya sesuai dengan realita dimana team ASD bekerja 

ASD Kolaborasi

  • Meliputi komunikasi dan kerjasama antar team tetapi tetap menekan individualis.
  • Mengumpulkan kebutuhan dengan mini specs.

ASD Learn

  • Menggunakan Focus group dan Formal Technical Review.
  • Melakukan evaluasi ulang

8. Pemrograman Extreme

Definisi XP

sebuah model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel.

Nilai-nilai Dasar XP

  • Communication : XP memfokuskan pada hubungan komunikasi yang baikanta anggota tim.
  • Courage : Para anggota tim dan penanggungjawab pengembangan perangkat lunak harus selalu memiliki keyakinan dan integritas dalam melakukan tugasnya.
  • Simplicity : gunakan method yang pendek dan simpel, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya, dan berbagai proses penyederhanaan lain akan selalu menjadi nilai utama dari setiap aspek XP.
  • Feedback : berikan selalu feedback kepada sesama anggota tim maupun pihak-pihak lain yang terlibat dalam pengembangan perangkat lunak.
  • Quality Work : semua ini diatas berujung pada sebuah kondisi dimana kita melakukan pekerjaan dengan berkualitas.

Aspek Dasar XP

  1. The planning game
  2. Small releases
  3. Metaphor
  4. Simple design
  5. Refactoring
  6. Testing
  7. Pair programming
  8. Collective ownership
  9. Coding standard
  10. Continous integration
  11. 40 hours week
  12. On site customer

The planning games

pada XP proses ini menggunakan terminologi "game" karena Beck menyarankan untuk menggunakan teknik score card dalam menentukan requirements. Semakin sulit aspek teknis yang dibutuhkan semakin tinggi pula score cardnya.

Metaphor

metaphor, walaupun mirip dengan arsitektur lebih bersifat dan deskriptif. Dengan demikian diharapkan komunikasi antara klien dengan developer akan berlangsung lebih baik dan lancar dengan penggunaan metaphor.

Simple design

Pada XP desain dibuat dalam lingkup kecil dan sederhana. Dengan desain yang simpel apabila terjadi perubahan maka membuat desain baru untuk mengatasi perubahan tersebut dapat dengan mudah dilakukan dan resiko kegagalan desain dapat diperkecil.

Refactoring

Melakukan perubahan pada kode program dari perangkat lunak dengan tujuan meningkatkan kualitas dari struktur program tersebut tanpa mengubah cara program tersebut bekerja. Dengan Refactoring tim pengembang dapat melakukan berbagai usaha untuk meningkatkan kualitas program tanpa kembali mengulang-ulang proses desain.

Testing 

Jika pada pengembangan perangkat lunak lainnya tes baru dikembangkan setelah perangkat lunak selesai menjalani proses coding maka pada XP tim pengembang harus membuat terlebih dahulu tes yang hendak dijalani oleh perangkat lunak.

  • Sikuls pada XP adalah requirement analysis à test à code à design

Pair programming

melakukan proses menulis program dengan berpasangan.

Coding standard

Dengan adanya coding standards yang telah disepakati terlebih dahulu maka pemahaman terhadap program akan menjadi mudah untuk semua programer dalam tim.

Continous integration

Dengan melakukan build sesering mungkin berbagai kesalahan pada program dapat dideteksi dan diperbaiki secepat mungkin. Pada XP tim disarankan untuk melakukan build sesering mungkin misalnya setiap 4 jam atau bahkan lebih cepat lagi.

9. Scrum

Scrum adalah sebuah proses agile yang memungkinkan kita untuk memfokuskan diri guna menghasilkan produk dengan nilai ekonomi paling tinggi dalam jangka waktu yang sangat pendek. Dalam jangka waktu tertentu semua pihak dapat melihat sebuah software  yang dapat bekerja dan memutuskan untuk merilis software sebagaimana adanya atau melanjutkan untuk mengembangkannya di sprint  berikutnya.
 Keterangan :
  • Product Backlog : Fitur-fitur yang di catat sebagai item dan diurutkan berdasarkan pioritasnya
  • Sprint Backlog : Backlog yang memiliki pioritas lebih tinggi untuk di kerjakan oleh tim scrum berdasarkan spesialisasi masing-masing
  • Daily Meetings : Meeting yang wajib dilakukan oleh Scrum master dan di hadiri oleh anggotatim untuk menjawab pertanyaan sebagai evaluasi hasil kerja per 24 jam. Tiga pertanyaan kunci :

  1. Apa yang anda lakukan sejak pertemuan terakhir tim ?
  2. Kendala apa yang anda hadapi ?
  3. Apa yang akan anda lakukan hari ini ?

  • Potentially product shipping increment  : yaitu setiap backlog atau product yang telah selesaidikerjakan selama sprint dan di demonstasikan ke product owner

Sejarah Scrum

a.) Jeff Sutherland

  • Dimulai di Easel Corp pada tahun 1993
  • IDX dan 500+ orang melakukan Scrum

b.) Ken Schwaber

  • ADM
  • Scrum dipresentasikan di OOPSLA pada tahun 96 dengan Sutherland
  •  Penulis 3 buku mengenai Scrum

c.) Mike Beedle

  • Scrum patterns di PLOPD4

d.) Ken Schwaber dan Mike Cohn

  • Mendirikan Scrum Alliance pada tahun 2002 yang awalnya bagian dari Agile Allianc
Karakteristik Scrum
Kelebihan dan Kekurangan Scrum

Software yang menggunakan scrum

  1. Software komersil
  2. Pengembangan internal
  3. Proyek dengan kontrak
  4. Aplikasi keuangan
  5. Aplikasi yang tersertifikasi ISO 9001, dll

10. Dynamic System Development Model (DSDM)

Dipromosikan oleh konsorsium DSDM. Mirip dalam banyak dengan XP dan/atau ASD. Sembilan prinsip-prinsip panduan :
  • Pelibatan user secara aktif adalah keharusan.
  • Tim DSDM harus diberdayakan untuk mengambil keputusan.
  • Fokus pada penyajian produk sesering mungkin.
  • Penerimaan dari tujuan bisnis adalah kriteria esensial untuk penerimaan penyajian.
  • Pengembangan bertahap dan berulang dibutuhkan untuk fokus pada solusi bisnis yang akurat
  • Semua perubahan selaman pengembangan dapat dibalik.
  • Kebutuhan adalah dasar pada level tinggiPengujian terintegrasi dalam siklus kehidupan 
 
Sumber: http://arekget.blogspot.com/2013/01/bab-3-pengembangan-dan-implementasi.html

Tidak ada komentar:

Posting Komentar