Metode Agile dan Scrum

Althoframdhan
6 min readFeb 28, 2022

--

Seiring bertambahnya tahun, kebutuhan akan digitalisasi product semakin meningkat. permintaan akan hadirnya aplikasi yang dapat mempermudah dan mempercepat pekerjaan manusia semakin membludak sehingga mendorong para tim developer aplikasi tersebut untuk memutar otak bagaimana metode pengembangan perangkat lunak yang tepat untuk membuat aplikasi yang dapat di salurkan dengan cepat kepada para penggunanya.

Maka dari itu, pada tanggal 11–13 Februari tahun 2001, 17 developer berkumpul dan berdiskusi untuk mencari solusi. Hasilnya, terciptalah Agile Methodology ini.

Pengertian Agile

Agile adalah sebuah metode pengembangan software yang berfokus untuk menghasilkan software berkualitas tinggi secara konsisten dengan mengurangi biaya proyek dan meningkatkan nilai jual suatu bisnis.

Secara definisi, Agile dapat diartikan sebagai sebuah pendekatan yang menggunakan teknik iterasi dan bertahap secara dinamis (atau dikenal dengan Sprint) dalam proses pembuatan suatu produk.

Manifesto for Agile Software Development

Pertemuan 17 developer tersebut menghasilkan Agile Manifesto yang berisi empat nilai penting dalam pengembangan software, yaitu

  • Individu dan interaksi lebih utama dibandingkan proses dan tools.
  • Mengedepankan software yang berfungsi, dibanding membuat dokumentasi lengkap.
  • Mengedepankan kerjasama dengan konsumen, dibanding negosiasi kontrak.
  • Mengedepankan menanggapi perubahan, dibanding sekedar mengikuti rencana

Dari 4 nilai utama pada Manifesto untuk Agile diatas lahirlah 12 prinsip pada Agile, yaitu

  1. Prioritas tertinggi kami adalah untuk memuaskan pelanggan melalui pengiriman awal dan berkelanjutan dari perangkat lunak yang berharga.
  2. Terbuka dengan perubahan requirements, baik di tengah maupun di akhir pengembangan sekalipun. Agile mendukung perubahan ini untuk kebaikan konsumen
  3. Merilis software dengan rutin, mulai dari beberapa minggu, hingga beberapa bulan sekali. Lebih cepat lebih baik
  4. Developer dan bagian bisnis harus bekerjasama setiap hari selama project berjalan
  5. Ciptakan project dengan individu yang penuh motivasi. Berikan mereka lingkungan dan support yang dibutuhkan. Lalu, percayalah mereka akan menyelesaikan pekerjaannya
  6. Metode paling efisien dan efektif untuk menyampaikan informasi di tim adalah secara empat mata
  7. Software yang berfungsi dengan baik merupakan tolak ukur kesuksesan project
  8. Agile mendukung pengembangan yang berkelanjutan. Sehingga semua pihak harus menjaga pace yang sama
  9. Perhatian pada aspek teknis dan desain yang bagus bisa meningkatkan kelincahan (agility)
  10. Pentingnya kesederhanaan untuk meminimalisir pekerjaan yang tidak perlu dan memaksimalkan jumlah pekerjaan yang belum selesai
  11. Tim yang mandiri akan menghasilkan arsitektur, kebutuhan, dan desain terbaik
  12. Sesering mungkin, tim harus memikirkan cara untuk menjadi lebih efektif, lalu menerapkannya dengan baik

Itulah prinsip Agile yang dapat kita selalu ingat agar mampu menghasilkan software dengan kualitas lebih baik yang sesuai dengan kebutuhan konsumen.

Metode Agile Development

