Pengertian XP dan Scrum

 Pengertian Extreme Programming (XP) - Extreme Programming (XP) merupakan salah satu metode pengembangan software yang termasuk dalam Agile Software Development. XP menggunakan pendekatan object-oriented.


Dalam XP, terdapat 5 nilai yang menjadi pondasi yaitu communication, simplicity, feedback, courage, dan respect. Komunikasi yang efektif antara pengembang perangkat lunak dan pihak-pihak yang terlibat sangatlah penting. Dalam XP, desain dijadikan kebutuhan intermediate. Desain dibuat sesederhana mungkin agar mudah mengimplementasikan code. Disini dapat terjadi perubahan struktur desain atau perubahan source code tanpa mengubah fungsi utamanya (refactoring). Feedback akan diberikan saat peningkatan dan pengimplementasian perangkat lunak.


Berikut merupakan proses Extreme Programming menurut Pressman (2010):

Planning. Tahap planning dimulai dengan membuat user stories yang menggambarkan output, fitur, dan fungsi-fungsi dari software yang akan dibuat. User stories tersebut kemudian diberikan bobot seperti prioritas dan dikelompokkan untuk selanjutnya dilakukan proses delivery secara incremental. 

Design. Design di Extreme Programming mengikuti prinsip Keep It Simple (KIS). Untuk design yang sulit, Extreme Programming akan menggunaan Spike Solution dimana pembuatan design dibuat langsung ke tujuannya. Extreme Programming juga mendukung adanya refactoring dimana software system diubah sedemikian rupa dengan cara mengubah stuktur kode dan menyederhanakannya namun hasil dari kode tidak berubah. 

Coding. Proses coding pada XP diawali dengan membangun serangkaian unit test. Setelah itu pengembang akan berfokus untuk mengimplementasikannya. Dalam Extreme Programming diperkenalkan istilah Pair Programming dimana proses penulisan program dilakukan secara berpasangan. Dua orang programmer saling bekerjasama di satu komputer untuk menulis program. Dengan melakukan ini akan didapat real-time problem solving dan real-time quality assurance. 

Testing. Tahap ini dilakukan pengujian kode pada unit test. Dalam Extreme Programming, diperkenalkan XP acceptance test atau biasa disebut customer test. Tes ini dilakukan oleh customer yang berfokus kepada fitur dan fungsi sistem secara keseluruhan. Acceptance test ini berasal dari user stories yang telah diimplementasikan.


Metodologi Scrum

SCRUM adalah salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir.


Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE. Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasikan untuk menghasilkan proses yang optimal.


Teknik SCRUM dapat dilakukan di sebuah kepanitiaan ataupun project lain diluar bisnis teknologi informasi. Dalam teknik SCRUM terbagi dalam tiga roles, yang pertama adalah Product Owner, Scrum Master dan Development/Scrum Team. Product owner bertugas mengatur urusan dengan Stakeholder sedangkan Scrum Master mengurusi bagian internal, di bagian Development Team mengatur urusan teknik pengerjaan project dan pembahasan yang lebih rinci.


Banyak perusahaan multinasional menginternalisasi atau mengadopsi teknik ini sebagai standar bekerja mereka, karena secara umum teknik scrum berhasil membuat beberapa perusahaan menaikan omset karena system yang telah teruji ini. Teknik scrum membuat pekerjaan anda menjadi lebih tertata dan lebih detail.


Namun segala sesuatu memiliki nilai plus dan minus, begitu juga dengan teknik scrum ini, scrum menjadikan pekerjaan lebih rapi namun teknik ini tidak cocok diterapkan pada perusahaan jasa yang butuh deadline cepat. Scrum membuat pekerjaan menjadi lebih lama dalam estimasi waktu. Namun segala sesuatunya pasti dapat diselesaikan apabila sudah memiliki persiapan yang matang dari awalnya.


Teknik scrum dimulai dari pembahasan project antara Product Owner dengan Stakeholder terkait, lalu dibentuklah Srum Master dan Team Development. Langkah pertama yang dilakukan oleh Scrum master adalah dengan membuat semua list pekerjaan yang disebut juga dengan User Story, User Story tersebut dibuat di media yang dinamakan Backlog yang di tempel di Task Board (kompasiana, 2016)


 


Scrum sendiri bisa dijelaskan dengan poin-poin berikut ini:


Pemilik produk membuat daftar keinginan yang diprioritaskan yang disebut backlog produk.

Selama perencanaan sprint, tim memilih salah satu item dari urutan teratas daftar keinginan tersebut dan memutuskan bagaimana mereka akan menjalankan potongan tersebut.

Tim memiliki sejumlah waktu, yang disebut dengan istilah sprint (biasanya dua sampai empat minggu) untuk menyelesaikan pekerjaannya, namun setiap harinya akan ada pengecekan untuk melihat progress pekerjaan (Scrum harian).

Sepanjang jalan, Scrum Master membuat tim tetap fokus pada tujuannya.

