Bedah 12 Prinsip Agile

Samuel T Pertamax
Au PPL
Published in
5 min readMar 19, 2019

Oke, sobat emas! Kembali lagi dengan saya, Samuel, seorang Hacker biasa pada tim Au PPL. Pada kesempatan kali ini, saya ingin menjelaskan apa itu Agile Development dan mencoba membedah prinsip-prinsip yang ada pada Agile Development.

How Did This Happened?

Bu Suci : Oke, sebutkan prinsip agile.

Me : *dumbfounded*

Bu Suci : Oke, ke competence selanjutnya aja, ya.

Ya… sesimpel itu…

Agile?

Siklus Agile (Sumber: https://www.kisspng.com/png-agile-software-development-software-development-pr-3361237/)

Sebelum kalian tambah bingung, lebih baik disampaikan dulu apa itu Agile Development.

Agile development merupakan sekumpulan metodologi pengembangan perangkat lunak yang memerlukan pengembangnya dapat beradaptasi dengan cepat pada perubahan.

Dalam Agile Manifesto, terdapat 4 nilai utama:

  1. Interaksi dan personel lebih penting daripada proses dan alat.
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan klien lebih penting daripada negosiasi kontrak.
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.

Secara keseluruhan terdapat enam langkah utama pada Agile development, yaitu:

  1. Perencanaan. Disini tim developer dan klien akan berdiskusi mengenai produk yang akan dibuat.
  2. Implementasi. Disinilah tim developer membuat produk dengan clean code, TDD, dan teman-temannya.
  3. Tes perangkat lunak. Tes disini berupa pengujian kepada calon user.
  4. Dokumentasi.
  5. Deployment.
  6. Pemeliaraan. Dilakukan secara berkala

Oke, langsung saja kita bedah 12 prinsip Agile Development.

1. Prioritaskan Kepuasan Klien

Ada klien meminta sekelompok orang membuat atau mengembangkan produk perangkat lunak. Sudah tahu, kan? Apa yang terjadi? Sekelompok orang tersebut tentunya akan membuat perangkat lunak yang sesuai dengan keinginan klien. Bagaimana cara tahu produk yang dibuat itu sesuai? Tentu saja meihat apakah kliennya puas atau tidak.

Sounds simple, right? Not really. Terkadang apa yang diinginkan klien pada awal perencanaan, dapat berubah ketika ia melihat produk kita. Nah, kalau sampai begitu, harus kerja lagi, deh.

Lantas, bagaimana menyikapinya? Kita harus melakukan delivery product secara rutin, agar kita mendapat feedback dari klien untuk pengembangan kedepan, sehingga hasil akhir product benar-benar akan memuaskan pelanggan.

2. Menerima Perubahan Kebutuhan

Seperti yang dijelaskan pada prinsip nomer 1, klien terkadang merubah kebutuhan produk setelah mencoba hasil produk yang dikembangkan. Dalam hal ini, tim developer harus siap menerima pekerjaan tambahan, dan merubah rencana pengembangan jika dirasa perlu. Well, Customer alyaws right.

3. Rilis Produk Secara Rutin

Untuk mendapatkan feedback dari klien, kita harus mengirim produk secara berkala untuk klien. Nah, pengiriman produk tersebut tidak bisa hanya ketika memang butuh feedback, harus dilakukan secara rutin. Semakin pendek jangka waktunya, akan semakin baik.

Selain berguna untuk proses pengembangan perangkat lunak, rilis produk secara rutin juga meningkatkan kepercayaan klien pada tim developer. Kalaupun memang hasil rilisnya tidak sebagus yang diharapkan, setidak klien mengetahui kalau tim developer memang mengerjakan proyek yang diminta dengan konstan.

4. Kolaborasi

Meskipun klien bukan bagian dari tim developer, klien tetap merupakan bagian dari tim proyek. Oleh karena itu, tim developer tetap harus mengikutsertakan klien dalam proses pengembangan perangkat lunak, karena toh, produk yang dikembangkan dalam proyek juga diperuntukkan kepada klien.

Caranya? Seringlah bertanya kepada klien tentang apa yang ia butuhkan secara detil, setiap kali developer meminta feedback kepada klien. Feedback dari klien terkadang masih bersifat umum, sehingga perlu ditanyakan kembali, apa yang sebenarnya kurang secara detil.

5. Bekerja dengan Individu yang Bersemangat

Kenapa anda tekun dalam main game? Karena anda suka main game! Karena anda suka main game, jadinya anda bersemangat main game. …Oke mungkin tidak semua suka main game.

Terus hubungannya apa? Coba ganti kata game dengan bekerja. Kalau anda semangat bekerja, maka anda akan tekun bekerja. Jika anda tekun bekerja, maka produk akan semakin baik, karena anda benar-benar memperhatikan apa yang kurang dalam produk anda.

Tapi kan, bekerja itu melelahkan… gimana bisa semangat…. Nah, untuk itulah, ciptakan suasana yang mendukung dalam tim. Jika suasananya mendukung, dijamin semua anggota akan semangat bekerja, sehingga prduk yang dihasilkan juga berkualitas.

6. Komunikasi Tatap Muka

Banyak hal yang kalau dikomunikasikan secara tertulis akan sulit, atau bahkan ada yang tidak bisa dikomunikasikan tertulis sama sekali. Karena itu, komunikasi tatap muka lebih baik dan efisien dibanding komunikasi tertulis.

Komunikasi tatap muka memiliki kelebihan, yaitu bahasa tubuh, yang membantu seseorang memahami apa maksud dari pembicaraan tersebut. Selain itu, komunikasi tatap muka (biasanya) tidak perlu memperhatikan struktur kalimat seperti komunikasi tertulis.

Pada Agile, tim developer dan klien sering melakukan sesi tatap muka untuk membahas produk yang dikembangkan. Dengan komunikasi seperti ini, terjalin kesepahaman yang lebih erat, sehingga produk yang dihasilkan lebih optimal.

7. Kunci Keberhasilan adalah Produk yang Bekerja

Ya, mungkin ini adalah prinsip yang agak kontroversial, namun memang kenyataannya begitu. Saya tidak akan membahas mengenai apakah ini berarti klien akan menerima produk selama produk yang dikembangkan bekerja.

Yang ingin saya bahas adalah, dalam pengembangan perangkat lunak, kita tidak dapat memaksakan cara pengembangan kode milik kita, dengan anggota lain. Setiap anggota memiliki cara koding masing-masing, dan hal itu sangat lumrah. Yang terpenting adalah bagaimanapun cara setiap anggota ngoding, produk tetap bekerja dengan optimal.

8. Kecepatan yang Konstan

Ada alasan mengapa perlu adanya rilis produk secara rutin. Rilis rutin akan memicu tim developer untuk mengembangkan proyek secara konstan, sehingga kecepatan pengembangnya pun konstan.

Kecepatan yang konstan akan mengurangi resiko ketidaktelitian, karena pekerjaan yang konstan akan memperhatikan setiap detil akan apa yang dikerjakan.

9. Perhatian terhadap Keunggulan Teknis dan Desain yang baik

Salah satu tuntutan tim developer adalah mampu mengikuti perkembangan teknologi. Perkembangan teknologi akan menyajikan desain dan teknis baru yang (biasanya) lebih baik.

Menjadi tugas bagi tim developer untuk belajar dan mengikuti pekermbangan teknologi, untuk hasil produk yang maksimal.

10. Kesederhanaan itu Penting

Tuntutan mengikuti teknologi, bekerja secara konstan, komunikasi tatap muka. Sangat banyak energi yang harus dikerahkan untuk mengembangkan perangkat lunak, belum lagi urusan di luar proyek yang tidak kalah memelelahkannya.

Saya tahu untuk beberapa orang yang perfeksionis, hal ini menimbulkan kontra, namun terkadang ada baiknya bekerja hanya sesuai keinginan klien, tidak perlu menambahkan fitur-fitur lain diluar hasil diskusi dengan klien. Ingat, anda bukan robot.

11. Mengelola Diri Sendiri

Pada akhirnya kita hanya manusia biasa. Kita tidak dapat memperkirakan semuanya dari awal sampai akhir. Bahkan, sekalipun sudah berdiskusi dengan klien, terkadang belum jelas di benak kita, seperti apa produk yang diinginkan.

Untuk itulah tim developer mengembangkan produk secara progresif. Awalnya produk tidak terlalu baik, namun setelah mendapat feedback dan belajar lagi, produk yang dirilis semakin lama semakin baik.

Itulah cara kerja Agile Development. Kita tidak dituntut tahu semua dari awal sampai akhir, namun menemukan gambaran utuh sembari mengembangkan produk.

12. Refleksi dan Penyesuaian

Pernah merasa serba salah ketika mengembangkan perangkat lunak? Atau mungkin anda ingin sesaat melihat kebelakang, apa yang sudah anda kerjakan? Saatnya berhenti sejenak dan merefleksikan apa yang sudah kita lakukan.

Manusia punya batasan, tidak dapat terus menerus belajar dan bekerja. Untuk itulah, terkadang kita perlu refleksi sejenak dan merenungkan apa yang telah kita lakukan. Apa yang baik dan buruk, yang harus diteruskan atau yang harus dihentikan. Kita perlu refleksi sejenak untuk mendinginkan kepala.

Tentu saja refleksi anda tidak sekadar mendinginkan kepala. Apa yang anda renungkan dapat membantu anda melakukan penyesuaian pada bagaimana rencana anda kedepannya dalam proses pengembangan.

Fiuh….

Haha… panjang sekali, ya… Yah, daripada pusing memikirkan semua prinsip di atas, jika memang ingin mencoba Agile Development, ya jalankan saja. Nanti seiring dengan berjalannya waktu, anda secara tidak sadar mungkin akan melakukan prinsip-prinsip di atas.

#AwesomenessUnified
#ITsTheRealThing
#PPLFasilkomUI

--

--