Agile Development: Scrum, Sebuah Metode Pengembangan Software yang Fleksibel + Keuntungan Scrum (Pengalaman Pribadi)

Adietya Christian
6 min readMar 14, 2023

--

Image from https://www.tryscrum.com/blogs/what-are-real-life-examples-of-agile-methodology/

Agile development adalah suatu metodologi pengembangan perangkat lunak yang berfokus pada pengembangan produk yang cepat dan adaptif. Metode ini digunakan untuk mengembangkan produk dengan cara yang lebih efisien dan responsif terhadap perubahan kebutuhan client dan pasar.

Mengapa Agile Development?

Beberapa kegunaan dan kelebihan dari agile development adalah sebagai berikut:

  1. Mempercepat pembentukan deliverable: Dengan fokus pada pembentukan deliverable yang cepat dan iteratif, agile development memungkinkan developer untuk mendevelop software dengan lebih cepat. Hal ini memungkinkan perusahaan untuk lebih cepat menyesuaikan diri dengan perubahan kebutuhan pasar.
  2. Meningkatkan kualitas produk: Dalam agile development, developer melakukan pemeriksaan kualitas secara terus-menerus selama proses pengembangan. Dengan demikian, masalah dapat diidentifikasi dan diperbaiki lebih awal, sehingga meningkatkan kualitas produk.
  3. Fleksibilitas dan adaptabilitas: Agile development memungkinkan tim untuk menyesuaikan diri dengan perubahan kebutuhan client dan pasar dengan cepat dan mudah. Hal ini memungkinkan perusahaan untuk memperbaiki dan mengubah produk sesuai dengan kebutuhan dan feedback client.
  4. Kolaborasi tim yang lebih baik: Dalam agile development, developer bekerja bersama-sama secara intensif, bertukar ide, dan memberikan feedback secara teratur. Hal ini meningkatkan kolaborasi tim dan memungkinkan mereka untuk memecahkan masalah dengan lebih efektif.
  5. Mengurangi risiko: Dalam agile development, produk dikembangkan secara iteratif dan diuji secara berkala. Hal ini memungkinkan developer untuk mengidentifikasi masalah lebih awal dan mengurangi risiko kesalahan pada tahap akhir pengembangan.

Agile VS Waterfall

Salah satu perbedaan utama antara Agile development dan waterfall adalah dalam cara pengembangan produk.

Waterfall adalah metodologi pengembangan perangkat lunak yang berurutan dan linear. Dalam model waterfall, pengembangan dilakukan secara bertahap, dimulai dari tahap perencanaan, kemudian desain, implementasi, verifikasi, dan akhirnya deliver product. Setiap tahap harus diselesaikan sepenuhnya sebelum memasuki tahap berikutnya. Dalam waterfall, ada sedikit ruang untuk perubahan setelah tahap desain telah selesai.

Sementara dalam Agile development, pengembangan dilakukan secara iteratif dan adaptif. Produk dikembangkan dalam sprints, di mana setiap sprint memiliki tujuan dan waktu penyelesaian yang ditentukan. Setelah selesai, produk diuji dan dikirim ke client untuk feedback. Feedback client kemudian digunakan untuk menyesuaikan iterasi berikutnya dari pengembangan produk.

Dengan demikian, Agile development memungkinkan pengembang untuk lebih cepat menyesuaikan diri dengan perubahan kebutuhan client dan pasar, sementara waterfall lebih cocok untuk proyek yang memiliki spesifikasi yang jelas dan terdefinisi dengan baik sejak awal.

Beberapa perbedaan lain antara Agile development dan waterfall meliputi:

  • Pengembangan Agile memungkinkan tim untuk lebih fleksibel dan adaptif, sementara waterfall memiliki sedikit fleksibilitas.
  • Dalam Agile, feedback client diintegrasikan ke dalam proses pengembangan produk, sementara dalam waterfall feedback diberikan pada akhir pengembangan.
  • Dalam Agile, perubahan dan iterasi dilakukan secara terus-menerus, sedangkan dalam waterfall perubahan sulit dilakukan setelah tahap desain telah selesai.

Scrum

Image from https://kruschecompany.com/agile-software-development-with-scrum-framework/

Scrum adalah sebuah kerangka kerja (framework) yang merupakan bagian dari metodologi Agile. Scrum sendiri adalah metode yang dikembangkan untuk menerapkan metodologi Agile secara praktis dan efektif dalam pengembangan perangkat lunak. Scrum menekankan pada pembagian pekerjaan menjadi iterasi kecil yang disebut sprint, kolaborasi tim yang kuat, serta pengaturan proses pengembangan produk melalui sejumlah upacara dan artefak, seperti sprint planning, daily scrum, sprint review, dan retrospective.

Berikut adalah tahapan-tahapan penting dalam Scrum:

  1. Product Backlog
    Produk Backlog adalah daftar semua fitur dan kebutuhan yang harus dicapai dalam pengembangan produk. Produk Backlog ini dikelola oleh Product Owner.
  2. Sprint Planning
    Pada tahap ini, tim Scrum bertemu dengan Product Owner untuk menentukan sprint goal atau tujuan sprint dan memilih item dari Product Backlog yang akan dilakukan selama sprint berlangsung.
  3. Daily Standup
    Pertemuan harian yang biasanya dilakukan di pagi hari untuk memastikan semua anggota tim saling terkait dan memperbarui perkembangan kerja yang sudah dilakukan, serta mengidentifikasi masalah yang mungkin muncul.
  4. Sprint Review
    Pada akhir sprint, tim Scrum melakukan Sprint Review untuk meninjau hasil kerja dan mempresentasikan demo produk yang telah dibangun kepada Product Owner.
  5. Sprint Retrospective
    Setelah Sprint Review, tim Scrum melakukan pertemuan Sprint Retrospective untuk mengevaluasi proses pengembangan yang telah dilakukan dan mencari cara untuk memperbaiki proses pengembangan pada sprint berikutnya.

Dalam Scrum, terdapat tiga peran penting, yaitu Product Owner, Scrum Master, dan Tim Developer.

  1. Product Owner
    Product Owner bertanggung jawab untuk membuat dan memprioritaskan Product Backlog. Dia juga bertanggung jawab untuk memastikan produk yang dikembangkan sesuai dengan kebutuhan client.
  2. Scrum Master
    Scrum Master bertanggung jawab untuk memastikan tim Scrum bekerja sesuai dengan metodologi Scrum. Scrum Master juga membantu tim dalam mengatasi hambatan dan masalah yang muncul dalam pengembangan produk.
  3. Tim Developer
    Tim Developer adalah anggota tim yang bertanggung jawab untuk mengembangkan produk. Mereka memilih item dari Product Backlog untuk dikerjakan selama sprint, dan bertanggung jawab untuk mencapai sprint goal yang telah ditentukan.

Dalam Scrum, semua anggota tim bekerja bersama untuk mencapai tujuan pengembangan produk. Kerjasama tim yang kuat dan komunikasi yang terbuka menjadi kunci dalam mencapai keberhasilan pengembangan produk.

Mengapa Scrum Dikatakan Fleksibel

Scrum dikatakan fleksibel karena kerangka kerjanya (framework) memungkinkan tim untuk menyesuaikan pengembangan produk dengan kebutuhan yang berubah-ubah dari waktu ke waktu. Dalam Scrum, item-item yang harus dikerjakan diidentifikasi pada awal setiap sprint melalui Sprint Planning. Namun, jika kebutuhan client berubah atau munculnya kebutuhan yang baru, item-item tersebut dapat diubah atau ditambahkan pada Product Backlog.

Selain itu, Scrum juga memungkinkan tim untuk memperbaiki proses pengembangan produk pada setiap Sprint Retrospective. Tim dapat mengevaluasi dan menyesuaikan proses yang dilakukan agar sesuai dengan kebutuhan tim dan client.

Fleksibilitas ini memungkinkan tim untuk melakukan penyesuaian dengan cepat dan efektif, sehingga produk dapat dikembangkan sesuai dengan kebutuhan client dalam waktu yang lebih singkat. Hal ini juga memungkinkan tim untuk menghasilkan produk yang lebih baik dan berkualitas tinggi dengan mengambil feedback dari client dan menciptakan perubahan yang diperlukan pada produk.

Keuntungan Menggunakan Scrum (Bagi Kelompok Kami)

Dapat Menyesuaikan dengan Kebutuhan Requirements dari Waktu ke Waktu

Dalam Pengembangan Software kami, timeframe yang diberikan dapat dikatakan cukup singkat, yakni tiga bulan. Dalam proses development, kami menemukan bahwa terdapat fitur-fitur yang kurang krusial dan juga tidak mempengaruhi requirements, sehingga fitur dapat dihilangkan. Sebagai contoh, kami awalnya memiliki fitur filter pada sisi Back End. Padahal, untuk mengefesiensi waktu pengembangan, filter dapat dilakukan dari sisi Front End sehingga tidak memerlukan tambahan endpoint API. Hal ini dapat dilakukan di Agile Development sehingga membuat metode ini dapat menyesuaikan dengan situasi dan kondisi yang ada.

Mendukung Continuous Learning

Dalam proyek ini, tim saya dan saya menerapkan framework dan bahasa pemrograman baru yang belum pernah kami gunakan sebelumnya. Oleh karena itu, penting untuk menyisihkan waktu untuk belajar dan menjelajahi teknologi baru yang digunakan. Sifat incremental delivery dari Agile ini membuat hal-hal menjadi lebih mudah dengan memungkinkan kami untuk belajar satu hal pada satu waktu secara berkelanjutan.

Berfokus pada deliverables yang bertahap dan berkembang

Sebagai seorang mahasiswa, tim saya dan saya harus menyeimbangkan antara menyelesaikan proyek ini dengan belajar untuk kelas lain. Tentu hal ini dapat diatasi dengan Time Management yang baik. Dengan Agile, tim kami dapat fokus pada memberikan hasil yang kecil tapi bertahap dan berkembang dari waktu ke waktu. Dengan cara ini, development dapat dilakukan dengan lebih mudah dibandingkan dengan mengerjakan semuanya sekaligus saat menjelang deadline.

Membantu menjaga kolaborasi tim yang baik

Melalui metode scrum, tim saya dan saya belajar untuk selalu bekerja sama sebagai tim dengan menjalin komunikasi dan kolaborasi. Saat setiap sprint berlalu, tim saya dapat merefleksikan dan tumbuh bersama melalui feedback yang konstruktif untuk memberikan hasil yang lebih baik kedepannya.

Mengurangi miskomunikasi antar anggota

Dengan Agile, kami melakukan daily standup yang rutin sehingga selalu up to date dengan kondisi dan isu terkini terkait projek yang dikerjakan. Hal ini tentu sangat mengurangi miskomunikasi antar anggota tim kami.

Kesimpulan

Agile telah menjadi metologi yang penting dalam mengembangkan suatu software yang incremental. Dengan Agile, pengembangan software dapat di-maintain dengan baik untuk mencapai tujuannya sambil tetap berada pada timeframe yang tepat. Sifat ‘agile’ dari proses ini memungkinkan tim pengembang untuk beradaptasi dengan baik terhadap perubahan sambil mempertahankan kerja sama tim yang baik. Saya merasa Agile cocok untuk proyek pengembangan perangkat lunak di projek ini.

Saya pertama kali belajar tentang Agile sebelum projek ini dimulai. Namun, Saya baru benar-benar memahami dan merasakan keuntungannya setelah menggunakan dengan baik Agile dalam proses pengembangan software ini. Semoga artikel ini dapat membantu teman-teman yang ingin memulai suatu projek software maupun bekerja untuk client dan ingin menggunakan Agile Development. Terima kasih telah membaca dan sampai jumpa di artikel selanjutnya.

--

--

Adietya Christian
Adietya Christian

Written by Adietya Christian

A Passionate Computer Science Student Interested in Mobile Application Development

No responses yet