Scrum

Scrum

Agile Manifesto merupakan nilai-nilai yang digunakan dalam mendasari berlangsungnya Agile Software Development. Agile Manifesto muncul dilatarbelakangi oleh frustasi para pengembang software akibat metode yang digunakan pada saat itu, yaitu Waterfall Model. Salah satunya jeda waktu yang panjang antara penentuan requirement dan product delivery yang dapat berujung pada pembatalan project karena prosesnya yang lama. Kebutuhan klien juga berubah-ubah pada jangka waktu tersebut sehingga produk akhir tidak memenuhi requirement.

Pada tahun 2000, Jon Kern, Kent Beck, Ward Cunningham, Arie van Bennekum, Alistair Cockburn, dan 12 orang lainnya mengadakan pertemuan di Oregon dan kemudian pada tahun 2001 di The Lodge, Utah. Pertemuan tersebut menghasilkan Agile Manifesto yang dituliskan secara formal. Agile Manifesto terdiri dari 4 nilai utama. Berikut adalah 4 nilai Agile Manifesto yang dikutip dari website tersebut.

1. Individuals and Interactions Over Processes and Tools

Individu dan interkasi antar individu pelaku development lebih diutamakan dibandingkan prosesnya, karena yang merespon terhadap kebutuhan klien adalah individu, bukan proses, sehingga individu lah yang menyetir development yang berlangsung. Dengan demikian, development akan lebih responsif terhadap kebutuhan klien. Selain itu, jika individu sebagai penyetir development, komunikasi antar individu dapat berlangsung dengan fleksibel, misalnya ketika dibutuhkan sesuatu dan perlu dikomunikasikan. Sedangkan jika disetir oleh proses, bisa jadi komunikasi antar anggota harus terstruktur, terjadwal, dan kontennya spesifik. Selain individu itu sendiri, interaksi antar individu juga penting. Mungkin perkataan seperti “loh, ini codenya kok udah berubah? sejak kapan? percuma dong gue udah bikin code sampe begadang!” tidak akan terjadi ketika terdapat interaksi yang baik antar individu. Pentingnya interaksi juga menandakan bahwa developer tidak boleh “masa bodoh” dengan pekerjaan developer lain.

2. Working Software Over Comprehensive Documentation

Dulu, banyak waktu yang dialokasikan untuk membuat dokumentasi produk untuk melakukan development maupun delivery. Misalnya penjabaran berbagai spesifikasi produk, requirement, desain interface, dan sebagainya yang ditulis secara detail sehingga menghasilkan dokumen yang cukup banyak. Kemudian dokumen-dokumen tersebut juga memerlukan persetujuan pihak terkait agar development dapat dilaksanakan. Hal ini menyebabkan waktu development semakin panjang (menambah delay untuk delivery). Pada agile, lebih diutamakan working produk yang terdeliver ke klien dengan cepat, sehingga hal-hal terkait dokumentasi tersebut dikurangi. Pada Agile, dokumentasi-dokumentasi requirement diwujudkan sebagai user stories, dan itu sudah cukup untuk developer untuk memulai megimplementasikan fungsi yang diinginkan. Namun, agile tetap memperhatikan dokumentasi meskipun working software lebih diutamakan.

3. Customer Collaboration Over Contract Negotiation

Pada agile, iterasi yang dilengkapi dengan kolaborasi dengan klien akan lebih efektif untuk development. Klien dapat memberikan feedback terhadap hasil yang telah dibuat pada setiap iterasi sehingga dapat diperbaiki maupun ditambahkan. Ini menguntungkan kedua pihak, developer dan klien. Developer diuntungkan karena spesifikasi produk menjadi lebih jelas dan mengeliminasi adanya fitur yang kurang feasible dan klien juga diuntungkan karena mendapatkan produk yang lebih sesuai dengan keinginannya. Sedangkan pada Waterfall, klien bernegosiasi dengan development terkait requirement produk secara detail sebelum development dimulai. Klien hanya terlibat sebelum proses dimulai, bukan ketika proses berjalan. Ini akan lebih menyulitkan developer untuk melakukan implementasi sesuai kebutuhan klien. Agile berusaha memastikan produk sesuai atau sedekat mungkin dengan apa yang klien inginkan sebenarnya.

