Catatan Kecil tentang Agile: Scrum

Evando Wihalim
5 min readMar 21, 2021
Agile
Sumber : https://digitaltemplatemarket.com/agile-important-software-development/

Agile

Apabila kita artikan secara harfiah, agile berarti lincah atau cepat. Demikian pula halnya dengan agile pada kehidupan pengembangan perangkat lunak. Agile dalam pengembangan perangkat lunak berarti suatu pendekatan iteratif, berdasarkan waktu, dan hasil yang digunakan untuk mengembangkan aplikasi secara incremental. Salah satu contoh penerapan metodologi Agile adalah scrum yang akan dibahas lebih lanjut pada artikel ini.

Agile Manifesto
Agile memiliki manifesto tersendiri yang terdiri atas:
1. Individu dan interaksi lebih diutamakan daripada proses dan alat.
2. Perangkat lunak yang bekerja lebih diutamakan daripada dokumentasi yang komprehensif.
3. Kolaborasi pelanggan lebih diutamakan daripada negosiasi kontrak.
4. Menanggapi perubahan lebih diutamakan daripada mengikuti rencana.

Agile Principle
Selain manifesto, agile juga memiliki dua belas prinsip. Berikut ini adalah lima dari dua belas prinsip yang dikutip dari link agile principle ini.

1. Prioritas utama agile team adalah memuaskan pelanggan melalui pemberian perangkat lunak yang bernilai secara dini dan rutin.

Tantangan dari melakukan prinsip ini adalah membuat suatu produk yang dapat digunakan dalam batas waktu tertentu yang biasanya cukup singkat. Untuk dapat membuat produk yang berfungsi dan dalam waktu yang singkat, dibutuhkan komitmen yang baik dari setiap individu untuk mengerjakan tugas bagiannya. Kerjasama tim juga dibutuhkan untuk mempercepat jadinya produk.

2. Menyambut dan mengizinkan adanya perubahan kebutuhan meskipun harus terlambat. Proses agile memanfaatkan perubahan untuk keuntungan kompetitif klien.

Pada prinsip pertama dikatakan bahwa harus membuat produk yang sudah berfungsi dalam waktu yang cepat. Namun pada prinsip kedua ini kita harus menerima perubahan yang mungkin dapat menghambat jalannya proyek. Menurut saya, perubahan meskipun itu kecil cukup menghambat pengerjaan proyek sehingga sulit untuk memberikan produk yang sudah berfungsi dalam waktu yang singkat. Oleh karena itu, menurut saya di sinilah pentingnya peran seorang Scrum Master untuk menerima perubahan tersebut kemudian menentukan apakah perubahan tersebut akan diimplementasikan pada sprint yang sedang berjalan atau sprint selanjutnya. Sehingga, keputusan dari scrum master inilah yang menentukan sejauh mana produk dapat terselesaikan pada waktu yang ditentukan.

3. Membuat proyek diantara individu yang termotivasi. Berikan lingkungan dan dukungan yang dibutuhkan serta percaya pada mereka bahwa pekerjaan akan selesai.

Terkadang dalam membuat proyek, developer menemui kesulitan entah itu dalam implementasi ataupun membuat test. Kesulitan ini dapat membuat semangat sang developer menjadi luntur dan produk menjadi tidak dapat diselesaikan. Oleh sebab itu, dibutuhkan teman yang mampu membantu menyelesaikan kesulitan yang dialami oleh sang developer. Bila masalah terselesaikan tentunya semangat sang developer akan kembali dan produk dapat diselesaikan.

4. Perangkat lunak yang bekerja adalah ukuran utama progres atau kemajuan.

Salah satu tantangan dalam penggunaan agile adalah memberikan perangkat lunak yang bekerja dalam waktu yang relatif singkat. Oleh sebab itu, dibutuhkan pengetahuan, kerja sama, dan komitmen yang baik dalam mengerjakan proyek sehingga perangkat lunak dapat bekerja dan diberikan kepada client.

5. Secara berkala, tim pengembang melakukan refleksi tentang bagaimana cara untuk menjadi lebih efektif kemudian beradaptasi sesuai dengan hasil refleksi tersebut.

Salah satu tantangan dari prinsip agile ini adalah mengakui kesalahan dan mengintrospeksi diri. Terkadang kesalahan itu dianggap memalukan sehingga disembunyikan. Namun kesalahan yang disembunyikan ini dapat menghambat jalannya proyek. Oleh sebab itu, dibutuhkan kejujuran untuk mengakui kesalahan dan cara berpikir visioner. Dengan memiliki pola pikir untuk kebaikan masa depan, biasanya akan lebih mudah untuk mengakui kesalahan. Jika kita mengetahui kesalahan kita dan cara mengatasi kesalahan tersebut, harapannya kita tidak akan mengulangi kesalahan tersebut dan pengerjaan proyek akan berjalan lebih baik dari sebelumnya. Kita juga dapat membuat suatu rencana agar kesalahan tersebut dapat dihindari di masa depan.

