Extreme programming (XP) memberikan hasil, tetapi apakah ini tepat untuk Anda?

Headshot kontributor Alicia RaeburnAlicia Raeburn
13 Februari 2025
8 menit baca
facebookx-twitterlinkedin
What is extreme programming (XP) article banner image
Cek Templat
Tonton demo

Ringkasan

Extreme programming (XP) adalah metodologi manajemen proyek Agile yang menargetkan kecepatan dan kesederhanaan dengan siklus pengembangan singkat. XP menggunakan lima nilai panduan, lima aturan, dan 12 praktik untuk pemrograman. Strukturnya kaku, tetapi hasil dari sprint yang sangat terfokus dan integrasi berkelanjutan ini dapat menghasilkan produk dengan kualitas yang jauh lebih tinggi.

Jika istilah extreme programming memunculkan gambaran mental tentang X games dan olahraga aksi, Anda tidak terlalu jauh. Extreme programming (XP) sebenarnya adalah cara pemrograman yang cukup ekstrem. Mirip dengan metode pengembangan perangkat lunak Agile lainnya, XP menggunakan pengembangan yang mudah beradaptasi dan berorientasi pada pengujian untuk rekayasa perangkat lunak. Namun, tidak seperti metode lain, extreme programming memiliki aturan ketat dan nilai-nilai panduan yang mengatur cara pekerjaan diselesaikan.Β 

Apa itu extreme programming (XP)?

Extreme programming adalah metodologi manajemen proyek Agile yang menargetkan kecepatan dan kesederhanaan dengan siklus pengembangan singkat dan lebih sedikit dokumentasi. Struktur proses ditentukan oleh lima nilai panduan, lima aturan, dan 12 praktik XP (yang akan kami uraikan lebih lanjut dalam artikel ini).Β 

Seperti metode Agile lainnya, XP adalah metodologi pengembangan perangkat lunak yang dipecah menjadi beberapa sprint kerja. Kerangka Kerja Agile mengikuti proses iteratif β€”Anda menyelesaikan dan meninjau kerangka kerja setelah setiap sprint, menyempurnakannya untuk efisiensi maksimum, dan menyesuaikannya dengan perubahan kebutuhan. Mirip dengan metode Agile lainnya, desain XP memungkinkan developer untuk menanggapi cerita pelanggan, beradaptasi, dan berubah secara real-time. Namun, XP jauh lebih disiplin, menggunakan tinjauan kode dan pengujian unit yang sering dilakukan untuk membuat perubahan dengan cepat. Metode ini juga sangat kreatif dan kolaboratif, memprioritaskan kerja tim selama semua tahap pengembangan.

Coba Asana gratis

Extreme programming vs. Scrum

Scrum adalah jenis umum lain dari metodologi Agile yang dikelola oleh master Scrum. Mirip dengan XP, Scrum menjalankan sprint dari stori pengguna untuk mengembangkan fitur produk atau perangkat lunak baru. Namun, XP lebih kaku daripada Scrum, dengan aturan dan pedoman ketat yang mendorong kontak konstan antara developer dan pelanggan. Selain itu, Anda dapat menggunakan Scrum untuk proses apa pun yang memerlukan iterasi dan masukan pelanggan, sedangkan Anda hanya akan menggunakan pemrograman XP.

Siapa yang menciptakan extreme programming?

XP berawal dari akhir 1990-an, saat Kent Beck menciptakannya untuk mengelola pengembangan sistem perangkat lunak penggajian untuk Chrysler yang disebut proyek C3. Gol XP adalah (dan masih) menghapus resistensi terhadap perubahan kode dalam proyek pengembangan. Dalam metode pengembangan perangkat lunak yang lebih tradisional, Anda akan sering meninggalkan kode setelah ditulis (kecuali untuk debugging). Dengan XP, Anda meneliti kode dengan sangat cermat sehingga developer dapat memutuskan untuk menulis ulang seluruhnya setelah satu iterasi.Β 

Kapan Anda harus menggunakan extreme programming?

