Agile: Extreme Programming, Acceptance Test Driven Development, dan Crystal Clear

 

Agile: Extreme Programming, Acceptance Test Driven Development, dan Crystal Clear

 

1. EXTREME PROGRAMMING (XP)      

Model pengembangan perangkat lunak Agile berjenis Extreme Programming (XP) adalah metode pemrograman yang berfokus pada adaptasi pengembangan perangkat lunak yang disebabkan oleh permintaan klien yang cepat berganti.[1]

                Model pengembangan perangkat lunak ini ditemukan oleh Kent Beck dan Ward Cunningham di tahun 1996 berdasarkan pengalaman Kent Beck yang sempat dipekerjakan Chrysler untuk pengembangan Chrysler Comprehensive Compensation System (C3). Saat itulah ia menemukan banyak masalah mengenai sistem tersebut. Projek C3 dianggap gagal setelah 3 tahun lamanya (1999). Walau demikian, metode yang dipakai (yang kemudian disebut extreme programming) memiliki keunggulan, yakni meningkatkan produktifitas dan kualitas program. Hal ini bisa terjadi dikarenakan implementasi prinisip pengembangan perangkat keras dalam tahap pengembangan tersebut, yaitu dengan pengembangan secara bertahap. [2]

Prinsip pengembangan perangkat lunak extreme programming dilaksanakan sebagaimana berikut:

  • Perencanaan
  • Manajemen
  • Desain
  • Pemrograman
  • Pengujian

Berdasarkan dari lima prinsip diatas, tujuan extreme programming antara lain: [3]

  • Desain yang sederhana, tidak boleh berlebihan.
  • Menjalin komunikasi antara klien dan pengembang, sangatlah penting.
  • Pengujian bertahap untuk mencari masalah.
  • Refaktorisasi untuk menghadapi perubahan permintaan klien.
  • Menerima feedback dari klien.

Kelebihan dari metodologi extreme programing antara lain:

  1. Hanya mengerjakan yang perlu saja
  2. Lebih dekat dengan klien
  3. Perangkat lunak yang lebih stabil
  4. Mencegah kemungkinan galat dengan pemrograman berpasangan (2 orang 1 komputer)
  5. Program bisa dirubah dengan cepat
  6. Program mudah dimengerti
  7. Tidak adanya lembur memungkinkan para pemrogram untuk lebih rileks

 

Dibalik keunggulan, pasti ada yang namanya kelemahan, kelemahan dari metodologi extreme programming antara lain:

  1. Klien tidak bisa bersantai (harus aktif bertemu)
  2. Membutuhkan waktu yang lama
  3. Kerja tambahan yang bisa sangat menganggu developer (jika sering revisi)
  4. Mahal karena klien tidak bisa santai (harus aktif bertemu)
  5. Memerlukan sistem revisi versi
  6. Kedisplinan yang tinggi. [4]

 

2. Acceptance Test Driven Development     

Acceptance Test Driven Development adalah cara pengujian perangkat lunak dengan melibatkan 3 pihak, yakni klien, programmer, dan penguji.

                Teknik pengujian perangkat lunak ini menggunakan sudut pandang dari pengguna, dimana tujuan utamanya adalah “apa kode ini berjalan?”. Tes ini menggunakan bahasa Inggris atau bahasa derivatif dari bahasa Inggris yaitu Gherkin.

Teknik pengujian Acceptance Test Driven Development bekerja sebagai berikut:

  • Merumuskan skenario dalam pemakaian program.
  • Menentukan kriteria dan kebutuhan yang disetujui dalam penggunaan program.
  • Tes secara otomatis berdasarkan kriteria tersebut.
  • Mengembangkan program agar sesuai dengan kriteria.

Manfaat dari ATDD antara lain:

  • Kriteria dan kebutuhan bisa dipahami dengan baik tanpa ada ketidakjelasan
  • Memacu kerjasama antar anggota tim
  • Tes ini bisa dijadikan acuan dalam tahap pengembangan[5]

 

