Apa itu Extreme Programming ??

DAFTAR ISI

Kita pasti sudah mengenal istilah programmer, yaitu orang yang membuat suatu program aplikasi/software. Dalam pembuatan software itu sendiri bisa dilakukan secara kelompok atau sendirian tergantung tingkat kesukarannya. Dalam pembuatan software biasanya terbagi jadi beberapa kelompok yang mengerjakan hal yang berbeda. Ada yang membuat program, ada yang melakukan uji coba dan ada juga yang melakukan implementasi. Lalu apa hubungannya dengan “Extreme Programming” ?

Pengertian Extreme Programming

Extreme Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan bermacam-macam langkah dalam proses pengembangan itu sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berkonsentrasi pada coding tetapi meliputi seluruh tempat pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.

XP Pertama kali diusulkan oleh Kent Beck dan Ward Cunningham di bulan Maret 1996, asal mula XP digunakan karena di masa itu permintaan dari customer yang sering berubah dengan cepat sehingga mengakibatkan putaran kehidupan metode pengembangan perangkat lunak tradisional menjadi lebih pendek dan tidak selaras dengan metode tradisional karena pada umumnya memerlukan desain yang luas dan itu mengakibatkan perubahan desain yang terjadi dan tentu saja memerlukan biaya yang lebih tinggi. Tujuan XP adalah mengurangi biaya yang diperlukan jika ada perubahan dalam pengembangan perangkat lunak.

Aspek dasar XP terdiri atas beragam teknik atau metode yang diterapkan Beck dan Jeffries pada C3 Project. Teknik-teknik itu antara lain:

  • Whole Team

Seluruh kontributor dalam proyek yang menggunakan pendekatan XP duduk bersama sebagai suatu tim. Tim ini terdiri beberapa peran, antara lain programmer, penguji, orang yang mengerti bisnis, analis, manajer, dan lain-lain. Setiap peran yang ada tidak mutlak jadi peran dari satu orang saja. Tim terbaik dalam XP tak harus memiliki ahli, hanya kontributor umum dengan keterampilan khusus saja. Semua orang di tim XP memberikan kontribusi dengan cara apapun yang mereka dapat lakukan.

  • Planning game
Baca Juga:  Pengertian CMS (Content Management System)

Perencanaan dalam XP mengemukakan dua pertanyaan kunci dalam pengembangan perangkat lunak, yaitu memprediksi apa yang akan dicapai di waktu tertentu, dan menentukan apa yang harus dilakukan setelah itu. Ada dua langkah kunci dalam perencanaan XP, yang menangani dua pertanyaan itu:

  1. Release Planning yaitu praktik dimana customer mengutarakan fitur yang diinginkannya ke programer, dan programer memperkirakan tingkat kesukarannya. Dengan estimasi biaya di tangan, dan dengan pengetahuan tentang pentingnya fitur yang diinginkan, Pelanggan meletakkan satu rencana untuk proyek itu. Rencana rilis awal yang kerap tepat baik prioritas maupun perkiraan yang benar-benar solid, dan sampai tim mulai bekerja, kita tidak akan tahu seberapa cepat mereka akan pergi. Bahkan rencana rilis pertama cukup akurat untuk pengambilan keputusan, namun tim XP melakukan revisi terhadap rencana rilis secara teratur.
  2. Iteration Planning adalah praktik di mana tim diberikan petunjuk atau arahan setiap beberapa minggu sekali. Tim XP membangun perangkat lunak dalam “iterasi” dua minggu, memberikan menjalankan perangkat lunak yang berguna pada setiap akhir iterasi. Selama Iteration Planning, customer mengutarakan fitur yang diinginkan selama dua minggu ke depan. Para programer memecahnya ke dalam pekerjaan yang lebih kecil, dan memperkirakan biaya yang diperlukan.
  • Customer Test

Sebagai bagian dari presentasi setiap fitur yang diinginkan, customer XP mengartikan satu atau lebih tes penerimaan otomatis untuk menerangkan bahwa fitur itu bekerja dengan baik. Tim membangun tes ini dan menggunakannya untuk membuktikan pada kepada customer bahwa fitur ini telah diterapkan dengan benar. Tes dengan otomatis ini penting karena dalam XP hanya diberikan waktu yang singkat sehingga tes manual tidak akan digunakan karena menghabiskan waktu yang lama.

  • Small Release
Baca Juga:  Static Method didalam Class Javascript