4. Responding to Change Over Following a Plan

Model development tradisional seperti Waterfall tidak fleksibel terhadap perubahan, sehingga sekarang banyak dihindari. Model tersebut menekankan proses development yang sesuai dengan perencanaan dan secara detail serta sesuai urutan yang telah ditetapkan dengan fitur-fitur yang sudah pasti, tidak dapat berubah-ubah. Pada Agile, development lebih fleksibel terhadap perubahan. Agile menggunakan iterasi yang pendek dan fitur baru dapat ditambahkan pada iterasi berikutnya jika diperlukan fitur baru. Menurut Agile, fleksibilitas terhadap perubahan dapat meningkatkan kualitas project sehingga diperoleh nilai lebih pada hasil akhirnya.

Dari keempat nilai tersebut, dapat dijabarkan ke dalam 12 prinsip sebagai Agile Principles. Berikut adalah prinsip-prinsip tersebut yang dikutip dari website agile manifesto.

  • Prioritas utama adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai secara cepat dan rutin.
  • Siap terhadap perubahan kebutuhan. Proses Agile memanfaatkan perubahan untuk keuntungan klien.
  • Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan mengutamakan jangka waktu yang pendek.
  • Rekan bisnis dan pengembang perangkat lunak harus bekerjasama sepanjang proyek.
  • Lingkungan pengembang proyek memiliki suasana yang motivatif. Berikan mereka lingkungan dan dukungan yang dibutuhkan, dan percayai mereka untuk dapat menyelesaikan pekerjaan dengan baik.
  • Metode yang paling efisien dan efektif untuk bertukar informasi dari dan dalam tim pengembang adalah dengan komunikasi secara langsung.
  • Perangkat lunak yang bekerja adalah ukuran utama kemajuan suatu tim.
  • Proses Agile mendukung pengembangan yang berkelanjutan dengan kecepatan pengembangan yang konsisten.
  • Perhatian terhadap detail-detail teknis dan desain akan meningkatkan agility.
  • Kesederhanaan (memaksimalkan jumlah pekerjaan yang belum dilakukan) adalah hal yang sangat penting.
  • Self-organizing team mendukung arsitektur, kebutuhan, dan rancangan perangkat lunak yang baik.
  • Secara berkala, tim pengembang berefleksi tentang bagaimana agar pengembangan lebih efektif, kemudian menyesuaikan cara bekerja mereka.

Siapa Saja Anggota Tim Scrum?

Tim scrum bertugas untuk mengembangkan dan merilis produk. Tidak ada pemimpin tim secara keseluruhan yang memutuskan anggota mana yang akan melakukan tugas tertentu, atau bagaimana suatu masalah akan diselesaikan.

Masalah yang ada bisa diselesaikan oleh tim secara keseluruhan. Tim scrum idealnya terdiri dari 5-9 individu yang kolaboratif. Setiap individu dalam tim bisa memiliki peran-peran seperti berikut ini:

1. Owner

Product owner adalah seseorang yang memiliki pengetahuan mendalam tentang pengguna atau konsumen. Dia memahami visi pengguna dan apa yang ingin dicapai dengan produk tersebut. Product owner memastikan tim berada di jalur yang benar dengan mengelola dan memprioritaskan item dalam product backlog.

2. Scrum Master

Scrum master adalah fasilitator yang membantu scrum practitioner mencapai kinerja yang maksimal. Dia memastikan bahwa proses yang ada diikuti dengan baik, bisa menyelesaikan masalah dan hambatan, serta membantu tim terus bergerak sehingga dapat menjalankan setiap proyek.

3. Development Team