Karena extreme programming berfokus pada pengembangan perangkat lunak, metode ini biasanya hanya digunakan oleh tim teknis. Bahkan di tim perangkat lunak, metode ini hanya berfungsi dalam pengaturan tertentu. Untuk mendapatkan manfaat maksimal dari extreme programming, sebaiknya Anda menggunakannya saat:Β 

  • Mengelola tim yang lebih kecil. Karena sifatnya yang sangat kolaboratif, XP paling cocok untuk tim yang lebih kecil dengan jumlah anggota kurang dari 10 orang.Β 

  • Terus berkomunikasi dengan pelanggan Anda. XP menggabungkan persyaratan pelanggan selama proses pengembangan, dan bahkan mengandalkan mereka untuk pengujian dan persetujuan.

  • Memiliki tim yang mudah beradaptasi dan dapat menerima perubahan (tanpa keberatan). Pada dasarnya, extreme programming akan sering mengharuskan seluruh tim Anda untuk membuang hasil kerja keras mereka. Ada juga aturan yang memungkinkan anggota tim lain untuk membuat perubahan kapan saja, yang tidak akan berhasil jika anggota tim Anda menganggapnya sebagai masalah pribadi.

  • Mahir dalam aspek teknis pengodean. XP bukan untuk pemula. Anda harus dapat bekerja dan membuat perubahan dengan cepat.

Siklus hidup XP

Siklus XP mendorong integrasi berkelanjutan di mana anggota tim melakukan integrasi hampir terus menerus, sesering setiap jam atau setiap hari. Namun, siklus hidup lengkapnya terlihat sebagai berikut:

  • Tarik pekerjaan yang belum selesai dari stori penggunaΒ 

  • Anda memprioritaskan item terpentingΒ 

  • Memulai perencanaan iteratifΒ Β 

  • Menyertakan perencanaan yang jujurΒ Β 

  • Terus berkomunikasi dengan semua pemangku kepentingan dan memberdayakan timΒ Β 

  • Meluncurkan pekerjaanΒ Β 

  • Menerima umpan balikΒ 

  • Kembali ke tahap perencanaan berulang dan ulangi sesuai kebutuhan.

5 nilai extreme programming

Extreme programming didorong oleh nilai. Alih-alih menggunakan motivator eksternal, XP memungkinkan tim Anda untuk bekerja dengan cara yang lebih sederhana (berfokus pada kesederhanaan dan kolaborasi daripada desain yang kompleks), semuanya berdasarkan lima nilai ini.

1. Kesederhanaan

Sebelum memulai pekerjaan extreme programming, tanyakan dulu kepada diri Anda: Apa hal paling sederhana yang juga berfungsi? Bagian "yang berfungsi" adalah pembeda utamaβ€”hal yang paling sederhana tidak selalu praktis atau efektif. Dalam XP, fokus Anda adalah menyelesaikan pekerjaan terpenting terlebih dahulu. Ini berarti Anda mencari proyek sederhana yang Anda tahu dapat Anda selesaikan.

2. Komunikasi

XP mengandalkan reaktivitas cepat dan komunikasi yang efektif. Untuk bekerja, tim harus terbuka dan jujur satu sama lain. Saat masalah muncul, Anda diharapkan untuk angkat bicara. Alasannya adalah anggota tim lainnya mungkin sudah memiliki solusi. Dan jika tidak, Anda akan menemukan solusi lebih cepat sebagai kelompok daripada sendiri.

Baca: Cara meningkatkan komunikasi tim: 6 strategi dan kiat

3. Umpan balik

Seperti metodologi Agile lainnya, XP menggabungkan cerita pengguna dan umpan balik langsung ke dalam proses. Fokus XP adalah menghasilkan pekerjaan dengan cepat dan sederhana, lalu membagikannya untuk mendapatkan umpan balik yang hampir seketika. Dengan demikian, pengembang hampir selalu berhubungan dengan pelanggan selama proses berlangsung. Dalam XP, Anda meluncurkan rilis berkala untuk mendapatkan wawasan lebih awal dan lebih sering. Saat menerima umpan balik, Anda akan menyesuaikan proses untuk memasukkannya (bukan proyek). Misalnya, jika umpan balik mengurangi waktu jeda yang tidak perlu, Anda akan menyesuaikan proses agar sepasang developer dapat meningkatkan waktu jeda alih-alih menyesuaikan proyek secara keseluruhan.

Baca: Tidak suka memberikan umpan balik? 20 kiat ini untuk Anda