Pada setiap Iterasi, tim mengerjakan sebuah unit atau bagian dari perangkat lunak, melakukan tes terhadap unit perangkat lunak yang dibangun, kemudian di akhir iterasi perangkat lunak yang dibangun diberikan kepada customer. Oleh customer, perangkat lunak ini bisa dijadikan bahan evaluasi maupun langsung dirilis kepada end user. Bisa pula tim XP langsung merilis ke end user secara rutin.

  • Simple Design

Tim XP membangun perangkat lunak dengan desain yang sederhana. Dimulai dengan desain yang sederhana, kemudian melalui pengujian program dan perbaikan desain. Desain yang dibuat harus benar-benar sesuai bagi fungsi saat ini dari sistem sehingga tidak ada yang sia-sia dan perangkat lunak siap dikembangkan lagi selanjutnya. Namun, pembuatan desain dalam XP tidak dilakukan hanya sekali. Langkah desain dalam Extreme Programming yang menghasilkan desain yang baik dianggap sangat penting, sehingga selama proses development banyak difokuskan ke langkah desain.

  • Pair Programming

Semua perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang programmer. Keduanya duduk berdampingan di satu komputer yang sama. Seorang programmer akan membuat code dan programmer yang lainnya akan mengoreksinya. Praktik seperti ini mungkin tampak tidak efisien. Namun dari sisi hasil dari pair programming, desain bakal lebih bagus, pengujian lebih baik, dan code yang dihasilkan pun bakal lebih bagus.

  • Test-Driven Development

XP begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak, umpan balik yang baik mensyaratkan pengujian yang baik pula. Test-Driven Development bergantung pada pengulangan siklus development yang sangat pendek. Pertama tim XP akan menuliskan automated test case yang mengartikan perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case itu dihasilkan jumlah minimal code yang mesti dituliskan untuk lulus tes itu. Setelah itu melakukan refactoring code baru agar memenuhi standar baru.

  • Design Improvement
Baca Juga:  Membuat Pengulangan Bersyarat di PHP

XP berkonsentrasi pada memberikan nilai bisnis dalam setiap perulangan. Supaya dapat mencapai tujuan itu selama proyek berlangsung, perangkat lunak harus dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus dengan Refactoring. Proses refactoring berkonsentrasi pada penghapusan duplikasi dari code yang telah dibuat. Disamping itu, proses refactoring didukung dengan pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat berkembang dan tiidak ada yang rusak.

  • Continuous Integration

Beberapa kali dalam 1 hari, tim XP akan menggabungkan seluruh salinan pekerjaan tim jadi satu dalam jaringan utama. Sehingga tim XP harus menjaga tim agar terintegrasi setiap saat.

  • Collective Code Ownership

Pada proyek XP, setiap pasang programmer dapat meningkatkan code apapun setiap saat. Semua code yang ada dimiliki secara kolektif oleh tim. Manfaatnya setiap code akan mendapat perhatian dari banyak orang, sehingga dapat meningkatkan kualitas code dan mengurangi cacat. Disamping itu dapat mengurangi duplikasi code yang sama walaupun dibuat oleh pasangan programmer yang berbeda.

  • Coding Standard

Setiap anggota tim XP harus mengikuti standar coding yang biasa, sehingga semua code dalam sistem seolah-olah tampak dibuat oleh satu orang yang sangat kompeten. Disamping itu hal ini sangat mendukung Collective Code Ownership.

  • Metaphor

Tim XP akan membuat suatu penjelasan umum bagaimana program yang mereka kembangkan bekerja dengan benar.

  • Sustainable Pace

Tim XP akan bekerjasama dalam rawan waktu lama. Mereka bekerja keras dengan kecepatan tertentu tanpa batas waktu. Tim XP akan bekerja lembur pada hari efektif dan memaksimalkan produktivitas tiap minggunya. Hal ini perlu diperhatikan dengan baik, karena akan mengurangi produktivitas atau sebaliknya menghasilkan perangkat lunak yang berkualitas.

Ebook Gratis!!

Subscribe untuk dapatkan e-book GRATIS dan informasi teknologi terbaru dan diskon menarik langsung di Email-mu

Taufiq
Taufiq
Digital Strategist & System Analyst. Passion dalam teknologi terutama dalam pengembangan aplikasi. Selain itu senang mempelajari digital marketing dan bisnis.
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
WhatsApp chat