Menurut saya, secara singkat agile menginginkan agar pada suatu proyek lebih diutamakan sisi kemanusiaan dengan tetap memperhatikan selesainya produk secara cepat.

Pada mata kuliah Proyek Perangkat Lunak (PPL) 2021 ini, kelompok saya telah menciptakan lingkungan kerja yang cukup mendukung pengembangan proyek melalui diskusi dan saling membantu apabila mengalami kendala.

Scrum

Scrum adalah salah satu dari sekian banyak penerapan pada metodologi agile. Scrum juga adalah suatu kerangka kerja untuk menyelesaikan masalah yang adaptif dengan memberikan produk bernilai setinggi mungkin.

Scrum Process

Proses Scrum
Sumber: https://www.scrum.org/resources/what-is-scrum

Pada awal pengembangan perangkat lunak, fitur-fitur yang ada dalam suatu proyek akan dikonversi menjadi sebuah product backlog. Product backlog ini kemudian dipecah menjadi lebih dari satu Product Backlog Item (PBI). PBI inilah yang akan dikembangkan dalam setiap sprint. Setiap sprint biasanya dilakukan dalam 1–4 minggu. Pada setiap sprint akan dilakukan berbagai event yang akan dijelaskan lebih detail pada bagian Scrum Event.
Pada mata kuliah PPL 2021, produk yang ingin dikembangkan akan diselesaikan dalam 5 sprint. Setiap sprint dilakukan dalam waktu kurang lebih 2 minggu.

Scrum Team
Dalam suatu proyek scrum, sumber daya manusia akan dibagi menjadi beberapa peran, yakni:
1. Product Owner (PO). Seorang product owner berperan sebagai pemilik nilai dari suatu proyek. Ia bertugas untuk menentukan prioritas dari pengembangan suatu proyek.
2. Scrum Master (SM). Seorang scrum master berperan sebagai pemimpin dari sebuah tim pengembang (Development team). Ia bertugas untuk memastikan proses scrum berjalan dengan baik tanpa gangguan termasuk menghambat kebutuhan baru yang muncul di tengah suatu proses scrum.
3. Development Team. Tim ini memiliki peran untuk membuat produk (dalam hal ini mengembangkan perangkat lunak).
Pada mata kuliah PPL 2021, PO dan SM masing-masing diperankan oleh satu orang asisten dosen sedangkan mahasiswa yang mengambil mata kuliah ini menjadi Development Team.

Scrum Event
Berikut ini hal-hal yang dilakukan secara iteratif pada setiap sprint:

  1. Sprint Planning (Memilih beberapa PBI yang akan dikerjakan dalam satu sprint ke depan). Langkah ini menghasilkan Sprint Backlog.
  2. Sprint Backlog kemudian dikerjakan oleh Scrum Team. Pada langkah ini, setiap hari diadakan sebuah Daily Standup Meeting yang berguna untuk mengetahui:
    a. Apa yang sudah dikerjakan sejak terakhir rapat?
    b. Apa ada kendala?
    c. Apa yang akan dilakukan sampai rapat berikutnya?
    Pada langkah ini, dihasilkan suatu bagian produk atau increment.
  3. Setelah increment diselesaikan, diadakan sebuah Sprint Review yang akan mendemonstrasikan produk yang sudah dikembangkan dan membahas apa yang akan dikerjakan di sprint selanjutnya.
  4. Setelah itu diadakan sebuah Sprint Retrospective yang berguna untuk mengevaluasi sprint yang telah dilakukan dan mengidentifikasi perkembangan yang akan dilakukan di sprint berikutnya. Kemudian langkah pengembangan dilakukan kembali dari sprint planning sampai perangkat lunak selesai dikembangkan.

Demikian catatan kecil saya mengenai Agile dan Scrum. Semoga catatan kecil ini dapat berguna bagi pembaca untuk mengenal sedikit mengenai kedua hal tersebut.

Referensi:

  1. Why Agile is important for Software Development
  2. Guest Lecture by Sachunaden Prabhu
  3. Presentasi pada mata kuliah Proyek Perangkat Lunak Fasilkom UI 2021
  4. Presentasi pada mata kuliah Rekayasa Perangkat Lunak Fasilkom UI 2020
  5. Agile
  6. Agile Manifesto
  7. Agile Principles
  8. Definisi Scrum

--

--