3. Crystal Clear        

Model pengembangan perangkat lunak Agile berjenis Crystal Clear adalah metode pemrograman yang berfokus pada orangnya, bukan proyeknya. Metode ini bagus untuk tim kecil yang berjumlah kurang dari 10 orang.[6]

                Model pengembangan perangkat lunak ini ditemukan oleh Alistair Cockburn. Di tahun 1991 ia mempelajari tim proyek untuk mencari model pengembangan perangkat lunak yang terbaik. Saat itulah ia menyadari bahwa tim yang berfokus pada orangnya lebih baik dibandingkan dengan yang berfokus pada proyeknya. Pada akhirnya, 3 tahun kemudian (1994), ia pun menulis buku berjudul “Surviving Object-Oriented Projects”. Di tahun 1998, ia pun membuat grup strategi bernama “Crystal”, yang paling luwes adalah “Crystal Clear”. Idenya? Dengan tim kecil diharapkan hasil proyeknya lebih baik.

Ada 7 Prinsip pengembangan perangkat Crystal Clear sebagaimana berikut:

  1. Sering memberikan kode yang berjalan semestinya.
  2. Introspeksi diri.
  3. Komunikasi yang baik. Disarankan satu ruangan.
  4. Menghormati pendapat orang lain.
  5. Fokus.
  6. Dengarkan pendapat ahli.
  7. Kondisi harus mendukung dengan adanya tes otomatis, integrasi berkala, dan pengaturan konfigurasi.[7]

 

Siklus dari pengembangan Crystal Clear ada 3: estimasi, pengembangan, dan selebrasi. Proses ini membutuhkan waktu 1-3 bulan (tidak 100% akurat karena ada faktor lain yang perlu diperhatikan juga)

  1. Desain yang sederhana, tidak boleh berlebihan.
  2. Menjalin komunikasi antara klien dan pengembang, sangatlah penting.
  3. Pengujian bertahap untuk mencari masalah.
  4. Refaktorisasi untuk menghadapi perubahan permintaan klien.
  5. Menerima feedback dari klien.

Kelebihan dari metodologi Crystal Clear antara lain:

  1. Fleksibel.
  2. Prioritas tinggi terhadap pemberian kode berkala.
  3. Tidak perlu banyak orang.
  4. Teamwork lebih baik karena Crystal Clear menganjurkan untuk berkomunikasi satu sama lain.
  5. Kontrak dengan harga tetap.

Dibalik keunggulan, pasti ada yang namanya kelemahan, kelemahan dari metodologi crystal clear antara lain:

  1. Prinsip yang diikuti setiap tim berbeda dan bisa membingungkan.
  2. Tidak baik jika komunikasi terjadi di area dan kondisi dimana lebih sulit dikerjakan.
  3. Sulit untuk berganti cara pengerjaan di tengah-tengah saat proyek dikerjakan.[8]


 

Sumber:

[1]https://www.it-jurnal.com/apa-itu-extreme-programming/
[2]http://www.extremeprogramming.org/donwells.html
[3]https://sis.binus.ac.id/2018/04/02/dasar-dasar-extreme-programming-xp/
[4]https://www.ionos.com/digitalguide/websites/web-development/extreme-programming/
[5]https://www.browserstack.com/guide/tdd-vs-bdd-vs-atdd
[6]https://explainagile.com/agile/crystal/
[7]https://www.agilest.org/scaled-agile/crystal-clear/
[8]https://www.toolsqa.com/agile/crystal-method/

Komentar

Postingan populer dari blog ini

In depth review of Chinesium "Bulldozer" H55 Board (ZX-H55M V1.41) / Review mendalam mobo cina "Bulldozer" H55 (ZX-H55M V1.41)

Hanmi Micronics/Micronics

Download NFS Carbon and Underground 1 arcade version