Breakdown Agile Manifesto (Bahasa)
Satu hal yang harus kita setujui bersama adalah, perkembangan teknologi Selalu berkembang setiap tahunya linier dengan perkembangan gaya hidup masyarakat. Kemudian dibalik perkembangan teknologi, ada yang namanya perkembangan tata cara membuat teknologi tersebut, atau biasa yang kita kenal adalah Technology / Product Development.
Sesuatu yang hebat adalah bukan sejauh mana atau sekeren apa itu teknologi, melainkan sejauh mana proses pengembangan produk/teknologi dapat menjawab kebutuhan masyarakat, DAN proses pengembangan produk yang sedang populer saat ini adalah Agile Development.
Dalam praktiknya agile development memiliki kiblat tersendiri dalam pengembangan sebuah produk, yaitu Agile Manifesto atau sebuah prinsip-prinsip dalam pengembangan produk.
Agile Manifesto
Pada deklarasinya, Agile development methods terdefinisi dalam 4 nilai utama, biasa di sebut Agile Alliance’s Manifesto.
Individu dan interaksi lebih dari proses dan sarana perangkat lunak
Perangkat lunak yang bekerja lebih dari dokumentasi yang menyeluruh
Kolaborasi dengan klien lebih dari negosiasi kontrak
Tanggap terhadap perubahan lebih dari mengikuti rencana
Manifesto tersebut terdiri dari dua buah bagian sisi kanan (Text yang tidak bold) dan sisi kiri (Text yang Bold). Pada proses Agile development , lebih akan sangat perioritas sisi kiri ketimbang sisi kanan.
Individu dan interaksi lebih dari proses dan sarana perangkat lunak
Point pertama dalam Agile Alliance’s Manifesto adalah bagaimana proses pengembangan dan interaksi dalam sebuah team yang terdiri dari individu-indivdu lebih berarti ketimbang teknologi atau tools yang digunakan dalam pengembangan produk.
Saya ambil contoh begini; sebuah Start-up penyedia pembuatan Games yang terdiri dari 3 orang programmer dan 2 orang desainer. Sedang dalam tahap pengembangan games 3D, alih-alih fokus pada kordinasi dan interaksi mereka malah fokus pada tugas dan kerjaan mereka sendiri. Mereka tidak peduli dengan hasil kerja sesama anggotanya, mereka hanya berpikir modul yang mereka kerjaakan terlihat lebih keren dan atasan puas. Startup ini jelas sangat salah, karena akan berimbas pada produk yang dihasilkan.
Perangkat lunak yang bekerja lebih dari dokumentasi yang menyeluruh
Point kedua memang sangat cukup jelas, Produk yang baik dalah produk yang running well. Dokumentasi memang cukup penting tapi perlu diketahui, pembuatan dokumentasi cukuplah memakan waktu. Menurut Agile Alliance’s Manifesto, fokus dalam pembuatan produk hingga selesai dan berjalan dengan baik adalah hal yang paling penting.
Kolaborasi dengan klien lebih dari negosiasi kontrak
Ada istilahnya tak kenal maka tak sayang. Hal ini ternyata berlaku di dunia start-up, khususnya dalam menghadapi klien atau konsumen. Menurut Agile Alliance’s Manifesto cara kita dapat berinteraksi dan berkolaborasi dengan klien atau konsumen lebih penting dari pada negosiasi kontrak. Hal tersebut cukup masuk akal, mengingat bilamana seorang klien tidak mau diajak berdiskusi akan berdampak pada proses pengerjaan produk.
Jika dalam konteks sebuah start-up penyedia layanan jasa (Pembuatan web, app, dll), saya lebih menyarankan untuk lebih mendalamai sikap dan kepribadian klien. Jauhkan paradigma seberapa besar nilai kontrak, melainkan coba pahami karakter dan kemauan klien. Pengalaman saya adalah, effort yang dikeluarkan ketika menghadapai klien yang banyak maunya dan tidak mau berdiskusi, tidak akan pernah sebanding dengan nilai kontrak yang didapatkan walaupun nilai kontrak sudah terbilang cukup besar.
Tanggap terhadap perubahan lebih dari mengikuti rencana
Point ini adalah point yang menggambarkan kata Agile lebih dalam. Pada proses pengembangan produk, sangat tidak dianjurkan untuk membuat sebuah rencana yang bersifat mengikat dan harus diikuti. Melainkan buatlah berbagai tahap pembuatan produk, sehingga ketika sudah menyelesaikan tahap pertama maka lakukan review kembali baik dari segi klien/konsumen hingga segi teknis. Jika hal itu dilakukan maka tim pengembang akan lebih jeli dan peka terhadap perubahan-perubahan yang diperlukan.
Saya ambil contoh seperti ini; Sebuah Start-up akan meluncurkan sebuah aplikasi pada akhir tahun ini, dan saat ini proses pengembangan masih pada tahap desain tatap muka. Untuk mendapatkan sebuah aplikasi versi utuh/versi final, sebaiknya versi produk dibagi-bagi menjadi beberapa versi. Katakanlah versi final adalah versi 1, maka tim pengembang haruslah membagi versi produk menjadi versi 0.1, 0.5, 0.6, dst. Ketika setiap versi sudah selesai maka dilakukan testing dan review, sehingga ketika sewaktu-waktu ada perubahan maka tidak akan terlau memakan cukup banyak waktu dan tenaga. Coba bayangkan ketika kita sudah berusaha extra keras menyelesaikan versi final dan baru kita sadari bahwa ternyata perlu adanya perubahan-perubahan, hal ini akan lebih memakan banyak waktu dan tenaga.