Software Development Agile

Ryan Naufal
PDB+R
Published in
3 min readMar 17, 2019

Definisi dan Konsep

Agile adalah sebuah pendekatan dalam pengembangan software dimana requirement dan solusi suatu fitur dapat dikembangkan secara bersamaan dengan fitur lainnya. Pendekatan ini merupakan suatu hal yang cukup responsif terhadap perubahan dan membutuhkan skill komunikasi antar anggota developer yang baik. Hal tersebut disebabkan karena setiap fitur sangat tergantung oleh keinginan dari customer yang dapat berubah-ubah. Dengan begitu, agile dalam pengembangan perangkat lunak juga memiliki arti lincah demi memenuhi kebutuhan yang ada.

Pada tanggal 17 Februari 2001, tujuh belas developer (termasuk diantaranya adalah Ken Beck dan Martin Fowler) bertemu untuk mendiskusikan teknik pengembangan software yang ringan dan lincah. Mereka kemudian menghasilkan apa yang disebut sebagai The Agile Manifesto yang terdiri atas 4 nilai utama. Metode Agile ini merujuk pada sekumpulan metode dan praktik berdasarkan nilai dan prinsip yang tercantum didalam Agile Manifesto.

Agile Manifesto

Terdapat 4 nilai utama Agile Manifesto yaitu :

  1. Individuals and interactions over processes and tools

Individu dan interaksi lebih diutamakan dibandingkan proses dan alat-alatnya, karena yang memberikan respon terhadap kebutuhan klien adalah individu, bukannya proses, sehingga individu lah yang dominan dalam pengembangan software ini.

Beberapa masalah yang sering terjadi dalam pengembangan suatu aplikasi yaitu melempar tanggung jawab dan saling menyalahkan satu sama lain, dan kurangnya kolaborasi dalam satu tim. Masalah ini dapat diatasi jika adanya interaksi antar anggota yang baik.

2. Working software over comprehensive documentation

Pada Agile lebih mengutamakan working product terselesaikan dengan cepat dan memberikan kepada klien sehingga kita bisa mendapatkan feedback lebih cepat, yang dapat digunakan untuk membuat produk menjadi lebih baik lagi. Dokumentasi requirement diwujudkan sebagai user stories, dan itu sudah cukup untuk developer untuk melakukan implementasi fungsi yang diinginkan.

3. Customer collaboration over contract negotiation

Kolaborasi klien didalam iterasi pengembangan software akan menjadikan proses development menjadi lebih efektif. Hal ini pun akan menguntungkan kedua belah pihak, baik developer ataupun klien. Developer diuntungkan karena dapat mengetahui spesifikasi produk dengan lebih jelas dan mengeliminasi fitur yang tidak diinginkan. Klien juga diuntungkan karena produk yang jadi nantinya akan sesuai dengan kebutuhan dan keinginannya.

4. Responding to change over following a plan

Requirement yang sering berubah seiring berjalannya pengembangan dapat diatasi dengan Agile. Iterasi dalam Agile cenderung pendek dan fitur baru dapat ditambahkan pada iterasi berikutnya jika diperlukan. Fleksibilitas dalam pengerjaan project dapat meningkatkan kualitas produk dan produk juga akan lebih sesuai dengan kebutuhan klien. Metodologi Agile ini akan membuat produk sedekat dengan apa yang dibutuhkan oleh klien.

Tipe dari Agile

Sebenarnya terdapat beberapa jenis dari pendekatan agile. Tetapi dua yang paling terkenal adalah Extreme Progrmming (XP) dan Scrum.

Salah satu pendekatan yang digunakan pada kelompok kami adalah Scrum yang sesuai dengan arahan pada mata kuliah PPL kali ini. Scrum adalah sebuah framework untuk pengembangan, deliver, dan sustaining complex product. Scrum berfokus pada beberapa nilai, yaitu ringan, mudah dipahami, meskipun ada kekurangan nya yaitu sulit untuk dikuasai.

Event dalam Scrum

Pada implementasi scrum, terdapat beberapa orang yang berperan. Orang-orang itu berperan sebagai product owner, development team, dan scrum master. Mereka akan menjalankan peran masing-masing pada events. Event-event tersebut antara lain:

  1. Sprint 0 (Initialization Phase): Yaitu masa untuk membuat project vision dan backlog, serta membuat ide-ide.
  2. Sprint Planning: Pada masa ini, perlu dipikirkan goal untuk satu sprint dan memecah backlog menjadi task-task kecil. Kelompok kami melakukannya 2 minggu sekali.
  3. Implementation-Daily scrum meeting: Setiap meeting membicarakan progress yang telah dilakukan dan rencana ke depannya pada setiap sprint. Kelompok kami melakukannya seminggu 2 kali.
  4. Sprint Review: Yaitu suatu fase dimana product owner memberikan approval dan acceptance sehingga hasil setelah satu sprint dapat digunakan.
  5. Sprint Retrospective: Dilakukan setelah sprint review yang bertujuan untuk melakukan review terhadap berbagai halangan atau plus minus dari anggota developer selama bekerja pada satu sprint.

Oke deh gan, sepertinya tulisan dari saya mengenai Agile segini dulu. Semoga kalian ke-depannya semakin tertarik dengan tulisan dan kelompok kami :)

Referensi

https://assets.plan.io/images/blog/implementing-agile-project-management.png

http://agilemanifesto.org/iso/id/principles.html

--

--