Home » Kuliah IT » Extreme Programming: Core Value, Tahapan dan Contohnya

Extreme Programming: Core Value, Tahapan dan Contohnya

Seiring berjalannya waktu kita memahami bahwa teknologi informasi semakin berkembang pesat. Seiring dengan perkembangannya, kebutuhan akan hal tersebut juga semakin meningkat. Banyak pengguna yang menginginkan sesuatu yang lebih lagi untuk memudahkan berbagai macam aktivitas.

Perubahan kebutuhan pengguna sangatlah mempengaruhi pekerjaan dan tugas para pengembang perangkat lunak. Karena hal tersebut, munculah berbagai macam metode yang bersifat fleksibel untuk memecahkan berbagai masalah tersebut, metode tersebut disebut juga dengan Metode Agile.

Adapun salah satu dari Metode Agile yakni Extreme Programming (XP). Pada kesempatan kali ini kami akan membahas secara lengkap mengenai Extreme Programming, mulai dari pengertian, Core Value, beberapa tahapannya, kelebihan dan kekurangan, serta contohnya. Mari simak pembahasan berikut!

Apa Itu Extreme Programming?

Extreme Progamming merupakan salah satu model yang menggunakan pendekatan Agile yang dibuat oleh Kent Back. Secara umum, definisi Extreme Programming itu sendiri merupakan suatu metode pengembangan perangkat lunak yang dianggap cepat dan efisien, memiliki risiko yang rendah, fleksibel, dan juga terprediksi.

Pendekatan yang digunakan oleh Extreme Programming mengarah pada orientasi terhadap objek. Dalam penggunaannya, sasaran yang ditujukan adalah tim yang dengan ukuran dan bentuk yang kecil hingga medium, tanpa adanya tim yang berukuran besar.

Hal di atas bertujuan untuk menyikapi dan menghadapi berbagai macam requirements yang belum jelas maupun berbagai perubahan terhadap requirements itu sendiri dalam jangka waktu yang cepat. XP atau Extreme Programming menjadi salah satu metode agile yang paling umum digunakan sekaligus merupakan pendekatan yang cukup populer.

Core Value Extreme Programming

Di dalam Extreme Programming terdapat beberapa Core Value yang harus kita perhatikan. Beberapa Core Value tersebut antara lain komunikasi, umpan balik, kesederhanaan, keberanian, dan juga respect. Berikut penjelasannya.

  • Komunikasi / Communication

Core Value yang pertama adalah komunikasi. Komunikasi yang dimaksud di sini adalah yang terjadi antara para pengembang dan juga klien. Komunikasi itu sendiri bertujuan agar kedua belah pihak dapat saling memahami.

Lebih tepatnya lagi, dengan adanya komunikasi diharapkan para pengembang dapat mengerti kebutuhan klien serta bagaimana cara pengembang melakukan implementasi dalam kode.

  • Umpan Balik / Feedback

Core Value yang kedua adalah umpan balik yang ditujukan untuk memahami dan mengetahui seberapa jauh kemajuan proses serta seberapa meningkatnya kualitas dari sebuah aplikasi yang sedang dibangun.

Selain itu, adanya informasi yang terkumpul dalam kurun waktu yang cepat dan konsisten, sehingga dapat segera mengetahui masalah apa yang ada dalam pemrograman. Umpan balik ini didapatkan melalui tes, unit tes, serta sistem integrasi.

  • Kesederhanaan / Simplicity

Core Value yang ketiga yakni kesederhanaan yang mana dalam XP kita harus menentukan solusi dan pemecahan masalah yang paling sederhana, praktis, dan mudah. Metode ini akan melakukan eksekusi sesuai dengan permintaan pelanggan, tidak ada yang dilebihkan maupun dikurangi, supaya meminimalisir adanya fitur yang tidak diharapkan.

  • Keberanian / Courage

Nilai yang satu ini juga cukup penting karena setiap anggota tim harus memiliki keberanian untuk membuat ide baru dan tidak takut akan adanya kegagalan. Selain itu, diharapkan para anggota memiliki komitmen dan sikap tidak menunda pekerjaan.

  • Respect

Core Value yang terakhir adalah respect. Diharapkan setiap anggota dapat saling menghormati satu sama lain dan menjalin hubungan yang baik, terutama antara pengembang dan klien. Selai itu, para anggota diharapkan untuk saling menghargai dan menyumbangkan kontribusinya masing – masing.

Tahapan Extreme Programming

Selanjutnya kami akan membahas mengenai beberapa tahapan yang ada di Extreme Programming. Beberapa tahapan yang ada di dalam Extreme Programming antara lain perencanaan, perancangan, pengkodean, dan pengujian. Berikut penjelasan dari masing – masing tahapan XP.

  • Perencanaan / Planning

Di dalam perencanaan terdapat empat aspek utama antara lain menulis sejarah pengguna, release planning creates the release schedule, make frequent small releases, dan the project is divided into iterations.