Ini adalah inti dari tim scrum. Development team memiliki otoritas untuk memutuskan bagaimana suatu tugas diselesaikan, tools apa yang digunakan, teknik apa yang harus dipakai, dan berapa biaya yang mesti dikeluarkan.

Scrum Artifacts

Artefak pada dasarnya adalah tools yang digunakan oleh scrum practitioner untuk membuat produk yang baik. Selain itu juga untuk meningkatkan visibilitas dan efektivitas komunikasi.

1. Product Backlog

Ini adalah daftar lengkap dari fungsionalitas yang harus ditambahkan pada produk. Product owner memprioritaskan product backlog sehingga tim selalu mengerjakan fitur-fitur berprioritas tinggi terlebih dulu.

2. Sprint Backlog

Hampir mirip dengan product backlog, hanya saja sprint backlog berisi tugas-tugas yang perlu dilakukan tim untuk mengerjakan fitur selama sprint.

3. Burn Chart

Ini membantu tim memahami hubungan antara waktu dan cakupan tugas. Burn chart menampilkan berapa banyak tugas tersisa yang harus dilakukan. Ketika tim bekerja dengan baik dan efektif, burn chart juga seharusnya menurun.

4. Task Board

Task board adalah sebuah pengingat yang terlihat oleh siapapun di dalam tim, sehingga semua anggota tim tahu tugas mana yang sedang dikerjakan dan oleh siapa.

5. Definition of Done (DoD)

Pengertian dari “done” berarti mengaplikasikannya pada tugas dan user story. Seluruh anggota tim harus memiliki pengertian yang seragam soal “done”.

Scrum Value

  • Openness : mendengarkan ide orang lain di dalam team. 
    untuk point ini, penerapan di dalam kelompok sudah terlaksana sejak awal. segala bentuk pengambilan keputusan sudah terlaksana sejak sprint 0 yaitu ketika kita membuat product backlog ataupun wireframe, setiap anggota selalu terbuka mendengarkan pendapat kelompok kami. 
  • Courage : keberanian mengusulkan perbaikan produk.
    pada point courage, kelompok kami juga sudah menerapkan hal ini. misalnya ketika kemarin di halaman home terdapat button untuk login, lalu ketika saya membuat tampilan home, saya mengusulkan untuk sebaiknya butto  home dibuat dengan list view.
  • Respect : menghormati keputusan product owner.
    setiap keputusan yang diambil di dalam team, selalu di dasari pada keputusan yang diambil oleh product owner. 
  • Focus : berhubungan dengan komitmen, focus pada sprint goal.
    pada minggu pertama, kami memiliki sprint goal staff atau user dapat melakukan login. maka dari itu kelompok 2 fokus pada pengerjaan login.
  • Commitment : komitmen dengan perencanaan.
    kelompok 2 melakukan pekerjaan dengan komitmen pada perencanaan awal sejak sprint planning. Kami berkomitmen untuk menyelesaikan point-point yang ada pada sprint goal dalam satu minggu (satu sprint). Untuk sprint 1 kami berkomitmen untuk harus ada progress yang dapat dilihat oleh stakeholder secara signifikan, contohnya : stakeholder sudah bisa login dan tampilan utama sudah terlihat.

3 Pilar Scrum

  • Transparency : kelompok kami sudah menerapkan poin transparency karena setiap individu memiliki detail product backlog dan semua pekerjaan dikabari melalu grup whatsapp atau via zoom.
  • Inspection : pemeriksaan yang dilakukan dikelompok, apakah ada kendala. Pada kelompok kami inspeksi dilakukan biasanya pada saat daily meeting atau pada saat sebelum sprint review.
  • Adaptation : ketika terjadi suatu hal yang menyimpang, kelompok kami langsung mencari jalan keluar dan membenarkannya. Contohnya, kemarin pada wireframe bahasa yang digunakan masih campur-campur antara bahasa inggris dan indonesia. saya dan rekan saya langsung memilih untuk menyamakan semuanya menggunakan bahasa indonesia dan tidak lagi mengacu pada bahasa yang digunakan di wireframe.


Komentar