Filosofi Agile
Agile adalah topik yang cukup kontroversial.
Serius!
Baru-baru ini terjadi diskusi hangat di Linkedin.
Singkatnya, di diskusi Linkedin tersebut, terdapat diskusi panas pro-kontra Scrum, pro-kontra Design Sprint, dll.
Buat penghuni milis Komunitas Scrum Indonesia, hal di Linkedin tersebut bukanlah hal yang baru.
Dan, sekedar info, heboh-heboh serupa bukan terjadi di Indonesia saja.
Agile is Dead
Ada tulisan terkenal berjudul “Agile is Dead (Long Live Agility)“.
Dan tebak siapa penulisnya? Dave Thomas! Salah satu penandatangan The Manifesto for Agile Software Development itu sendiri!
Harap dicatat ya: judul yang benar Manifesto for Agile Software Development bukan Agile Manifesto
Iya, memang itu hal pertama yang dikritik oleh Dave Thomas. Bagi dia, Agile Manifesto itu kesalahan tata bahasa yang fatal. Tahu kenapa?
Karena agile itu adalah kata sifat. Jadi, kalau frase Agile Manifesto yang selama ini keluar dari mulut orang-orang di lapangan—saya termasuk1, itu diterjemahkan di Google Translate, maka yang keluar adalah manifesto yang tangkas.
Dave juga berpendapat pergerakan agile software development telah melenceng dari semangat awalnya2. Agile software development sekarang jadi industri3. Dan hal itu terlihat dari pelaku-pelaku industri yang mengkatabendakan kata sifat agile, dengan membesarkan huruf pertamanya, jadi Agile.
Sebagai kata benda, Agile harus menjadi standar yang pakem. Fungsi dari kata benda adalah memang sebagai simbol dari sesuatu yang konkrit—yang jelas.
Yang jadi masalah—mungkin kamu sudah bisa tebak—adalah setiap orang punya versi Agile masing-masing di kepalanya.
“Oh, kode dia tidak dites, kok mengaku Agile ya dia.”
“Oh, tidak ada peran seperti Product Owner, bukan Agile nih.”
“Oh, tidak menulis kode berdua-duaan, ga Agile ah.”
Bukankah kata benda itu juga berfungsi sebagai standar? Standar apa yang tidak standar?
Kembali ke Kata Sifat
Jika kita kembali memandang dia sebagai kata sifat, kalimat-kalimat di atas jadi berubah.
“Oh, kode dia tidak dites, sepertinya ini penyebab aku lebih agile nih dari dia.”
“Oh, tidak punya peran seperti Product Owner, di sisi ini aku jelas lebih agile dari dia.”
“Oh, tidak menulis kode berdua-duaan, jadi penasaran kenapa pada akhirnya dia lebih agile dari saya.”
Betul. Salah satu fungsi kata sifat adalah untuk perbandingan. Contohnya kata sifat panas & dingin. Saat orang yang mobilnya mogok di pinggir jalan bilang “radiatornya sudah dingin”, tetap saja radiator dingin tersebut jauh lebih panas jika dibandingkan dengan lantai tempat kaki saya berpijak sekarang.
Mungkin kamu bertanya, “kalau fokusnya perbandingan, debat-debat seperti Linkedin di atas akan terjadi terus dong?”
Jawaban saya, iya dan tidak.
Iya, karena manusia adalah makhluk kreatif. Sudah banyak—dan akan terus diciptakan—teknik-teknik guna meningkatkan ketangkasan pengembangan software. Teknik-teknik tersebut
- ada yang baru lahir,
- ada pula yang sudah cukup teruji,
- ada yang bisa diterapkan di banyak kasus,
- ada pula yang baru bisa berjalan di kasus spesifik,
- ada yang ‘bisa dibeli eceran’,
- ada pula yang ‘sudah paketan’ (baca: framework, metodologi, atau apapun itu),
- dsb
Sudah hukum alam kalau anak-anak adam dan hawa akan membanding-bandingkan teknik-teknik itu. Hobi mereka memang mengkategorikan hal-hal—sembari asyik berdialektika.
Tidak, karena gaya diskusinya akan sedikit berbeda. Peserta diskusi akan lebih fokus untuk berbagi pengalaman masing-masing dalam menggunakan teknik-teknik yang ada—atau bahkan ciptaan sendiri. Mereka akan berbagi pengalaman tentang
- detail penggunaan sebuah teknik (baca: definisi tekniknya itu sendiri),
- konteks kondisi lingkungan saat teknik tersebut digunakan,
- dan bagaimana perubahan keluaran setelah menggunakan teknik tersebut.
Filosofi Agile
Jika mendengar kata tangkas, saya selalu terbayang monyet yang bergerak, atau Bruce Lee yang sedang bertarung. Saya membayangkan gerakan yang cepat, luwes, fleksibel, kreatif—kadang jenaka. Bicara tentang monyet dan Bruce Lee, mereka berdua punya keseimbangan yang luar biasa. Maksudnya, mereka mungkin bisa saja mempercepat gerak mereka, menambah manuver-manuver ajaib mereka, tapi kalau itu membuat mereka mudah jatuh, mereka tidak tangkas lagi4.
Mudahnya menurut saya:
Tangkas itu adalah gabungan kata sifat cepat, fleksibel, dan tidak mudah jatuh.
Tangkas, ya, sesederhana itu.
Ketangkasan aslinya memang hanya salah satu metrik dari kapabilitas fisik. Meski begitu, karena kita manusia adalah juga makhluk yang konseptual dan mampu beranalogi, kita bisa lihat ketangkasan dari kacamata sebuah tim kecil berkerja, pergerakan karir seseorang, atau sebuah organisasi di tengah konsumen dan kompetitor5.
Setiap yang bergerak dengan sadar, di tengah lingkungan yang tidak pasti, bisa kita nilai derajat ketangkasannya.
Termasuk pengembangan software.
Dilihat dari kacamata pengembangan software, akan ada banyak hal yang bisa dinilai ketangkasannya:
- kecepatan sebuah software dibuat,
- kecepatan sebuah fitur dalam sebuah software dibuat,
- kemudahan dirubahnya rancangan besar fitur tiba-tiba di tengah pengembangan,
- waktu tunggu dari selesainya fitur diuji sampai dia dirasakan oleh pengguna di lapangan,
- kecepatan tim dalam rapat taktik pengerjaan,
- jumlah bug pada software,
- ketahanan tim pengembang dalam bekerja dengan laju optimal di waktu yang lama,
- tingkat akurasi estimasi lama pengerjaan,
- dll.
Dari kacamata bisnis software—yang pengembangan software hanya jadi satu bagian di dalamnya—banyak pula yang bisa dilihat:
- kecepatan mendengar masukan dari pengguna,
- kecepatan mendapatkan inspirasi-inspirasi berkualitas,
- kecepatan dibuatnya rancangan software dari inspirasi atau masalah nyata para pengguna,
- ketepatgunaan sebuah rancangan software,
- kecepatan membuat program marketing dari rancangan software baru,
- waktu tunggu sebuah rancangan software difinalisasi sampai mulai dikerjakan,
- tentunya poin-poin di paragraf atas, yaitu ketangkasan pengembangan software itu sendiri,
- dll.
Hal-hal tersebut yang harusnya pertama kita pikirkan—yang jadi common ground kita semua. Pelbagai macam teknik hanyalah alat untuk meningkatkan sisi-sisi di atas6.
Semoga kita jadi makin sering berdebat berbagi tentang teknik-teknik untuk jadi lebih tangkas.
Dan semoga AgileCampus.org bisa jadi medium yang baik untuk itu.
Amin.
- Mau tahu buktinya? AgileCampus.org itu sendiri. Meski dalam kasus ini tidak terlalu masalah. Itu karena AgileCampus.org adalah bukan frase, melainkan merek dagang—yang memang kata benda
- Sedikit info sejarah. Frase agile software development sendiri baru lahir di pertemuan para senior di dunia pengembangan software di Utah tahun 2001—Dave salah satunya. Sebelumnya, mereka cukup sering menyebut teknik-teknik yang dieksperimenkan secara sporadis itu sebagai ‘metode ringan’. Di pertemuan itu, mereka sepakat kalau ringan hanyalah akibat, bukan sebab utamanya. Akhirnya mereka sepakat kalau benang merah dari metode-metode baru ini adalah sifat tangkasnya. Kata ‘agile’-pun menggantikan ‘lightweight’.
- Dave terlihat memandang rendah pihak-pihak yang membawa agile menjadi industri training dan konsultasi. Dalam hal ini, saya tidak sepakat. Industri edukasi agile justru berkontribusi membuat cara kerja baru yang Dave dkk usung ini, jadi lebih berdaging, mudah dicerna oleh orang kebanyakan, dan tersebar karena sistem yang baik. Sebagai penganut pasar bebas, jika saya di posisi Dave dan merasa manfaat yang edukator-edukator agile berikan tidak sebanding dengan uang yang mereka dapat, saya pribadi akan menyiapkan produk edukasi ideal versi saya, terjun ke pasar, dan membiarkan pasar menentukan hitungan manfaat-harga yang paling pas.
- Lebih dalam tentang sifat agile bisa dibaca di buku saya, Filosofi Agile & Panduan Scrum.
- Ketangkasan sebuah organisasi adalah kunci memenangi kompetisi di abad 21.
- Sebagaimana negara yang hanya alat, untuk lebih memanusiakan sekelompok manusia di suatu tempat. Bisa baca Mungkin Lebih Baik Indonesia Tidak Mereka untuk lebih memahami analogi ini.