Management and Support

Agile Software Development, Sebuah Pengenalan

Jika kamu berkutat di dunia pengembangan perangkat lunak, pasti tidak asing dengan istilah Agile. Kata ini saya kenali pertama kali pada tahun...

Written by Jundi Amir · 2 min read >

Jika kamu berkutat di dunia pengembangan perangkat lunak, pasti tidak asing dengan istilah Agile. Kata ini saya kenali pertama kali pada tahun 2018. Pada saat itu saya dan teman-teman kelas melakukan magang di berbagai perusahaan IT. Kata ini banyak disebutkan oleh teman-teman yang magang di start-up terutama yang mendapat berkutat dengan bagian manajemen proyek. Bahkan yang diceritakan sudah cukup spesifik berupa kegiatan harian dari pelaksanaan sprint dalam scrum, dimana scrum adalah salah satu kerangka kerja turunan Agile yang paling populer.

Nah kembali lagi, sebetulnya apa sih Agile itu? Menurut perspektif saya, Agile adalah salah satu ‘cara pandang’ yang digunakan dalam pengembangan perangkat lunak yang mengedepankan fleksibilitas dalam pengembangannya. Fleksibilitas yang dimaksud adalah respon cepat terhadap pengubahan kebutuhan (changing requirements) selama proses pengembangan perangkat lunak. Ini menjadi hal baru pada tahun 90-an, dimana pada saat itu proses pengembangan perangkat lunak yang terkenal adalah metode waterfall. Metode waterfall ini mengunci/membatasi kebutuhan akan suatu produk di awal proyek. Proses tersebut cocok untuk pengembangan perangkat lunak yang sederhana, padahal semakin ke sini, perangkat lunak akan meningkat kompleksitasnya.

Pada awal tahun 2000an, sekelompok tokoh yang bergerak di dunia industri perangkat lunak melakukan sebuah pertemuan. Pertemuan ini dilakukan dengan tujuan untuk merumuskan metodologi pengembangan perangkat lunak yang baru. Akhirnya Agile Software Development terlahir secara resmi. Kemudian dirumuskanlah nilai-nilai (core values) yang merupakan ciri yang membedakan metodologi ini dengan metodologi lain yang sudah ada (traditional methodologies). Nilai-nilai tersebut dikenal dengan istilah Agile Manifesto. Berikut ini adalah poin-poin dari Agile Manifesto:

  1. Individuals and interaction over processes and tools
    Poin pertama menggambarkan pentingnya interaksi antar manusia dalam tim. Tim pengembang dalam metodologi agile harus lebih mencurahkan pikiran dan tenaga untuk mengelola ritme kerja mandiri (individual) sekaligus mengoptimasi kominikasi antar anggotanya, alih-alih memulai dengan prosedur dan standardisasi alat-alat penunjang.

    Keanggotaan dalam tim tidak dirancang secara hirarki, dimana satu pihak perlu menerbitkan perintah sesuai birokrasi untuk menggerakkan pihak lain di ‘bawahnya’. Keanggotaan dibuat secara sirkular dimana pusatnya adalah perangkat lunak. Model ini akan memungkinkan setiap orang dalam tim memiliki rasa tanggungjawab dan posisi tersendiri dalam proses pengembangan perangkat lunak.

    Model ini juga mendorong interaksi satu sama lain dalam anggota tim dengan setara. Tanpa menghilangkan peran (roles) spesifik setiap orang.
    Poin agile manifesto pertama ini tidak menunjukkan bahwa proses dan tools tidak
    berguna, melainkan untuk menjelaskan bahwa proses dan alat pada dasarnya tidak akan responsif terhadap pengubahan akan kebutuhan dan keinginan customer.
  2. Working software over comprehensive documentation
    Agile hadir bukan untuk mengeliminasi dokumentasi proyek pengembangan perangkat lunak, melainkan untuk mempersingkatnya. Pada metodologi tradisional, pengembangan perangkat lunak bersifat documentation driven. Kendala-kendala yang muncul dari sifat inilah yang coba ditanggulangi untuk menghasilkan proses pengembangan yang lebih fleskibel dan adaptif. Agile tetap menerima proses modelling dan dokumentasi hanya apabila keuntungan dari proses tersebut cukup jelas dan tuntas.
  3. Customer collaboration over contract negotiation
    Dalam dunia drama pengembangan perangkat lunak, customer sering menjadi pihak yang tidak mau tahu akan proses pengembangan. Yang diinginkannya adalah supaya perangkat lunak selesai tepat waktu, dana tidak bocor, dan fitur lengkap. Lalu pengembang akan banting tulang siang malam hingga begadang untuk merampungkan aplikasi ‘seadanya’. Saat customer mencoba aplikasi, rupanya tidak sesuai espektasi. Meminta perbaikan pun akan sulit karena menambah waktu dan biaya. Akhirnya produk tidak pernah muncul di halaman unduhan aplikasi. Ini adalah mimpi buruk bagi customer dan developer.

    Membangun perangkat lunak tidak pernah sama dengan membangun gedung bertingkat. Membuat kontrak di awal untuk membatasi waktu dan biaya malah jadi bumerang bagi semua pihak. Maka terminologi kolaborasi dijadikan jembatan untuk mempertemukan kenyataan dengan kebutuhan. Menjembatani espektasi pelanggan dengan kompleksitas teknis yang dihadapi pengembang. Setelah dijembatani, muncul empati yang menjadi kunci dari kualitas perangkat lunak yang dikembangkan.
  4. Responding to change over following a plan
    Merespon terhadap pengubahan dalam pengembangan perangkat lunak awalnya tabu dan sulit dilakukan. Atau setidaknya disimpan untuk dikerjakan entah kapan. Padahal seringkali customer baru menyadari kebutuhannya setelah keinginannya diimplementasikan dalam bentuk aplikasi. Fenomena ini yang membuat metode manajemen proyek yang berjalan sekuensial tidak lagi relevan. Dibutuhkan proses yang memfasilitasi pengubahan yang sifatnya iteratif.

Mempelajari dan mengimplementasikan Agile Software Development Methodology tentu butuh waktu dan usaha. Perlu penyesuaian terhadap banyak kasus proyek pengembangan, tidak bisa asal diimplementasikan. Baiknya kita yang berkutat dengan dunia ini menginvestasikan waktu dan usaha untuk mempelajarinya. Kemudian perlahan mulai menerapkannya dalam ritme kerja perusahaan. Jangan malu untuk bertanya dan diskusi dengan orang lain. Ada banyak komunitas yang memfasilitasi diskusi seputar metodologi ini. Yang terpenting kita harus sabar untuk terus mau belajar.

Mungkin saya cukupkan saja untuk tulisan ini. Untuk diskusi lebih lanjut dapat berikan komentar atau DM ke @jundijas (Instagram). Semoga tulisan-tulisan berikutnya dapat lebih baik dan bermanfaat untuk para pembaca.

See you!

Referensi

  • “The History of Agile”, accessed at 22/4/2020, available at: https://study.com/academy/lesson/the-history-of-agile.html
  • “Manifesto for Agile Software Development”, accessed at 22/4/2020, available at: https://agilemanifesto.org/
  • “Agile Manifesto”, accessed at 22/4/2020, available at: https://searchcio.techtarget.com/definition/Agile-Manifesto

Written by Jundi Amir
STI ITB 2015 | System Analyst at PT. Ihsan Solusi Informatika | Pingpong and Skateboard | IG: @jundijas Profile

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *