Pengembangan Perangkat Lunak Agile
Pengembangan perangkat lunak agile adalah keluarga metode iteratif dan inkremental yang memprioritaskan perangkat lunak yang berfungsi, kolaborasi pelanggan, dan respons cepat terhadap perubahan dibandingkan perencanaan dan dokumentasi komprehensif di awal.
Definition
Pengembangan perangkat lunak agile adalah pendekatan di mana persyaratan dan solusi berkembang melalui iterasi singkat, dengan batasan waktu, dari tim lintas fungsi yang menghasilkan peningkatan yang berfungsi dan terus-menerus menggabungkan umpan balik pemangku kepentingan.
Scope
Topik ini mencakup nilai-nilai dan prinsip-prinsip Agile Manifesto; kerangka kerja konkret seperti Scrum, Extreme Programming (XP), dan Kanban; praktik-praktik termasuk iterasi singkat, umpan balik berkelanjutan, pengembangan berbasis pengujian (test-driven development), pemrograman berpasangan (pair programming), refactoring, dan rilis yang sering; serta peran, seremoni, dan artefak yang menyusun tim agile.
Core questions
- Nilai dan prinsip apa yang membedakan metode agile dari pengembangan berbasis rencana?
- Bagaimana kerangka kerja seperti Scrum dan XP menyusun iterasi, peran, dan umpan balik?
- Praktik rekayasa mana yang memungkinkan pengiriman yang sering dan andal?
- Kapan dan seberapa baik metode agile dapat diskalakan ke organisasi besar atau terdistribusi?
Key theories
- Nilai-nilai Agile Manifesto
- Empat pernyataan nilai memprioritaskan individu dan interaksi, perangkat lunak yang berfungsi, kolaborasi pelanggan, dan menanggapi perubahan, dengan dua belas prinsip pendukung yang menekankan pengiriman awal dan berkelanjutan serta menyambut persyaratan yang berubah.
- Kerangka kerja Scrum
- Scrum mengorganisir pekerjaan ke dalam sprint dengan durasi tetap dengan peran yang ditentukan (pemilik produk, master scrum, pengembang), artefak (product dan sprint backlog, increment), dan acara (perencanaan sprint, daily scrum, review, retrospective) untuk memberikan nilai secara inkremental.
- Praktik Extreme Programming
- XP menggabungkan iterasi singkat dengan praktik rekayasa yang disiplin seperti pengembangan berbasis pengujian (test-driven development), pemrograman berpasangan (pair programming), integrasi berkelanjutan (continuous integration), kepemilikan kolektif, dan refactoring untuk menjaga biaya perubahan tetap rendah.
Clinical relevance
Metode agile kini menjadi pendekatan dominan dalam perangkat lunak komersial, meningkatkan responsivitas terhadap perubahan pasar dan memungkinkan pengiriman nilai yang sering; efektivitasnya bergantung pada disiplin rekayasa, pemberdayaan tim, dan budaya umpan balik daripada hanya seremoni.
Evidence & guidelines
The Scrum Guide menyediakan definisi kerangka kerja Scrum yang banyak diadopsi, dan Agile Manifesto tetap menjadi pernyataan dasar nilai-nilai agile; kerangka kerja penskalaan seperti SAFe dan LeSS memperluas praktik agile ke organisasi besar.
History
Metode ringan seperti Scrum dan XP muncul pada tahun 1990-an sebagai reaksi terhadap proses yang berat dan didorong oleh dokumentasi. Pada tahun 2001, tujuh belas praktisi menerbitkan Agile Manifesto, menyatukan metode-metode ini di bawah nilai-nilai bersama; agile kemudian menjadi arus utama dan melahirkan kerangka kerja penskalaan pada tahun 2010-an.
Debates
- Penskalaan agile ke organisasi besar
- Apakah prinsip-prinsip agile mempertahankan manfaatnya ketika diskalakan melalui kerangka kerja seperti SAFe masih diperdebatkan; kritikus berpendapat penskalaan yang berat memperkenalkan kembali birokrasi, sementara pendukung melihat koordinasi terstruktur sebagai hal yang diperlukan untuk perusahaan besar.
Key figures
- Kent Beck
- Ken Schwaber
- Jeff Sutherland
- Martin Fowler
- Alistair Cockburn
Related topics
Seminal works
- beck2001
- beck2004
- schwaber2020
Frequently asked questions
- Apakah agile berlawanan dengan rekayasa yang disiplin?
- Tidak. Agile yang efektif sangat bergantung pada disiplin rekayasa seperti pengujian otomatis, integrasi berkelanjutan, dan refactoring; penekanan agile adalah pada adaptasi terhadap perubahan dengan cepat, bukan pada pengabaian ketelitian.
- Apa perbedaan antara Scrum dan agile?
- Agile adalah seperangkat nilai dan prinsip yang luas; Scrum adalah salah satu kerangka kerja spesifik yang mengimplementasikannya dengan peran, acara, dan artefak tertentu. XP dan Kanban adalah kerangka kerja agile lain dengan penekanan yang berbeda.