Definisi Extreme Programming (XP) Nilai dan Tahapan
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.
XP adalah sebuah proses perangkat lunak yang membantu pengembang membuat kode berkualitas dengan cepat. Di sini, kita mendefinisikan kualitas sebagai sebuah basis kode yang sesuai dengan desain spesifikasi dan ekspektasi pelanggan.
XP fokus pada:
- Implementasi desain sederhana
- Komunikasi antara pengembang dan pelanggan
- Secara terus menerus menguji basis kode
- Refaktorisasi untuk mengakomodasi perubahan spesifikasi
- Mencari timbal balik pelanggan
XP cenderung bekerja dengan baik untuk usaha pengembangan dengan ukuran kecil sampai sedang dalam lingkungan yang memiliki perubahan spesifikasi yang sering, dan di mana komunikasi yang mendekati secara mudah.
XP berbeda dengan proses pengembangan tradisional dalam beberapa hal. Pertama, hal ini menghindari sindrom proyek skala besar yang mana pelanggan dan tim pemrograman bertemu untuk mendesain setiap rincian dari aplikasi sebelum koding dimulai. Project manager mengetahui pendekatan ini memiliki kelemahan tersendiri, tidak sedikit yang mana spesifikasi pelanggan dan kebutuhan berubah terus menerus untuk merefleksikan aturan bisnis yang baru atau kondisi pasar. Contohnya, departemen keuangan mungkin menginginkan laporan pembayaran diurutkan dengan proses tanggal dibandingkan dengan nomor cek. Atau departemen pemasaran mungkin menjelaskan bahwa pelanggan tidak akan membeli produk XYZ jika tidak dikiriman sebuah e-mail setelah registrasi pada website. Sebaliknya, sesi perencanaan XP fokus pada pengumpulan kebutuhan umum aplikasi, tidak mempersempit pada setiap rincian.
Perbedaan lain pada metodologi XP adalah menghindari koding yang tidak diperlukan fungsionalitasnya. Jika pelanggan Anda berpikir bahwa fitur itu dibutuhkan tetapi tidak wajib ada, hal ini secara umum akan ditinggalkan dari rilisan. Oleh sebab itu, Anda akan fokus pada tugas yang ada, menambahkan nilai ke sebuah produk software. Konsentrasi hanya pada fungsi yang diwajibkan ada membantu Anda memproduksi perangkat lunak yang berkualitas dalam jangka waktu yang singkat.
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.
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.
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).
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.
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.
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.
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.
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.
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.
Perencanaan Extreme Programming (XP)
Fase perencanaan yang sukses bergantung pada dasar dari proses XP. Fase perencanan dalam XP berbeda dari model pengembangan tradisional, yang seringkali mengombinasikan pengumpulan kebutuhan dan desain aplikasi. Perencanaan pada XP fokus pada identifikasi kebutuhan aplikasi pelanggan dan mendesain cerita pengguna (atau cerita kasus) yang sesuai. Anda memperoleh wawasan tambahan dalam tujuan aplikasi dan kebutuhan dengan membuat cerita pengguna. Untuk tambahan, pelanggan menggunakan cerita pengguna ketika menjalankan pengujian penerimaan di akhir dari suatu siklus perilisan. Akhirnya, sebuah keuntungan yang nyata dari fase perencanaan adalah pelanggan memperoleh kepemilikan dan kepercayaan dalam aplikasi dengan berpartisipasi di dalamnya.
Tabel 1. 12 Praktik Extreme Programming
Praktik | Komentar |
1. Perencanaan dan kebutuhan | Personil pemasaran dan pengembangan bisnis bekerja bersama untuk mengidentifikasi nilai bisnis yang maksimal dari setiap fitur perangkat lunak. Setiap fitur utama perangkat lunak ditulis sebagai cerita pengguna. Pemrogram menyediakan estimasi waktu untuk penyelesaian setiap cerita pengguna. Pengguna memilih fitur perangkat lunak berdasarkan estimasi waktu dan nilai bisnis. |
2. Perilisan penambahan kecil | Berusaha untuk menambahkan fitur kecil yang nyata dan memberi nilai lebih serta merilis basis kode sesering mungkin. |
3. Metafora system | Tim pemrograman Anda mengidentifikasi suatu metafora pengaturan untuk membantu konvensi penamaan dan alur program. |
4. Desain sederhana | Implementasi desain yang paling sederhana yang memungkinkan kode Anda untuk lolos pengujian unit. Asumsikan akan ada perubahan, sehingga jangan membuang banyak waktu untuk mendesain, langsung implementasikan. |
5. Pengujian berkelanjutan | Tulis pengujian unit sebelum menulis modul kode. Setiap unit belum lengkap sampai bisa lolos pengujian unit. Lebih jauh, program belum lengkap sampai telah melewati semua pengujian unit dan pengujian penerimaan. |
6. Refaktorisasi | Membersihkan dan menyederhanakan basis kode Anda. Pengujian unit membantu memastikan bahwa Anda tidak menghancurkan fungsionalitas dalam prosesnya. Anda harus mengulang semua pengujian unit setelah ada refaktorisasi. |
7. Pemrograman sepasang | Anda dan pemrogram lain bekerja bersama, dengan mesin yang sama, untuk membuat basis kode. Hal ini memungkinkan ulasan kode secara langsung, yang mana secara dramatis memfasilitasi deteksi gangguan dan resolusi. |
8. Kepemilikan kolektif atas kode | Semua kode adalah hak milik semua pemrogram. Tidak ada satu pun pemrogram yang didedikasikan untuk basis kode spesifik. |
9. Integrasi berkelanjutan | Setiap hari, integrasikan semua perubahan, setelah kode melewati pengujian unit, kembalikan ke dalam basis kode. |
10. Kerja 40 jam per minggu | Tidak diizinkan adanya lembur, jika Anda bekerja dengan dedikasi selama 40 jam per minggu, jam lembur tidak dibutuhkan. Pengecualian hanya untuk minggu sebelum perilisan. |
11. Kehadiran pelanggan di tempat | Anda dan tim pemrograman memiliki akses tidak terbatas ke pelanggan, untuk memungkinkan Anda untuk menyelesaikan pertanyaan secara cepat dan meyakinkan, yang mana menjaga penguluran proses pengembangan. |
12. Standar Pemrograman | Semua kode seharusnya terlihat sama. Pengembangan sebuah metafora system membantu mencapai prinsip ini. |
Kelebihan dan Kekurangan Metode XP
Berikut adalah beberapa kelebihan dan kekurangan dari metode extreme programming.
Kelebihan
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.
Karena mengutamakan kesederhanaan, maka metodologi XP akan membangun komunikasi yang lebih lancar serta menyederhanakan penjelasan-penjelasan yang dibutuhkan dalam proses pengerjaan perangkat lunak.
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.
Memberikan banyak ide baru dan keberanian untuk mencobanya.
Kekurangan
Developer harus selalu siap dengan perubahan, karena xp merupakan metodologi yang selalu menerima perubahan, termasuk perubahan yang tiba-tiba di waktu yang terbatas.
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
Prabowo, Mei. (2020). Metodologi Pengembangan Sistem Informasi. Salatiga: LP2M IAIN Salatiga.
Prabowo, S. A. (2013). JURNAL TEKNIK POMITS .Rancang Bangun Aplikasi Web Informasi Eksekutif Pada Pemerintah Kabupaten XYZ. Vol.2,No.3: 2.
Pratama, I. A. (2017). Sistem Informasi dan Implementasinya. Bandung: Informatika Bandung.
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
Glenford, J. M., Sandler, C., & Badgett, T. (2012). The Art of Software Testing. New Jersey: John Wiley & Sons, Inc.
Posting Komentar untuk "Definisi Extreme Programming (XP) Nilai dan Tahapan"