4. Keberanian

XP membutuhkan keberanian. Anda selalu diharapkan untuk memberikan pembaruan yang jujur tentang progres Anda, yang dapat membuat Anda terlihat rentan. Jika Anda melewatkan batas waktu di XP, pemimpin tim Anda mungkin tidak ingin mendiskusikan alasannya. Sebaliknya, Anda akan memberi tahu mereka bahwa Anda melewatkan batas waktu, bertanggung jawab, dan kembali bekerja.Β 

Jika Anda seorang pemimpin tim, tanggung jawab Anda di awal proses XP adalah menetapkan ekspektasi untuk mencapai kesuksesan dan menentukan "selesai". Seringkali hanya ada sedikit perencanaan untuk menghadapi kegagalan karena tim berfokus pada kesuksesan. Namun, ini bisa menakutkan, karena hal-hal tidak selalu berjalan sesuai rencana. Namun, jika ada perubahan selama proses XP, tim Anda diharapkan untuk beradaptasi dan mengubahnya.Β 

5. Rasa Hormat

Mengingat betapa pentingnya Komunikasi dan kejujuran bagi XP, rasa hormat juga sama pentingnya. Agar tim dapat berkomunikasi dan berkolaborasi secara efektif, mereka harus dapat menyatakan ketidaksetujuan. Namun, ada cara untuk melakukannya dengan baik. Rasa hormat adalah fondasi yang baik yang mengarah pada kebaikan dan kepercayaanβ€”bahkan dengan adanya kejujuran yang tinggi. Untuk pemrograman ekstrem, ekspektasinya adalah:Β 

  • Saling menghormati antara pelanggan dan tim pengembangan.Β 

  • Saling menghormati antaranggota tim.Β 

  • Pengakuan bahwa semua orang di tim memberikan sesuatu yang berharga untuk proyek.

Coba Asana gratis

5 aturan metodologi extreme programming

Nilai-nilai extreme programming adalah aspek yang lebih filosofis. Di sisi lain, aturan adalah penggunaan praktis untuk cara menyelesaikan pekerjaan. Anda memerlukan keduanya untuk menjalankan tim XP yang efektif.Β 

1. Perencanaan

Pada tahap perencanaan XP, Anda menentukan apakah proyek layak dan paling cocok untuk XP. Untuk melakukan ini, Anda akan melihat:

  • User stories untuk melihat apakah cocok dengan nilai kesederhanaan dan memeriksa untuk memastikan pelanggan tersedia untuk proses tersebut. Jika user story lebih kompleks, atau dibuat oleh pelanggan anonim, kemungkinan besar tidak akan sesuai untuk XP.

  • Nilai business dan prioritas proyek untuk memastikan bahwa ini sejalan dengan "menyelesaikan pekerjaan terpenting terlebih dahulu."Β 

  • Tahap pengembangan Anda saat ini. XP paling cocok untuk pengembangan tahap awal dan tidak akan berfungsi dengan baik untuk iterasi selanjutnya.

Setelah Anda mengonfirmasi proyek layak untuk XP, buat jadwal rilisβ€”tetapi ingatlah bahwa Anda harus merilis lebih awal dan sering untuk mendapatkan umpan balik. Untuk melakukan ini:

  • Bagilah proyek menjadi beberapa iterasi dan buat rencana untuk masing-masing iterasi.Β 

  • Tetapkan batas waktu yang realistis dan kecepatan yang berkelanjutan.Β 

  • Bagikan pembaruan saat itu juga, yang memberdayakan tim Anda untuk bersikap jujur dan transparan.Β 

  • Bagikan pembaruan real-time yang membantu tim mengidentifikasi, beradaptasi, dan membuat perubahan lebih cepat.Β 

  • Gunakan alat manajemen proyek untuk membuat Papan Kanban atau linimasa untuk melacak progres Anda secara real-time.Β 

2. Mengelola

Salah satu elemen utama XP adalah ruang fisik. Penganut XP merekomendasikan penggunaan ruang kerja terbuka tempat semua anggota tim bekerja di satu ruangan terbuka. Karena XP sangat kolaboratif, Anda akan mendapat manfaat dari memiliki ruang tempat Anda dapat berkumpul secara fisik. Namun, itu tidak selalu praktis di zaman sekarang. Jika Anda bekerja dalam tim jarak jauh, pertimbangkan untuk menggunakan platform yang mendorong pekerjaan asinkron untuk kolaborasi jarak jauh. Dengan cara ini, semua anggota dapat terus mengerjakan proyek bersama, meskipun mereka tidak bersama secara fisik.