Pada aspek yang pertama, yakni menulis user story ditujukan sebagai dokumen yang menjelaskan berbagai macam kebutuhan klien yang berguna bagi para pengembang terutama dalam menciptakan sebuah perangkat lunak sekaligus menentukan waktu rilis perangkat lunak itu sendiri.

Para pengembang seharusnya menghindari berbagai rincian spesifik yang berkaitan dengan teknologi yang digunakan sebagai susunan database dan algoritma. Selain itu, diharapkan untuk tetap menjaga user story agar sesuai dengan kebutuhan para penggunanya.

Pada aspek yang kedua yakni release planning creates the release schedule, para pengembang membuat sebuah rencana berdasarkan user story yang sudah ditulis sebelumnya. Para klien akan menentukan user story mana yang hendak diimplementasikan dalam code pada iterasi selanjutnya dan akan diterjemahkan dalam acceptance tests.

Acceptance test itu sendiri dilakukan dengan tujuan melakukan verifikasi bahwa story sudah berjalan dengan baik, sehingga proses dan waktu rilisnya akan segera terjadwalkan.

Make frequent small release ditujukan agar para pengembang dapat merilis versi iterasi yang berasal dari sistem supaya para klien dapat mengerti bahwa proses tersebut sudah dilakukan oleh para pengembang.

Jika sudah, pengembang akan menguji dan hasilnya akan diperlihatkan kepada klien untuk nantinya diputuskan apakah fungsi / sistem dapat masuk diproduksi atau tidak. Para pengembang kemudian akan mendapatkan umpan balik dari klien secepatnya agar dapat segera diperbaiki dan diselesaikan.

Pada aspek yang terakhir, para pengembang diwajibkan untuk membagi proyek dalam beberapa iterasi. Kemudian pengembang harus melakukan evaluasi terhadap setiap proses kerja dalam iterasi tersebut.

Jika sekiranya tugas tidak dapat diselesaikan, iteration planning meeting harus segera dilakukan. Mulai dari perencanaan kembali tugas yang harus dilakukan dalam iterasi serta mengurango beberapa tugas dan harus memusatkan konsentrasi untuk menyelesaikan tugas dari klien.

  • Perancangan / Desain

Sama halnya dengan perencanaan, dalam perancangan juga terdapat beberapa aspek penting yang harus diperhatikan. Aspek yang pertama adalah simplicity. Pada aspek yang pertama ini, para pengembang harus membuat desain sesederhana mungkin supaya waktu penyelesaian singkat.

Aspek yang kedua yakni system metaphorsystem metaphor yang menjadi bentuk komunikasi dua belah pihak antara pengembang dan klien dalam memahami berbagai proses desain perangkat lunak yang nantinya akan dibangung.

Para pengembang akan dituntun dan dipandu oleh klien sesuai dengan desain perangkat lunak yang diharapkan oleh para klien. Dalam aspek ini, mental mode dari anggota tim pengembang harus segera ditentukan supaya menciptakan logical architecture pada sistem yang nantinya akan dibuat.

Aspek yang ketiga adalah CRC Cards atau Class, Responsibilites, and Collaboration cardyang berfungsi untuk mengumpulkan ide para pengembang dalam merancang desain perangkat lunak untuk menentukan class yang diperlukan supaya masing – masing anggota dapat berkontribusi dalam membuat desain.

Aspek selanjutnya adalah Spike Solution yang ditujukan sebagai langkah pemecahan masalah teknis maupun dalam hal melakukan desain. Ketika ditemukan masalah teknis, seluruh pengembang diharapkan untuk dapat menyelesaikan masalah tanpa adanya resiko kegagalan yang dapat terjadi.

Aspek kelima yakni Never Add Functionality Early yang ditujukan untuk menambahkan beberapa fungsi yang memiliki manfaat penting dengan segera. Namun, sebelum itu harus dipikirkan matang – matang sebelum menambahkan fungsi agar tidak membuang waktu.

Aspek yang terakhir adalah Refractoring, yakni para pemrogram memberikan izin perbaikan pada kode program, sekalipun belum direncanakan sebelumnya dengan tujuan optimalisasi kualitas kode program tanpa mengubah konsistensi hasil.

  • Pengkodean / Coding

Tahap selanjutnya adalah pengkodean. Pada tahap ini, klien diharuskan melakukan komunikasi dengan baik kepada para pengembang, bahkan diharapkan setidaknya ada satu orang klien yang bergabung dengan tim pengembang agar permintaan pelanggan dapat terpenuhi.

Kode yang digunakan harus sesuai dengan format yang sebelumnya sudah disetujui dengan tim dan harus ditulis secara konsisten dan mudah dipahami. Dengan adanya format yang sudah disepakati, harapannya kesalahan dapat diminimalisir.