Berikut adalah tahapan Agile dalam pengerjaan software development

  1. Tahap ResearchPada tahap perencanaan, kita perlu memahami kebutuhan dari client atau user yang memiliki kepentingan dan kepemilikan dalam proyek tersebut. Tahap pertama ini termasuk menyatukan pengertian yang sama diantara stakeholder yang terlibat.
  2. Product Backlog — Pada tahap ini, tim akan mulai bekerjasama dalam membuat beberapa Product Backlog yang berisi daftar fitur yang akan berguna bagi client dan user. Disini lah peran Product Owner dibutuhkan, PO akan bekerjasama dengan client untuk memprioritaskan fitur dan menentukan urutan dari bagaimana fitur akan dirancang, develop, test, dan implementation.
  3. Pengulangan Iterasi — setelah tim berhasil mengkategorikan semua fitur dalam bentuk backlog, kini saatnya tim akan mulai mengeksekusi fitur-fitur yang telah dibuat dalam sebuah pengulangan yang diukur oleh waktu yang dinamakan Sprint.
    Sprint sendiri berlangsung dalam durasi 1–4 minggu, pada tim PPL kami memiliki 4 sprint yang masing-masing sprintnya berjalan 2 minggu. Setiap Sprint akan memenuhi target yang ada pada product backlog.
  4. Penerusan Siklus — Sprint tambahan akan dilakukan sesuai dengan yang dibutuhkan untuk menghasilkan fitur tambahan dan memasukan feedback yang didapat dari review sebelumnya. Setiap Sprint baru harus menghasilkan perkembangan dari hasil Sprint sebelumnya dan juga menghasilkan fitur baru ke dalam sistem.

Panduan Metodologi Scrum

SCRUM adalah salah satu metode dalam pembuatan software dengan menggunakan prinsip-prinsip AGILE, yang berfokus pada kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan produk yang berkualitas.

Kenapa harus Scrum? — tujuan dari Scrum dilahirkan untuk menggantikan metode lama yang sudah tidak relevan dengan keadaan saat ini, disamping itu ada beberapa keuntungan jika kita menggunakan metode Scrum dalam mem-develop suatu projek. berikut ini keuntungannya.

  1. Scrum mendorong kolaborasi di antara anggota tim yang mengarah pada hubungan interpersonal dan kepercayaan di antara mereka.
  2. Melakukan retrospektif meeting setiap hari memungkinkan tim Scrum untuk meningkatkan efisiensi kerja.
  3. Mengedepankan perilisan produk perangkat lunak yang cepat dalam iterasi yang singkat.
  4. Memperbarui dan meninjau ulang produk sesuai dengan kebutuhan klien.
  5. Mudah untuk diterapkan tetapi mengikuti prosesnya mungkin sulit.
  6. Melibatkan para stakeholder dalam setiap pertemuan sprint review akan meningkatkan hasil produk dan juga tim.

dari keuntungan tersebut hanya dapat kita ketahui dengan menerapkan Scrum secara langsung untuk membangun suatu projek baik di dunia It maupun tidak.

Ada beberapa tahap yang harus dilakukan dalam melakukan Scrum Development. Berikut cara kerja Scrum.

1. Tentukan Tim Scrum — Pada tim PPL kami beranggotakan 7 orang terdiri dari seorang project owner, seorang scrum master, dan 5 orang sebagai developer utama. setiap individu diwajibkan untuk berperan sebagai full-stack developer yang artinya mampu membuat fitur dari sisi Backend dan Frontendnya. Semua anggota akan bekerja sama dan bertanggung jawab untuk memastikan bahwa mereka akan membuat fitur yang akan dipresentasikan di akhir sesi Sprint atau Sprint Review.

2. Tentukan Waktu Sprint — tim kami telah sepakat untuk mengatur lama durasi pada setiap sprint yaitu selama 2 minggu dan akan terjadi 4 sprint. kemudian kami menetukan deadline tiap fitur dalam sebuah meeting perencanaan.

3. Membuat Product Backlog — Pada tahap ini saatnya seluruh anggota tim berdiskusi untuk menyusun prioritas dari setiap user case atau fitur berdasarkan tingkat kepentingannya. setiap user case biasanya terdiri dari Epic dan Story. secara singkat, Epic merupakan user case yang sketsanya masih sangat kasar tanpa banyak detail sedangkan Stories mencakup persyaratan lebih rinci tentang hal yang harus atau mungkin dilakukan.

4. Perencanaan dan Mulai Sprint — tim biasanya melakukan diskusi terlebih dahulu untuk memutuskan daftar tugas yang akan dikerjakan dan berapa banyak yang dapat mereka selesaikan dalam Sprint mendatang. Apabila semua anggota tim setuju, Sprint dapat dimulai dan tim dapat mulai mengerjakan proyeknya dengan mengambil item dari daftar yang paling atas atau yang paling prioritas.

5. Retrospective dan Mulai Sprint Berikutnya — pada akhir waktu sprint, seluruh anggota tim akan melakukan sprint retrospektif dan sprint review bersama dengan client atau seluruh stakeholder terkait untuk membahas apa-apa saja tugas/fitur yang sudah selesai di kerjakan pada sprint sebelumnya dan menentukan list tugas yang akan dikerjakan pada sprint berikutnya.

Stacey Matrix

Salah satu cara untuk memahami kompleksitas adalah melalui Matriks Stacey, yang dikembangkan oleh Ralph D. Stacey (seorang Profesor Manajemen).

Matriks Stacey dikembangkan untuk menentukan kompleksitas lingkungan dan menyesuaikan dengan gaya pengambilan keputusan pada suatu project planning. Untuk pengembangan perangkat lunak, Matrix sering dipisahkan pada sumbu yang berbeda yaitu Kebutuhan (X) dan Implementasi(Y). Yang pertama ditentukan oleh kejelasan yang kita ketahui tentang apa yang perlu kita bangun (seperti produk) dan fitur apa yang harus diterapkan (Apa?), sedangkan yang terakhir mengenai kejelasan tentang apa yang diperlukan untuk mencapainya dalam hal implementasi/teknologi (Bagaimana?).

  • Simple — Suatu kegiatan dikatakan sederhana jika sudah jelas apa yang dibutuhkan dan bagaimana mencapainya. Tidak diperlukan perencanaan, dan juga tidak ada kerangka kerja empiris seperti Scrum.
  • Complicated — Suatu kegiatan menjadi rumit ketika terjadi ketidakjelasan pada apa yang dibutuhkan atau bagaimana menuju ke sana. Sulit untuk menentukan satu pendekatan terbaik untuk jenis produk yang rumit dan pendekatan yang cocok adalah dengan metode iteratif daripada pendekatan yang direncanakan.
  • Complex — Dalam aktivitas yang tidak mungkin diprediksi ini, informasi paling andal yang digunakan untuk pengambilan keputusan didasarkan pada apa yang telah terjadi (bukan apa yang kita antisipasi akan terjadi). Oleh karena itu kita harus menerapkan metode inkremental, menggunakan setiap langkah untuk menentukan apakah kita telah bergerak lebih dekat untuk memecahkan masalah kita atau menjauh darinya. Scrum adalah contoh yang baik dari proses semacam itu.
  • Chaotic — aktivitas di mana semuanya berubah-ubah. Dalam lingkungan ini, bahkan masa lalu tidak lagi dapat menawarkan informasi yang dapat diandalkan untuk pengambilan keputusan pada saat ini. Pendekatan terbaik di sini adalah Triage: prioritaskan masalah, selesaikan yang paling mendesak terlebih dahulu, dan lanjutkan dari sana (bilas dan ulangi).

Apa itu Scrum of Scrum

Diagram ilustrasi dari Scrum of Scrums

Scrum of Scrums adalah teknik untuk meningkatkan skala scrum hingga kelompok besar di mana kelompok tersebut dibagi menjadi tim Agile yang terdiri dari 5–10 orang. Setiap tim scrum wajib menyertakan anggota yang ditunjuk sebagai perwakilan untuk berpartisipasi dalam pertemuan harian dengan perwakilan dari tim lain, yang disebut Scrum of Scrums.

tujuan utama dari Scrum of Scrum yaitu untuk melakukan update setiap pekerjaan yang telah dilakukan setiap tim scrum dan biasanya dilakukan setiap hari. serta untuk mendukung tim Agile untuk meningkatkan produktivitas tim, dan juga membantu dalam berkolaborasi dan mengoordinasikan pekerjaan mereka dengan tim lain.

--

--

No responses yet