Seperti metode Agile lainnya, gunakan rapat standup harian untuk check-in dan mendorong Komunikasi terbuka yang konstan. Anda akan menggunakan siklus mingguan dan siklus triwulanan. Selama siklus triwulanan, Anda dan Tim akan meninjau story yang akan memandu pekerjaan Anda. Anda juga akan mempelajari proses XP, mencari kesenjangan atau peluang untuk membuat perubahan. Kemudian, Anda akan bekerja dalam siklus mingguan, yang masing-masing dimulai dengan rapat pelanggan. Pelanggan memilih stori pengguna yang ingin dikerjakan oleh programmer pada minggu itu.Β 

Sebagai manajer atau pemimpin tim, fokus Anda adalah mempertahankan progres pekerjaan, mengukur kecepatan, mengalihkan anggota tim untuk mengatasi bug atau masalah yang muncul, atau mengubah proses XP agar sesuai dengan proyek dan iterasi Anda saat ini. Ingat, gol XP adalah bersikap fleksibel dan mengambil tindakan, jadi pekerjaan Anda akan sangat berfokus pada pekerjaan tim saat ini dan reaktif terhadap perubahan apa pun.

3. Merancang

Saat Anda baru memulai dengan extreme programming, mulailah dengan desain yang paling sederhana, dengan mengetahui bahwa iterasi selanjutnya akan membuatnya lebih kompleks. Jangan menambahkan fungsi awal pada tahap ini agar tetap sesederhana mungkin.

Tim metodologi XP akan sering menggunakan kartu CRC (class-responsibility-collaboration) untuk menunjukkan cara setiap objek dalam desain berinteraksi. Dengan mengisi setiap bidang di kartu, Anda akan mendapatkan interaksi visual dari semua fungsi yang terkait dan berinteraksi. Kartu CRC meliputi:Β 

  • Kelas (kumpulan objek serupa)

  • Tanggung jawab (terkait dengan kelas)

  • Kolaborator (kelas yang berinteraksi dengan kelas ini)

CRC berguna untuk merangsang proses dan menemukan potensi masalah. Terlepas dari cara Anda merancang, Anda perlu menggunakan sistem yang mengurangi potensi kemacetan. Untuk melakukan ini, pastikan Anda secara proaktif mencari risiko. Segera setelah potensi ancaman muncul, tugaskan satu hingga dua anggota tim untuk menemukan solusi jika ancaman tersebut terjadi.

Baca: Proses manajemen risiko proyek dalam 6 langkah jelas

4. Pengodean

Salah satu aspek yang lebih unik dari XP adalah Anda akan terus berkomunikasi dengan pelanggan selama proses pengodean. Kemitraan ini memungkinkan Anda untuk menguji dan menggabungkan umpan balik dalam setiap iterasi, alih-alih menunggu hingga akhir sprint. Namun, aturan pengodean di XP cukup ketat. Beberapa aturan ini meliputi:

  • Semua kode harus memenuhi standar pengodean.

  • Menggunakan unit test untuk menentukan persyaratan dan mengembangkan semua aspek proyek.

  • Pemrograman berpasanganβ€”dua developer bekerja bersama secara simultan di komputer yang sama. Ini tidak menambah waktu, melainkan menggunakan fokus ganda untuk menghasilkan hasil berkualitas tinggi.Β 

  • Gunakan integrasi berkelanjutan untuk menambahkan kode baru dan segera mengujinya.

  • Hanya satu pasangan yang dapat memperbarui kode pada waktu tertentu untuk mengurangi kesalahan.

  • Kepemilikan kode kolektifβ€”anggota tim mana pun dapat mengubah kode Anda kapan saja.

5. Pengujian

Anda harus melakukan pengujian selama proses extreme programming. Semua kode harus lolos uji unit sebelum dirilis. Jika menemukan bug selama pengujian ini, Anda akan membuat pengujian tambahan yang baru untuk memperbaikinya. Nanti, Anda akan mengonfigurasi user story yang sama yang telah Anda kerjakan ke dalam uji penerimaan. Selama pengujian ini, pelanggan meninjau hasilnya untuk melihat seberapa baik Anda menerjemahkan stori pengguna ke dalam produk.

Apa saja 12 praktik extreme programming?

Untuk lebih menyempurnakan proses, XP juga menggunakan serangkaian 12 praktik selama proses berlangsung. Praktik tersebut didasarkan pada manifesto Agile, tetapi disesuaikan agar sesuai dengan kebutuhan XP:

  1. Permainan perencanaan: Perencanaan XP digunakan untuk memandu pekerjaan. Hasil perencanaan harus berupa hal yang ingin Anda capai dan tenggatnya, serta hal yang akan Anda lakukan selanjutnya.

  2. Uji pelanggan: Saat Anda menyelesaikan fitur baru, pelanggan akan mengembangkan uji penerimaan untuk menentukan seberapa dekat fitur tersebut dengan user story asli mereka.

  3. Rilis kecil: XP menggunakan rilis kecil dan rutin untuk mendapatkan wawasan selama proses berlangsung. Seringkali, rilis langsung diberikan kepada pelanggan, meskipun dapat dilakukan secara internal.

  4. Desain sederhana: Sistem XP dirancang untuk kesederhanaanβ€”Anda hanya akan menghasilkan hal yang diperlukan dan tidak lebih dari itu.Β 

  5. Pemrograman berpasangan: Semua pemrograman berasal dari sepasang developer yang duduk berdampingan. Tidak ada pekerjaan solo dalam pemrograman ekstrem.

  6. Test-driven development (TDD): Ketergantungan XP pada umpan balik memerlukan pengujian yang berat. Melalui siklus singkat, programmer merilis pengujian otomatis dan segera bereaksi.

  7. Refactoring: Di sinilah Anda akan memperhatikan detail yang lebih halus dari basis kode, menghapus duplikat, dan memastikan bahwa kode tersebut kohesif. Ini menghasilkan desain yang bagus dan sederhana.

  8. Kepemilikan kolektif: Setiap pasangan pengode dapat mengubah kode kapan saja, baik mereka yang mengembangkannya atau bukan. XP menghasilkan kode sebagai tim, dan pekerjaan setiap orang dipegang pada standar kolektif yang lebih tinggi.

  9. Integrasi berkelanjutan: Tim XP tidak menunggu iterasi selesai, mereka terus melakukan integrasi. Seringkali, tim XP akan melakukan integrasi beberapa kali sehari.

  10. Kecepatan yang berkelanjutan: Intensitas pekerjaan XP mengharuskan Anda menetapkan kecepatan yang berkelanjutan. Tim harus memutuskan jumlah pekerjaan yang dapat mereka hasilkan dengan cara ini per hari dan per minggu, dan menggunakannya untuk menetapkan batas waktu kerja.

  11. Metafora: Metafora, secara harfiah, adalah metafora. Ini diputuskan sebagai tim, dan menggunakan bahasa untuk menggambarkan cara tim harus berfungsi. Misalnya, kami adalah semut yang bekerja secara kolektif untuk membangun sarang semut.Β 

  12. Standar pengodean: Tim XP mengikuti satu standar. Dengan cara yang sama seperti penulis yang perlu menggunakan gaya bahasa merek agar terdengar seperti selalu ditulis oleh orang yang sama, pengembang XP membuat kode dengan cara yang sama dan terpadu sehingga kode tersebut terbaca seperti satu pengembang.

Intens, tetapi efektif

Pada titik ini, Anda mungkin telah mengumpulkan bahwa extreme programming itu, ya, ekstrem. Prosesnya ketat dan sangat terstruktur, tetapi hasilnya mungkin sepadan. Proses pengembangan unik XP yang menggabungkan umpan balik pelanggan dan pemrograman kolaboratif yang intens menghasilkan perangkat lunak berkualitas tinggi.Β 

Sederhanakan perencanaan dan manajemen XP Anda dengan alat manajemen kerja yang diperbarui dan disesuaikan secara real-time, seperti halnya pekerjaan Anda.

Coba Asana gratis

Sumber daya terkait

Templat

Meeting agenda template