Di akhir sprint, pekerjaan harus berpotensi untuk dikirim: siap untuk diserahkan kepada pelanggan, diletakkan di rak toko, atau ditunjukkan kepada Pemangku kepentingan.

Sprint diakhiri dengan review sprint dan retrospektif.

Seiring sprint berikutnya dimulai, tim memilih item lain lagi dari backlog produk dan mulai bekerja lagi.

Hal ini berlangsung sampai proyek dianggap selesai, baik karena deadline dan budget atau dengan melengkapi seluruh daftar item yang sudah ditentukan di awal.(Dewaweb, 2017)

Ada beberapa poin penting untuk Scrum yang membuat banyak orang tertarik untuk menggunakannya, misalnya:


Berorganisasi sendiri dengan fokus pada tim.

Tidak perlu dokumentasi dalam jumlah besar. Scrum menggunakan pendekatan yang to the point dalam membagikan tugas atau menanyakan progress.

Tim Scrum adalah sebuah tim yang memiliki lintas fungsional sehingga bisa bekerja sama sebagai satu kesatuan.

Komunikasi yang kuat dan banyak interaksi.

Memiliki ritme yang pasti dan berulang untuk menyelesaikan pekerjaan dalam waktu maksimal 30 hari.

Alih-alih mencoba melakukan keseluruhan pekerjaan pada saat bersamaan, Scrum membantu menyelesaikannya satu persatu dengan interval waktu yang ditentukan.

Mengaplikasikan Scrum dapat membuat anggota tim member Anda merasa dipercaya dan Anda juga tahu member mana yang ahli di bidangnya dan bisa mengerjakan tugasnya sehingga tidak ada tunggu-menunggu. (Dewaweb, 2017)

Cara Implementasi Scrum

Untuk mencoba metode Scrum, kita bisa memulai dengan mengerjakan satu proyek yang sederhana dan singkat. Perlu diingat bahwa sama dengan kerja tim pada umumnya, beberapa orang dalam tim akan menyukainya dan beberapa orang akan membencinya. Ini sangat normal dan Anda harus mendorong orang-orang di tim untuk mencobanya dengan benar sebelum mereka menyerah. Jika seseorang akhirnya menyerah, lepaskan mereka dari tim dan biarkan orang lain masuk.


Disini di dalam produk aplikasi yang sedang tim saya kerjakan, kami menggunakan teknologi scrum dengan tools Trello. Trello sendiri merupakan aplikasi yang didesain untuk mengorganisasikan pekerjaan sehari-hari jadi mudah dan menyenangkan. Trello memiliki fitur lengkap yang bisa dimanfaatkan untuk bekerja secara individu, kolaborasi maupun dalam tim yang berbeda ruangan. Aplikasi ini dibuat pada 2010 oleh Fog Creek Software Company dari New York. Beragam tugas dapat dimasukkan pada daftar seperti mengorganisir pekerjaan di kantor, menyusun rencana berlibur hingga mengurus pekerjaan rumah tangga sederhana (THE DAILY OKTAGON, 2017)


Menggunakan Kartu Prioritas untuk Mengingatkan & Mendiskusikan Pekerjaan

Tampilan Trello seperti papan tulis besar yang bisa diisi daftar berbentuk horizontal sehingga pengguna dapat memeriksanya dengan mudah. Dalam satu daftar, pengguna dapat memasukkan kartu sebagai keterangan pekerjaan yang akan dilakukan. Penyusunan kartu disesuaikan dengan prioritas masing-masing. Kartu-kartu ini dapat dipindahkan atau diubah posisi ke daftar lainnya.


Kartu yang dibuat bisa diisi dengan daftar centang, gambar, juga berkas seperti PDF. Setiap kartu bisa diberi tenggat waktu tertentu dan ditandai dengan warna sebagai prioritas utama. Jika sebuah kartu akan mendekati tenggat waktu yang ditentukan, maka akan ada notifikasi pengingat melalui email. Pengguna bisa mengundang orang lain pada papan juga kartu dan dapat melakukan diskusi terkait tugas yang diberikan. Setiap kartu yang dibuat bisa dicari dengan sangat mudah oleh anggota di dalam papan tersebut (THE DAILY OKTAGON, 2017)


Buat Daftar Mengatur Pekerjaan

Seperti penjelasan di atas, dalam satu papan kita bisa membuat beberapa daftar. Sebagai contoh, gunakan metode Kanban yang memberi nama daftar sesuai keperluan. Metode ini berfungsi untuk memvisualisasikan alur kerja serta progres dalam bentuk kartu-kartu virtual yang dapat disesuaikan dengan kebutuhan.


Dari kartu To-Do yang bisa diisi dengan hal-hal yang ingin dilakukan, Doing dengan pekerjaan yang sedang dilakukan, dan Done jika tugas-tugas sudah selesai dilaksanakan. Penamaan daftar kartu ini tentu bisa disesuaikan juga dengan anggota pada papan tersebut. Seperti di keluarga, dalam satu papan dapat membuat daftar pekerjaan untuk ayah, ibu, kakak, juga adik.

Komentar