Continuous Integration
Kode yang sudah dibuat oleh banyak developer dalam tim diintegrasikan kemudian dilakukan test atau pengujian secara otomatis. Praktik ini akan memudahkan tim untuk menemukan feedback lebih cepat, karena prosesnya dilakukan otomatis. Jika ada masalah saat integrasi, tim akan mendapatkan notifikasi. Continuous Integration juga membuat proses rilis software lebih cepat. Kode-kode yang berhasil digabungkan dan berhasil melalui test integrasi berarti siap dirilis ke lingkungan staging atau produksi.
Nilai atau value akan menjadi landasan bagi praktik. Tanpa nilai, praktik akan kehilangan makna dan tanpa arah. Lima nilai dalam XP yang memandu pengembangan adalah komunikasi, kesederhanaan, feedback, keberanian, dan rasa menghormati.
Difficulty Settings dan Accessibility Options
Banyak game modern menawarkan pengaturan kesulitan dan opsi aksesibilitas yang dapat disesuaikan:
Opsi-opsi ini memungkinkan pemain untuk menyesuaikan pengalaman bermain mereka tanpa melanggar aturan game.
Mod dan Custom Content
Mod (modifikasi) adalah cara yang sah dan kreatif untuk meningkatkan pengalaman bermain game:
Keuntungan menggunakan mod adalah mereka sering didukung oleh pengembang game dan komunitas, menawarkan cara yang sah untuk memperpanjang umur dan variasi game.
Informative Workspace
Ruang kerja tim sebaiknya memaparkan pekerjaan dan statusnya. Tim dapat melihat perkembangan pekerjaan sehari-hari dengan mudah. Informasi status pekerjaan dapat dilihat dengan mudah oleh siapapun, termasuk orang di luar tim. Papan tersebut menggambarkan kemajuan pengambangan. Informasi yang ditampilkan papan tersebut up-to-date karena selalu diperbarui oleh tim.
Umumnya praktik informative workspace ini diterapkan menggunakan papan (board) atau dinding (wall). Tim akan menaruh apa yang mereka kerjakan dalam suatu papan, baik papan fisik maupun virtual. Papan tersebut memuat pekerjaan yang siap dikerjakan, sedang dikerjakan, dan selesai. Setiap pekerjaan memiliki penanggung jawab dan anggota yang terlibat. Jika ada hambatan dalam pengembangan, informasi hambatan tersebut dan status penyelesaiannya juga terlihat.
Pernah mencoba memrogram ditemani seorang rekan developer? Practice bernama pair programming ini diyakini akan membuat aktivitas programming lebih produktif. Satu orang membuat kode, satu lainnya memperhatikan dan meninjau kode yang dibuat dan memberikan feedback. Review kode dilakukan secara “extreme” karena berlangsung secara realtime saat penulisan kode. Saat pair programming terjadi, diskusi dan komunikasi terjadi secara intens. Feedback didapatkan secara instan, sistem dibuat lebih sederhana berdasarkan feedback dan diskusi.
Kita juga dapat melihatnya dari perspektif knowledge. Saat pair programming, terjadi pertukaran ide sekaligus pengetahuan. Seseorang yang lebih berpengalaman atau yang mengetahui best practice dalam pemrograman akan berbagi apa yang diketahuinya kepada rekan pair programming-nya. Akhirnya kapasitas satu sama lain akan meningkat.
Dalam XP, User Story adalah practice untuk menulis requirements dalam format yang sederhana. User Story adalah deskripsi singkat tentang requirements dari perspektif pengguna. User Story membantu tim untuk memiliki requirements yang rapi, terstruktur, dan detail namun dengan usaha yang minimal. Karena ditulis dari perspektif bisnis bukan teknis, User Story seharusnya dipahami dengan mudah oleh klien.
Format yang digunakan dalam User Story adalah sebagai berikut:
Sebagai
Contoh User Story adalah sebagai berikut:
Sebagai pemilik bisnis, saya ingin memantau transaksi yang dicatat oleh staf sales saya sehingga saya dapat mengetahui penjualan harian atau bulanan
Kesederhanaan dalam menulis requirement menggunakan User Story membantu tim untuk lebih fokus dalam membangun percakapan (conversation) dan memahami kebutuhan klien maupun pengguna. Fokus tim digeser dari menulis requirements ke diskusi requirements. Akhirnya kebutuhan pengguna dapat dieksplorasi lebih dalam sehingga solusi yang dibangun benar-benar menjawab kebutuhan.
Dalam Weekly Cycle, tim merencanakan pekerjaan dalam siklus yang singkat, yaitu seminggu sekali. Di awal minggu, tim bertemu untuk merencanakan Story apa yang akan mereka selesaikan dalam satu minggu kedepan. Di sesi perencanaan tersebut, mereka juga meninjau Story apa saja yang mereka selesaikan di minggu sebelumnya. Di akhir minggu, fitur atau fungsi (meskipun cakupannya kecil) dari software yang dikembangkan siap dirilis.
Tim merencanakan pengembangan software dalam siklus kuartal atau tiga bulan sekali. Rencana kuartal ini memberikan gambaran dan goal yang lebih besar dalam pengembangan. Rencana kuartal ini umumnya dikenal dengan roadmap. Dalam rencana kuartal, umumnya ada tema kuartal yang digunakan.
Dalam proyek, siklus kuartal digunakan untuk me-review kemajuan proyek, termasuk apa yang sudah diselesaikan, apa yang belum, dan hambatan apa yang dihadapi. Dari hasil review, adaptasi dilakukan dengan menyusun rencana perbaikan dan memperbarui rencana pengembangan.
Exploration dan Discovery
Banyak game menawarkan pengalaman eksplorasi yang mendalam:
Fokus pada eksplorasi dan penemuan dapat memberikan kepuasan yang lebih mendalam daripada menggunakan cheat untuk kemajuan cepat.
Kenalan dengan Extreme Programming
Extreme Programming (XP) merupakan metodologi yang berfokus kepada penerapan teknik pemrograman yang excellence, komunikasi yang jelas, dan kerja sama yang baik. Selain technical excellence, kita melihat bahwa XP juga fokus kepada aspek sosial dalam pengembangan software, yaitu komunikasi dan kerja sama. Komunikasi dan kerja sama yang baik akan membantu tim untuk memiliki produktivitas yang tinggi dan lingkungan yang kondusif dalam membangun software.
Menggunakan XP, tim akan mengembangkan software dalam siklus yang singkat, dikenal dengan istilah iterasi. Sebagai contoh, satu iterasi dapat memiliki durasi 2 minggu atau 1 bulan. Dalam iterasi tersebut, tim akan menghasilkan fitur (atau potongan fitur) dengan prioritas tinggi dan memperoleh feedback yang dibutuhkan. Feedback akhirnya didapatkan lebih cepat dan lebih awal untuk membuat software lebih baik.
Pendekatan perencanaan yang digunakan XP dalam membangun software termasuk pendekatan incremental. Artinya rencana pengembangan dapat berubah secara adaptif sesuai situasi pengembangan software dalam proyek. Perubahan ini diakomodasi untuk menjawab kebutuhan bisnis yang berkembang melalui iterasi dan penyesuaian jadwal implementasi fitur dalam rencana pengembangan.
Sebagai metodologi, XP memiliki sekumpulan praktik (practices) dan nilai (values) untuk mencapai technical excellence. Kita akan membahas lebih detail praktik utama dan nilai dalam XP.
Training dan Practice Modes
Banyak game, terutama yang kompetitif, menyediakan mode latihan khusus:
Mode-mode ini membantu pemain meningkatkan keterampilan mereka secara alami, memberikan alternatif yang lebih memuaskan daripada menggunakan cheat.
Memanfaatkan sumber daya komunitas dapat sangat membantu dalam meningkatkan pengalaman bermain:
Sumber daya ini menawarkan cara untuk meningkatkan pemahaman dan keterampilan dalam game tanpa menggunakan cheat.
Praktik Utama dalam XP
Praktik merupakan hal yang dilakukan. Dalam XP, praktik yang membantu meningkatkan kualitas software dilakukan oleh tim, tidak hanya dilakukan di level biasa namun dilakukan di level yang “extreme”. Beberapa praktik utama yang umum dilakukan dalam XP adalah sebagai berikut:
Dalam membangun software, bekerja di ruangan yang sama merupakan cara yang efektif. Komunikasi terjadi secara instan. Hambatan bisa dikomunikasikan dengan cepat. Terjadi percakapan dan interaksi yang menyenangkan. Inilah praktik yang dinamakan Sit Together atau Duduk Bersama.
Bayangkan suatu skenario dimana anggota tim bekerja di tempat yang terpisah padahal berada di satu gedung yang sama. Skenario lainnya adalah anggota tim bekerja dalam satu ruangan yang sama. Kita bisa membayangkan komunikasi dan diskusi pada tim yang bekerja dalam satu ruangan yang sama lebih baik, mengalir, dan effortless.
Praktik ini mendorong agar tim untuk memiliki peran-peran yang utuh yang dibutuhkan untuk kesuksesan proyek. Istilah lainnya adalah tim yang lintas peran (cross functional). Jika sistem yang dibangun membutuhkan Database Expert, tim perlu memiliki peran tersebut. Jika proyek membutuhkan analisis data, peran Data Analyst atau Data Engineer perlu hadir dalam tim.
Praktik ini juga menekankan agar peran-peran tersebut bekerja sebagai tim. Mereka bekerja dalam satu tujuan yang sama untuk kesuksesan proyek. Mereka mendukung satu sama lain dalam kerjaan dan pembelajaran bersama.
Keberanian (courage)
Ada banyak isu yang niscaya dihadapi tim dalam pengembangan. Nilai keberanian akan membantu tim untuk mengkomunikasikan isu yang ada ke internal tim, manajemen perusahaan, atau klien. Hal ini juga berarti mengambil keputusan terbaik pada situasi tersebut untuk menyelesaikan isu yang muncul.
Sebagai contoh, di tengah pengembangan proyek, tim menerima feedback yang tampaknya sederhana menurut klien, namun hal ini membutuhkan usaha atau effort yang besar untuk mengakomodasi feedback tersebut. Pada situasi ini, tim akan berani mengkomunikasikan effort dan batasan yang ada ke klien sehingga keputusan yang diambil adalah keputusan terbaik untuk kesuksesan bersama.
Komunikasi (communication)
Ini merupakan nilai yang penting dalam pengembangan. Software dibangun oleh tim yang terdiri dari banyak individu. Masing-masing individu memiliki pengalaman, kemampuan, dan latar belakang yang berbeda-beda. Komunikasi yang baik akan membangun kerja sama yang solid di antara mereka. Komunikasi juga akan mempererat hubungan antara tim dengan klien dan pengguna. Banyak masalah dalam pengembangan yang mampu diselesaikan melalui komunikasi yang terjalin baik.