Setelah itu, unit test harus dibuat agar proses pengerjaan menjadi lebih cepat dan mudah. Unit test itu sendiri ditujukan untuk menjelaskan dan menjabarkan apa saja yang harus dibuat dan dilakukan untuk selanjutnya dibuat kode.

Adapun pair programming yang dikerjakan oleh dua pemrogram dalam memecahkan masalah dalam 1 komputer yang sama untuk menghasilkan kode yang berkualitas. Dan XP itu sendiri nantinya akan menggabungkan kode yang telah dibuat oleh berbagai tim menjadi satu pasang.

Penggabungan diharapkan dapat dilakukan sesering mungkin untuk meminimalisir adanya kesalahan. Dan jika terjadi kesalahan, dapat diselesaikan secepat mungkin. Dengan adanya pengerjaan dalam satu komputer, hasil rilis dapat terkontrol.

Program yang dirilis tidak akan mengalami kesalahan dan hasilnya sesuai dengan keinginan klien. Selain itu, seluruh pengembang memiliki hak untuk menyumbangkan kontribusinya pada setiap proyek yang sedang digarap.

  • Testing

Tahap yang terakhir adalah testing. Kode yang sebelumnya telah dibuat para pengembang masing – masing harus memiliki unit test untuk pengujian dengan cara membagi beberapa kode menjadi bagian tertentu sehingga dapat diperbaiki dengan mudah jika terdapat kesalahan atau perubahan permintaan pelanggan.

Ketika terjadi bug, pemrogram harus segera memperbaiki kode dan melakukan unit test kembali. Pengujian dilakukan atas dasar permintaan klien dan menyesuaikan dengan keinginan para pelanggan.

Kelebihan Extreme Programming

Sama halnya dengan metode yang lainnya, Extreme Programming juga memiliki kelebihan dan kekurangan. Kami akan membahas kelebihannya terlebih dahulu. Berikut beberapa kelebihan dari XP.

  • Extreme Programming dapat membangun komunikasi melalui pemrograman berpasangan atau pair programming. Para pengembang bersama dengan klien dapat melakukan coding atau unit testing. Dengan begitu, klien juga dapat terlibat secara langsung di dalam pemrograman ini.
  • Dalam Extreme Programming, kesederhanaan code sangat diutamakan terutama dalam membuat program – program yang sederhana hingga melakukan pengembangannya.
  • Seluruh feedback atau umpan balik diberikan oleh para klien dengan melakukan tes, unit tes, hingga system integration.
  • Terdapat banyak ide dan keberanian dalam melakukan implementasi.
  • Setiap masalah yang ada selalu ada penyelesaian, perbaikan, dan solusinya.
  • Antar anggota pengembang saling menghargai dan menghormati satu sama lain.
  • Hasil pekerjaan dapat didapatkan dalam waktu yang cepat.
  • Tidak adanya sebuah perubahan yang tidak menentu.

Kekurangan Extreme Programming

Setelah membahas mengenai beberapa kelebihan dari Extreme Programming, berikut beberapa kelemahan dari XP antara lain :

  • Para pengembang harus siap sedia terhadap perubahan apapun yang dapat terjadi sewaktu – waktu yang diterima dari para klien.
  • Diperlukan adanya kedisiplinan yang tinggi sekalipun pada proyek yang berukuran kecil.
  • Diperlukannya input atau masukan yang sangat tinggi dari para pengguna.

Contoh Extreme Programming

Beberapa contoh dari implementasi Extreme Programming dapat diterapkan pada aplikasi perhitungan kuota SKS mengajar dosen dan pembuatan sistem informasi penjualan berbasis desktop pada sebuah toko.

Dalam kasus kuota SKS mengajar dosen yang dilakukan secara manual biasanya membutuhkan banyak waktu untuk rekapitulasi perhitungan, serta adanya beberapa kesalahan dalam melakukan perhitungan. Oleh karena itu dibutuhkan sistem yang dapat menyediakan form dan menghitung rekap sks tersebut.

Adapun dalam perancangan pembuatan, dibuat diagram dan pemodelan terlebih dahulu dengan sistem pemodelan Entity Relationship Diagram dan Logical Record Structure. Pengkodean dilakukan dengan menggunakan bahasa pemrograman Visual Basic. Sedangkan untuk pengujiannya dilakukan dengan metode blackbox testing.

Pada kasus selanjutnya, yakni pembuatan sistem informasi penjualan pada sebuah toko dilakukan karena memiliki latar belakang masalah antara lain waktu yang lama dalam melakukan transaksi pembelian, kurang efektifnya mengatri, serta pengelolaan dan pencatatan laporan penjualannya.

Perancangan dilakukan dengan menggunakan pemodelan sistem Use Case Diagram dan pemodelan UI sistem. Untuk pengkodean dilakukan dengan menggunakan bahsa pemrograman JAVA dan menggunakan pengujian dengan metode blackbox testing.

You may also like