Skip to content

Apakah Pembangunan Agile?

Agile ialah nama payung untuk keluarga kaedah yang dibina sekitar satu pertaruhan tunggal: perisian terlalu tidak boleh diramal untuk dirancang secara terperinci di hadapan, jadi hantar dalam hirisan kecil, dengar apa yang kembali, dan sesuaikan secara berterusan.

Halaman ini meliputi latar belakang. Jika anda sudah tahu semua ini, imbas ke Bagaimana East Agile Tracker memetakan kepada agile.

Pada Februari 2001, tujuh belas pengamal perisian — Kent Beck, Martin Fowler, Robert Martin, Ron Jeffries, dan lain-lain — bertemu di sebuah pondok ski di Utah dan menulis apa yang mereka kongsi bersama. Mereka memanggilnya Manifesto Agile. Ia adalah empat baris:

Kami sedang membongkar cara yang lebih baik untuk membangunkan perisian dengan melakukannya dan membantu orang lain melakukannya. Melalui kerja ini kami telah menghargai:

  • Individu dan interaksi lebih daripada proses dan alat
  • Perisian yang berfungsi lebih daripada dokumentasi yang komprehensif
  • Kerjasama pelanggan lebih daripada rundingan kontrak
  • Bertindak balas terhadap perubahan lebih daripada mengikut rancangan

Iaitu, walaupun ada nilai pada item di sebelah kanan, kami lebih menghargai item di sebelah kiri.

Itu sahaja. Satu halaman mukadimah, dua belas prinsip sokongan, dan empat baris di atas. Ia adalah dokumen yang paling berpengaruh dalam amalan perisian moden.

Di sebalik empat nilai itu, dua belas prinsip manifesto mengeja apa “agile” sebenarnya kelihatan dari hari ke hari:

  1. Keutamaan tertinggi ialah memuaskan pelanggan melalui penghantaran perisian bernilai yang awal dan berterusan.
  2. Sambut keperluan yang berubah, walaupun lewat. Proses agile memanfaatkan perubahan untuk kelebihan daya saing pelanggan.
  3. Hantar perisian yang berfungsi dengan kerap — minggu dan bukannya bulan.
  4. Orang perniagaan dan pembangun mesti bekerja bersama setiap hari.
  5. Bina projek di sekitar individu yang bermotivasi. Berikan mereka apa yang mereka perlukan dan percayakan mereka untuk menyelesaikan kerja.
  6. Cara paling cekap untuk menyampaikan maklumat ialah perbualan bersemuka.
  7. Perisian yang berfungsi ialah ukuran utama kemajuan.
  8. Proses agile menggalakkan pembangunan mampan — kadar yang malar, tanpa had.
  9. Perhatian berterusan terhadap kecemerlangan teknikal dan reka bentuk yang baik meningkatkan agiliti.
  10. Kesederhanaan — seni memaksimumkan jumlah kerja yang tidak dilakukan — adalah penting.
  11. Seni bina, keperluan, dan reka bentuk terbaik muncul daripada pasukan yang mengatur diri sendiri.
  12. Pasukan kerap merenung cara untuk menjadi lebih berkesan, kemudian menala dan menyesuaikan.

“Agile” ialah payung. Di bawahnya terdapat beberapa metodologi yang berbeza:

  • eXtreme Programming (XP) — Yang paling menuntut dalam keluarga. Pengaturcaraan berpasangan, TDD, integrasi berterusan, pelanggan di tapak, release kecil. Lihat halaman XP kami.
  • Scrum — Iterasi berkotak-masa yang dipanggil sprint, standup harian, peranan bernama (Product Owner, Scrum Master). Lebih ringan pada amalan kejuruteraan berbanding XP.
  • Kanban — Visualkan aliran kerja, hadkan kerja-dalam-proses, optimumkan aliran. Tiada kotak masa; tarik dan bukannya tolak.
  • Lean — Dipinjam daripada sistem pembuatan Toyota: hapuskan pembaziran, optimumkan keseluruhan, hantar pantas, bina kualiti ke dalamnya.

Kaedah ini bertindih dan bergabung. Kebanyakan pasukan yang bekerja memilih daripada keempat-empatnya. East Agile Tracker bersikap tegas ke arah XP — lihat eXtreme Programming — tetapi kebanyakan apa yang ditawarkannya berfungsi untuk mana-mana rasa agile.

Beberapa salah tanggapan berterusan yang patut dinamakan:

  • Agile bukan “tiada perancangan.” Rancangan lebih kecil dan lebih pendek, tetapi perancangan adalah berterusan.
  • Agile bukan “tiada dokumentasi.” Tulis apa yang diperlukan. Manifesto mengatakan perisian yang berfungsi lebih bernilai daripada dokumentasi yang komprehensif — bukan dokumentasi itu buruk.
  • Agile bukan Scrum. Scrum ialah satu kaedah agile. Ada beberapa.
  • Agile bukan alat. Tiada alat menjadikan anda agile. Agile ialah cara bekerja. Alat (termasuk yang ini) membantu; ia tidak menggantikan.

Bagaimana East Agile Tracker memetakan kepada agile

Section titled “Bagaimana East Agile Tracker memetakan kepada agile”

East Agile Tracker direka bentuk di sekitar prinsip di atas. Inilah hubungannya:

PrinsipBagaimana tracker menyokongnya
Penghantaran berterusanIterasi 1–4 minggu; perancangan automatik berasaskan velocity; release sebagai jenis story kelas pertama.
Sambut perubahanSusun semula backlog pada bila-bila masa; story bergerak merentasi iterasi dengan bebas; tiada “kunci iterasi.”
Perisian yang berfungsi sebagai ukuranVelocity mengira mata yang diterima secara lalai — hanya kerja yang dihantar dan berfungsi yang dikira.
Kadar mampanVelocity bukan sasaran; ia pemerhatian. Sistem merancang iterasi seterusnya dengan apa yang anda sebenarnya lakukan.
RefleksiAnalitik setiap iterasi: burndown, kadar penolakan, masa kitaran, unjuran.
Pasukan yang mengatur diri sendiriPeranan sengaja minimum: owner / member / viewer. Pasukan yang memutuskan.
KesederhanaanPanel butiran ialah satu skrin. Papan muat pada satu halaman. Kami menentang ciri yang mengalih perhatian daripada penghantaran.

Manifesto ditulis pada 2001. Sejak itu, pembangunan perisian telah memperoleh sejenis peserta baharu: ejen AI.

Kami berfikir ejen tergolong dalam pasukan agile — sebagai peserta bernama, dengan peranan mereka sendiri, melakukan kerja sebenar bersama manusia. Prinsip masih berpegang. Individu dan interaksi kini termasuk peserta ejen. Pasukan yang mengatur diri sendiri kini termasuk memutuskan ejen mana untuk dibawa masuk dan apa yang mereka dibenarkan lakukan. Refleksi kini termasuk melihat sumbangan ejen dalam log aktiviti dan menala apa yang mereka kerjakan.

East Agile Tracker dibina untuk menjadikan ini praktikal. Setiap story boleh dimiliki oleh manusia atau ejen. Setiap entri log audit mengaitkan pelaku sebenar. Setiap tindakan yang ejen ambil adalah kelihatan, boleh disemak, dan boleh dibatalkan.

Dibina oleh East Agile.