Extreme programming atau sering disingkat XP merupakan salah satu metode pengembangan perangkat lunak yang berbasis Agile. Artinya extreme programming merupakan satu dari sekian banyak metodologi yang dapat digunakan untuk menerapkan prinsip pengembangan perangkat lunak berbasis agile. Agile sendiri adalah prinsip pengembangan perangkat lunak yang mengutamakan adaptasi terhadap perubahan, mementingkan fungsional aplikasi dari pada dokumentasi, dan prinsip-prinsip agile lainnya.

Terdapat banyak metodologi atau kerangka kerja yang dapat digunakan untuk mengembangkan perangkat lunak. Namun, hari ini kebanyakan metode pengembangan perangkat lunak yang digunakan adalah metode-metode yang berasaskan agile, seperti Scrum, Kanban, dan extreme programming. Hal ini karena Agile dianggap sebagai prinsip pengembangan yang disruptif yang berhasil menggantikan metode-metode yang telah mapan sebelumnya seperti metode waterfall.

Extreme programming merupakan salah satu metode agile yang cukup banyak digunakan, terutama pada proyek pengembangan aplikasi dalam skala kecil. Hal ini karena metode ini terhitung cukup sederhana dan ringkas namun tetap mengaplikasikan berbagai prinsip agile yang dianggap break through dalam meningkatkan efisiensi serta efektivitas pengerjaan pengembangan perangkat lunak. Metode extreme programming sangat sesuai jika dihadapkan dengan requirement yang tidak jelas maupun terjadi perubahan-perubahan yang sangat cepat (Supriyatna, 2018).

Lalu sebetulnya seperti apa metodologi XP ini? Bagaimana langkah-langkah dalam mengaplikasikannya? Apa saja kelebihan dan kekurangannya? Berikut adalah berbagai pemaparan mengenai extreme programming dimulai dari definisinya terlebih dahulu.

Definisi Extreme Programming

Extreme programming adalah salah satu metodologi dari pendekatan agile software Development yang berfokus pada coding sebagai aktivitas utama disemua tahap pada siklus pengembangan yang lebih responsif terhadap kebutuhan customer dan membangun suatu software dengan kualitas yang lebih baik pula.

