
Dilbert - Agile Programming

Dilbert - Extreme Programming (1)

Dilbert - Extreme Programming (2)

Dilbert - Extreme Programming (3)
Sumber: “Dilbert” on Extreme and Agile Programming

Dilbert - Agile Programming

Dilbert - Extreme Programming (1)

Dilbert - Extreme Programming (2)

Dilbert - Extreme Programming (3)
Tidak semua permasalahan dapat diselesaikan dengan agile. Kondisi dan kultur tim juga berpengaruh terhadap keberhasilan penerapan agile.
Agile membutuhkan kedisiplinan yang sangat ketat dan aturan yang jelas, karena agile didesain untuk menghadapi lingkungan yang sangat dinamis. Tanpa ini semua, agile tidak akan pernah berhasil.
Seperti metodologi lain pada umumnya, agile juga membuat perancangan, dokumentasi, arsitektur, dsb. Justru semua ini dilakukan secara transparan dan menitik beratkan pada kebutuhan, kecepatan dan kualitas. Memang kadang kala agile menghasilkan dokumentasi yang minimalis, tapi bukan berarti dokumentasi tersebut dibuat minimalis dengan cara mengabaikan banyak hal esensial sehingga tidak dapat merepresentasikan sistem yang dibangun secara komprehensif. Hal ini karena agile selalu berusaha meminimalisir pemborosan tenaga dan waktu, sehingga menghasilkan iklim kerja yang efektif dan efisien.
Pengujian (testing) adalah bagian yang krusial pada agile. Salah satu parameter perangkat lunak yang berkualitas adalah perangkat lunak yang telah lolos uji. Pada metode tradisional, pengujian kadang kala malah dianggap remeh dan hanya untuk seremonial semata.
Berdasarkan Forrester Research, 14% enterprise di Amerika Utara dan Eropa telah menggunakan agile, dan 19% lainnya tertarik dan berencana untuk menggunakan agile di masa mendatang. Google dan Yahoo adalah dua dari sekian perusahaan ternama yang telah menggunakan agile.
Dan masih banyak lagi mitos seputar agile…
Fakta: sebagian proyek perangkat lunak terlambat, melebihi anggaran, dan tidak dapat memenuhi kebutuhan pasar ketika diluncurkan. Sepertinya ini telah menjadi masalah klasik rekayasa perangkat lunak sejak dahulu kala. Apa yang menyebabkan ini? Banyak faktor, salah satunya adalah kesalahan dalam memilih metodologi.
Ada berbagai jenis metodologi yang digunakan dalam rekayasa perangkat lunak, salah satunya adalah agile. Agile development sendiri masih mencakup berbagai metodologi, antara lain Scrum, Extreme Programming, Agile Unified Process (AUP), Feature-Driven Development, Lean Development, Dynamic System Development Method (DSDM), OpenUP, Agile Modeling, Crystal, dsb. Ciri khas dari semua metodologi agile ini adalah sifat iterative dan incremental, hal ini sangat berbeda dengan metodologi tradisional (baca: waterfall). Sebagai catatan, Scrum adalah metodologi (atau lebih tepatnya framework) yang paling banyak digunakan dan paling berkembang hingga saat ini.
Perubahan yang cepat, kebutuhan pasar yang terus meningkat, menuntut untuk menggunakan suatu metodologi yang fleksibel, responsif, adaptif terhadap perubahan, dan terjamin kualitasnya. Agile memberikan solusi terhadap masalah ini, perusahaan besar seperti Google, Yahoo, Microsoft, Cisco, Siemens, Motorola telah mengembangkan agile untuk meningkatkan bisnis dan menjaga supaya perusahannya tetap kompetitif di pasar.
Secara cepat, kini agile mulai beranjak menjadi de-facto standard untuk proses pengembangan perangkat lunak.