Tuesday, October 1, 2024

Agile Development

 


Apa itu agile?

Agile software development adalah metode pengembangan perangkat lunak yang didasarkan pada pengerjaannya yang berulang, dimana aturan dan solusi yang sudah disepakati oleh setiap anggota tim dilakukan dengan kolaborasi secara terstruktur dan terorganisir.

Ia sendiri merupakan metode pengembangan perangkat lunak dengan jangka waktu yang pendek. Selain itu ia juga membutuhkan adaptasi yang cepat dari pengembang terhadap perubahan yang mungkin terjadi dalam bentuk apapun.

Agile core value

Agile software development sendiri memiliki empat nilai inti. Berikut ini adalah keempat nilainya:

  1. Interaksi antar individu lebih penting dibandingkan proses dan alat. Nilai yang pertama ini menyatakan pengembangan perangkat lunak tidak akan sukses jika tidak ada kolaborasi antara tim pengembang dan klien. Selain itu dibutuhkan juga komunikasi yang baik agar pengembangan berjalan dengan baik dan maksimal.
  2. Proses pengembangan software lebih penting dibandingkan dengan dokumentasi. Pada masa lalu, tim pengembang menghabiskan banyak waktu untuk melakukan dokumentasi secara rinci. Dokumentasi pada agile dapat berupa cerita dari user untuk tim pengembang dapat mengembangkan fitur. Selain itu, dokumentasi ini memang penting, akan tetapi perangkat lunak yang berjalan sesuai dengan yang direncanakan jauh lebih penting.
  3. Kolaborasi dengan klien lebih penting dibandingkan dengan kontrak. Kontrak memanglah penting, tapi mungkin produk yang dibuat oleh pengembang berbeda dan sedikit tidak sesuai dengan apa yang dituliskan dalam kontrak. Dengan adanya kolaborasi dengan klien, tim pengembang dapat menyesuaikan produk yang dikembangkan sesuai dengan yang tertulis dalam kontrak dan keinginan klien.
  4. Menanggapi perubahan lebih penting daripada mengikuti rencana. Klien akan terus meminta perubahan dan revisi sampai klien merasa sesuai dengan produk yang dibuat. Maka dari itu setiap tim pengembang harus siap dengan perubahan yang terjadi.

Prinsip-Prinsip Agile

Agile software development didasarkan pada 12 prinsip. Berikut adalah kedua belas prinsip tersebut:

  1. Lebih menekankan kepuasan pengguna dengan cara merilis produk secara cepat dan bertahap.
  2. Selalu terbuka menerima perubahan, meskipun berdampak pada keterlambatan dalam mengembangkan produk.
  3. Dapat menghasilkan perangkat lunak yang dapat bekerja dengan baik dalam jangka waktu yang relatif pendek.
  4. Dapat menjalin kerja sama yang baik antara pengembang produk dan klien.
  5. Membuat suasana yang berisi anggota dengan motivasi yang tinggi. Dengan adanya lingkungan yang mendukung, maka setiap anggotanya akan menyelesaikan pekerjaan dengan baik.
  6. Sebisa mungkin melakukan komunikasi secara langsung, karena metode tersebut dinilai lebih efektif untuk menyampaikan informasi.
  7. Kemajuan sebuah proyek IT dinilai dari perangkat lunak yang dapat bekerja dengan baik.
  8. Pengembangan perangkat lunak yang berkelanjutan dengan dukungan dari berbagai pihak, seperti pengguna, klien, dan developer.
  9. Memiliki keunggulan dari segi teknis adalah hal utama dalam pengembangan perangkat lunak menggunakan metode agile
  10. Kesederhanaan adalah poin utama dalam agile development untuk memaksimalkan sumber daya yang ada.
  11. Setiap anggota tim harus mampu untuk mengorganisir diri sendiri.
  12. Melakukan refleksi secara berkala mengenai cara bekerja yang lebih efektif dan menyesuaikannya.

Tujuan Agile Development

Agile Development memiliki 7 tujuan sebagai berikut.

1. High Value & Working App System
Tujuan yang pertama adalah high value and working app system. Artinya, untuk menghasilkan sebuah software yang punya nilai jual tinggi namun menggunakan biaya pembuatan yang serendah mungkin. Namun kualitas produk tetap menjadi prioritas utama dan tidak boleh disepelekan.

2. Iterative, Incremental, Evolutionary
Agile merupakan metode pengembangan software yang dijalankan secara iteratif, berulang, serta bisa diubah di tengah jalan bila perlu. Dengan istilah lain, metode ini fleksibel dan bisa dipakai dalam proyek IT jangka pendek.

3. Cost Control & Value Driven Development
Proses software development bisa disesuaikan dengan kebutuhan user atau pengguna. Di samping itu, tim pengembang juga bisa mengontrol biaya serta waktu yang dibutuhkan untuk proses software development sesuai kebutuhan.

4. High Quality Production
Meskipun menggunakan biaya seminimal mungkin, produk berupa software atau perangkat lunak akan tetap terjaga kualitasnya.

5. Flexible & Risk Management
Tujuan fleksibel berkaitan dengan jadwal pertemuan dengan klien yang bisa diatur kapan saja. Dengan begitu, fungsi perangkat lunak yang sedang dikembangkan tetap terjaga. Cara ini juga dilakukan untuk mengurangi kesalahan program sebelum akhirnya dilakukan proses deploy aplikasi.

6. Collaboration
Kolaborasi sangat penting dilakukan oleh tim developer untuk membahas feedback dari klien. Oleh karena itu diperlukan koordinasi serta komunikasi yang baik dengan seluruh anggota tim.

7. Self Organizing, Self Managing Teams
Tujuan akhir dari metode Agile yaitu developer diberi akses untuk mengatur sendiri urusan software development. Tugas seorang manajer yaitu menjadi penghubung antara developer dan klien. Dengan begitu, kemungkinan miss communication bisa dikurangi.

Product Backlog

Sebagai sebuah framework, Agile development menggunakan delapan metode yang berbeda, yaitu:

1. Scrum Methodology
2. Scaled Agile Framework (SAFe) 
3. Lean Software Development (LSD)
4. Kanban
5. Extreme Programming (XP)
6. Crystal Methodology
7. Dynamic Systems Development Method (DSDM) 
8. Feature Driven Development (FDD)


No comments:

Post a Comment