Menurut Pratama (2017, hlm. 93) Extreme Programming (XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel.

Sementara itu, menurut Prabowo (2013, hlm. 2) Extreme programming merupakan sebuah proses rekayasa perangkat lunak yang cenderung menggunakan pendekatan berorientasi objek dan sasaran dari metode ini adalah tim yang dibentuk dalam skala kecil sampai medium serta metode ini juga sesuai jika tim dihadapkan dengan requirement yang tidak jelas maupun terjadi perubahan-perubahan requirement yang sangat cepat.

Dapat tarik simpulan bahwa metode extreme programming (XP) merupakan metode pengembangan perangkat lunak yang ringan dan mengimplementasikan agile yang lebih cenderung menggunakan pendekatan berorientasi objek serta lebih mengedepankan proses pengembangan yang lebih responsif terhadap kebutuhan pengguna.

Pertanyaannya adalah objek apa yang dimaksud? Seperti apa sebetulnya paradigma berorientasi objek dalam extreme programming? Berikut adalah pemarannya.

Objek pada Extreme Programming

Objek yang dimaksud pada extreme programming sejatinya mengacu pada pemrograman berorientasi objek (PBO) atau dalam bahasa Inggris dikenal sebagai object-oriented programming (OOP). Pemrograman berorientasi objek adalah paradigma pemrograman berdasarkan konsep “objek” yang dapat berisi data, dalam bentuk field atau dikenal juga sebagai atribut; serta kode, dalam bentuk fungsi/prosedur yang dikenal sebagai method. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.

Mudahnya, extreme programming merupakan metode pengembangan aplikasi yang banyak digunakan oleh tim atau programmer yang menggunakan paradigma berorientasi objek. Sebetulnya, tidak ada hubungan langsung antara paradigma pemrograman berorientasi objek dengan metodologi XP. Hanya saja, pada masa perkembangan XP, OOP juga merupakan paradigma pemrograman yang tengah naik daun karena mampu menghasilkan kode yang efisien. Hal tersebut karena setiap algoritma pada perangkat lunak dapat dibungkus pada method yang dapat digunakan ulang (reusable function/method) jika kita membutuhkan logic yang sama namun memiliki atribut yang berbeda.

Nilai Utama XP

Hal pertama untuk mengaplikasikan extreme programming adalah memahami berbagai nilai utama yang harus dijalankan dalam menggunakan metode ini. Hal tersebut karena nilai-nilai ini mendasar pada setiap tahapan atau langkah dari metode XP. Nilai-nilai utama dari extreme programming adalah Communications, courage, simplicity, dan feedback yang akan dijelaskan di bawah ini.

  1. Komunikasi (komunikasi)
    XP memfokuskan pada hubungan komunikasi yang baik antar anggota tim. Par aanggota tim harus membangun saling pengertian, berbagi pengetahuan, serta keterampilan dalam mengembangkan perangkat lunak.
  2. Courage (Keberanian)
    Anggota tim dan penanggungjawab pengembang perangkat lunak harus selalu memiliki keyakinan dan integritas dalam melakukan tugasnya. Integritas haruslah dijaga bahkan dalam kondisi adanya tekanan dari situasi sekitar (termasuk klien/pengguna).
  3. Simplicity (Kesederhanaan)
    Lakukan segalanya dengan sederhana. Hal ini merupakan salah satu nilai utama XP, yakni menggunakan metode yang pendek dan simpel. Misalnya, jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak memiliki nilai guna.
  4. Feedback (Umpan balik)
    Selalu berikan feedback kepada sesama anggota tim, maupun pihak-pihak lain yang terlibat dalam pengembangan perangkat lunak. Utarakan selalu pikiran kita dan diskusikan berbagai kesalahan yang muncul selama proses pengembangan (Prabowo, 2020, hlm. 77).

Tahapan Extreme Programming

Terdapat empat kerangka kegiatan dalam tahapan pelaksanaan extreme programming. Empat kerangka kegiatan dari tahapan extreme programming adalah sebagai berikut.

  1. Planning
    Kegiatan planning atau perencanaan dimulai dengan mengumpulkan berbagai requirement dari perangkat yang akan dikembangkan. Hal ini dilakukan agar anggota tim memahami konteks bisnis perangkat lunak dan untuk mendapatkan pandangan umum terhadap output dan fungsi utama dari perangkat lunak. Hal ini akan mengarah ke penciptaan suatu “story” atau kisah kebutuhan pengguna untuk mendeskripsikan ouput, fitur, dan fungsi dari aplikasi yang akan dikembangkan.
  2. Design
    Proses desain pada metodologi XP mengikuti prinsip KIS (keep it simple). Desain yang sederhana selalu dipilih dibandingkan dengan desain yang kompleks. Berbagai desain fungsi tambahan yang tidak diperlukan namun developer merasa nantinya akan diminta oleh pengguna tidak boleh dibuat. Hal ini karena XP menerapkan penggunaan CRC (class responsibility card) sebagai mekanisme yang efektif untuk memikirkan mengenai software dalam konteks berorientasi objek. CRC akan mengidentifikasi dan mengorganisasikan class berorientasi objek yang sesuai dengan peningkatan software. Artinya, berbagai desain fitur tambahan tersebut lebih dikembangkan ketika memang dibutuhkan (ketika diminta). Jika terjadi masalah dalam pembuatan desain story pengguna, maka dalam XP akan direkomendasikan suatu solusi yang disebut sebagai spike solution. Spike solution adalah pembuatan segera suatu prototype operasional dari sebagian desain yang mengalami masalah.
  3. Coding
    Setelah story pengguna dan desain kerangka kerja wal selesai, tim XP tidak akan segera melanjutkan ke tahap coding, melainkan mengembangkan serangkaian tes unit yang akan dijalankan pada setiap story yang akan dibuat. Saat unit tes telah dibuat, developer akan lebih fokus pada apa yang harus dibuat untuk melewati tes tersebut. XP merekomendasikan konsep Pair Programming atau pemrograman berpasangan, yakni dua orang bekerja bersama dalam penulisan kode atau program untuk satu story. Hal ini memberikan kesempatan lebih besar pada pemecahan masalah yang lebih cepat karena kolaborasi dari dua programmer yang menulis coding yang sama.
  4. Testing
    Setelah tahapan pengkodean selesai maka dilakukan tahapan pengujian sistem untuk mengetahui berbagai kesalahan yang timbul saat aplikasi sedang berjalan serta untuk memastikan apakah perangkat lunak yang dibangun telah sesuai dengan story kebutuhan pengguna.

Kelebihan dan Kekurangan Metode XP

Berikut adalah beberapa kelebihan dan kekurangan dari metode extreme programming.

Kelebihan

  1. Jika pair programming dilakukan, maka developer berpotensi untuk didampingi langsung oleh pihak klien dalam melakukan coding dan unit testing, sehingga klien terlibat langsung serta menghilangkan miskomunikasi antara klien (pengguna) dan programmer.
  2. Karena mengutamakan kesederhanaan, maka metodologi XP akan membangun komunikasi yang lebih lancar serta menyederhanakan penjelasan-penjelasan yang dibutuhkan dalam proses pengerjaan perangkat lunak.
  3. Setiap feedback langsung ditanggapi dengan melakukan test, sehingga tidak akan terjadi pembengkakan tenaga, biaya, dan waktu yang terbuang percuma karena kesalahan penangkapan feedback dari klien.
  4. Memberikan banyak ide baru dan keberanian untuk mencobanya.

Kekurangan

  1. Developer harus selalu siap dengan perubahan, karena xp merupakan metodologi yang selalu menerima perubahan, termasuk perubahan yang tiba-tiba di waktu yang terbatas.
  2. Tidak dapat membuat kode yang detail sedari awal karena prinsip simplicity memberikan anjuran untuk melakukan apa yang diperlukan pada saat itu juga, tidak boleh lebih awal atau lebih lambat.

Referensi

  1. Prabowo, Mei. (2020). Metodologi Pengembangan Sistem Informasi. Salatiga: LP2M IAIN Salatiga.
  2. Prabowo, S. A. (2013). JURNAL TEKNIK POMITS .Rancang Bangun Aplikasi Web Informasi Eksekutif Pada Pemerintah Kabupaten XYZ. Vol.2,No.3: 2.
  3. Pratama, I. A. (2017). Sistem Informasi dan Implementasinya. Bandung: Informatika Bandung.
  4. Supriyatna, A. (2018). Metode Extreme Programming pada Pembangunan Web Aplikasi Seleksi Peserta Pelatihan Kerja. Jurnal Teknik Informatika, II(I), 1-18. https://doi.org/10.15408/jti.V11il.6628

Join the Conversation

2 Comments

Leave a comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *