Pengembangan Perangkat Lunak dengan Agile

Nurul Faza S.
LEARNFAZZ
Published in
4 min readMar 20, 2019

Dalam Siklus Hidup Pengembangan Perangkat Lunak (SDLC), terdapat suatu metode/model yang diterapkan untuk mengatur jalannya proses pengembangan. Model tradisional yang biasa disebut Waterfall Model adalah metode pertama yang diterapkan pada pengembangan perangkat lunak. Metode ini bersifat sekuensial dan linier, serta mengharuskan seluruh requirements untuk mengembangkan perangkat lunak didefinisikan di tahap awal.

Nyatanya, dalam pengembangan perangkat lunak, menentukan requirements secara keseluruhan di tahap awal tidak mudah. Terkadang client bisa meminta perubahan atau peningkatan ketika proses pengembangan sudah berjalan. Belum lagi, proses pengembangan menjadi tidak adaptif dan tidak ideal digunakan untuk proyek-proyek besar [5].

Oleh karena itu, munculah salah satu metode yang dapat menyelesaikan permasalahan tersebut yaitu Agile Software Development.

Agile Software Development

sumber : https://blog.soshace.com/wp-content/uploads/2016/08/agilenewera.png

Agile software development adalah metode yang meringankan beban/bobot sekaligus mempercepat proses pengembangan software [1]. Pada metode Agile, terjadi iterasi pendek yang diikuti pengiriman produk yang mengalami peningkatan secara sering (frequent). Agile juga melakukan penekanan komunikasi langsung dan berkala untuk tim pengembangan, bahkan pelanggan (client) juga terlibat secara aktif dalam siklus proses pengembangan [2].

Dalam industri perangkat lunak, the “Agile movement” dipublikasikan pertama kali oleh suatu kelompok praktisi dan konsultan perangkat lunak pada tahun 2001 lewat Agile Software Development Manifesto [1]. Manifesto ini menekankan nilai-nilai utama [3], yaitu :

  • Individu dan interaksi lebih diutamakan daripada proses dan alat
  • Perangkat lunak yang bekerja lebih diutamakan daripada dokumentasi yang menyeluruh
  • Kolaborasi dengan client lebih diutamakan daripada negosiasi kontrak
  • Tanggap terhadap perubahan lebih dari mengikuti rencana

Scrum

Saat ini, metode-metode agile sudah banyak digunakan oleh industri perangkat lunak, salah satunya adalah Scrum. Scrum adalah framework untuk mengembangkan dan mempertahankan produk yang kompleks [4]. Scrum adalah kerangka kerja di mana orang dapat mengatasi masalah adaptif yang kompleks, tetapi juga secara produktif dan kreatif memberikan produk dengan nilai setinggi mungkin.

sumber : https://www.maxxor.com/images/Scrum.jpg

Framework Scrum terdiri dari Tim Scrum dan peran(role), event, artifacts, dan aturan yang terkait. Setiap komponennya memiliki tujuan tertentu dan penting untu keberhasilan Scrum. Tim Scrum terdiri atas product owner, scrum master, dan development team. Event yang dilakukan adalah sprint planning, sprint, daily stand up meeting, sprint review, dan sprint retrospective. Adapun, artifacts yang dipakai adalah product backlog, sprint backlog, dan increment. Sedangkan, aturan digunakan untuk mengatur hubungan dan interaksi antara role, artifacts, dan event tersebut.

Penerapan scrum dalam tim

Pada proyek PPL 2019, kami menerapkan metode scrum. Jumlah sprint yang akan kami lakukan adalah 6 kali dengan waktu setiap sprint adalah 2 minggu (2 x 10 jam = 20 jam per orang). Pembagian peran/role yang diterapkan pada proyek ini adalah sebagai berikut :

  1. Product Owner : pengusul topik dari proyek ini
  2. Scrum Master : asisten dosen
  3. Development Team : seluruh anggota dalam satu kelompok yang berjumlah 6 orang

Scrum yang kami lakukan pada proyek ini terbagi menjadi beberapa tahapan event, yaitu:

  1. Fase inisiasi : Pada fase ini kami melakukan pertemuan dengan Product Owner, membuat mock up, dan melakukan set up environment.
  2. Sprint planning : Fase ini dilakukan sebelum setiap sprint berjalan. Pada fase ini dilakukan pemilihan user story yang akan diimplementasikan pada sprint dan melakukan pemecahan user story menjadi tasks. Tasks tersebut akan ditugaskan kepada anggota dari tim untuk diimplementasikan. Kemudian, pada fase ini sprint goal dan definiton of done juga ditentukan.
  3. Sprint : Fase sprint adalah fase mengimplementasikan user story yang sudah dipilih pada fase planning. Kode implementasi yang sudah dibuat harus dimasukkan ke dalam repository. Selama sprint berjalan, dilakukan daily standup meeting setiap 2 kali per minggu.
  4. Sprint review : Fase ini merupakan fase penilaian implementasi yang telah dilakukan selama sprint. Sprint review merupakan fase dimana development team mempresentasikan hasil sprint kepada Product Owner, kemudian Product Owner akan menentukan apakah hasil sprint tersebut diterima ataupun ditolak.
  5. Sprint retrospective : Fase evaluasi dimana tim mendiskusikan tentang hal-hal baik dan buruk yang terjadi pada fase sprint. Hal ini dilakukan dengan menuliskan atau sharing pendapat dari masing-masing anggota tim diikuti dengan penentuan eksperimen yang berguna untuk memperbaiki dan meningkatkan kinerja pada sprint selanjutnya.

Referensi :

  1. Abrahamsson, P., Salo, O., Ronkainen, J. & Warsta, J. (2002) Agile software development methods: Review and analysis, VTT publication 478, Espoo, Finland, 107p.
  2. Hanssen G.K., Stålhane T., Myklebust T. (2018) What Is Agile Software Development: A Short Introduction. In: SafeScrum® — Agile Development of Safety-Critical Software. Springer, Cham
  3. Manifesto Pengembangan Perangkat Lunak Agile. Agile Manifesto. Web. 19 Maret 2019. https://agilemanifesto.org/iso/id/manifesto.html
  4. The Scrum Guides. Scrum Guides. Web. 19 Maret 2019. https://www.scrumguides.org/scrum-guide.html
  5. Waterfall Model. Search Software Quality. Web. 20 Maret 2019. https://searchsoftwarequality.techtarget.com/definition/waterfall-model

--

--