"Jadi, saya ingin memberitahu anda tentang Agile dan Scrum ."

"Pada awal abad ke-21, cara orang berfikir tentang pengaturcaraan telah terbalik."

"Semua orang yakin bahawa perancangan jangka panjang tidak berfungsi, jadi mereka memutuskan untuk meninggalkannya sama sekali."

"Bagaimana mereka melakukannya?"

"Ini caranya."

"Mereka mencipta pendekatan pengurusan projek yang paling fleksibel."

Berikut adalah idea utama di sebalik pembangunan tangkas :"

  • manusia dan komunikasi lebih penting daripada proses dan alat;
  • produk yang berfungsi adalah lebih penting daripada dokumentasi yang lengkap;
  • bekerjasama dengan pelanggan adalah lebih penting daripada memenuhi syarat kontrak;
  • kesanggupan untuk berubah adalah lebih penting daripada berpegang pada rancangan asal.

Berikut adalah prinsip pembangunan pesat:

  • memuaskan hati pelanggan dengan membekalkan perisian berharga awal dan berterusan;
  • mengalu-alukan perubahan dalam keperluan walaupun pada akhir pembangunan (ini boleh meningkatkan daya saing produk akhir);
  • menghantar perisian yang berfungsi dengan kerap (setiap bulan atau minggu atau lebih kerap);
  • komunikasi harian yang rapat antara pelanggan dan pemaju sepanjang keseluruhan projek;
  • projek ini diusahakan oleh individu yang bermotivasi yang dibekalkan dengan keadaan kerja, sokongan dan kepercayaan yang diperlukan;
  • kaedah pilihan untuk menyampaikan maklumat ialah perbualan peribadi (bersemuka);
  • perisian berfungsi adalah ukuran kemajuan terbaik;
  • penaja, pembangun dan pengguna harus dapat mengekalkan kadar yang berterusan untuk tempoh yang tidak ditentukan;
  • tumpuan berterusan untuk meningkatkan kecemerlangan teknikal dan reka bentuk mesra pengguna;
  • kesederhanaan adalah seni tidak melakukan kerja yang berlebihan;
  • keperluan teknikal, reka bentuk dan seni bina yang terbaik datang daripada pasukan yang diatur sendiri;
  • penyesuaian yang berterusan kepada keadaan yang berubah-ubah.

"Masalah utama dengan pembangunan perisian ialah pada mana-mana peringkat tiada peserta mempunyai maklumat lengkap tentang apa yang perlu dilakukan."

"Pelanggan boleh memberitahu anda bagaimana dia membayangkan program itu, tetapi dia akan meninggalkan sesuatu atau mengambil sesuatu untuk diberikan."

"Pengurus biasanya perlu menterjemah keperluan daripada jargon pengaturcaraan kepada bahasa pelanggan dan kembali semula."

"Terdapat terlalu banyak ketidakpastian."

"Selalunya keperluan pelanggan adalah seperti ini: lakukan dalam beberapa cara, kemudian tunjukkan kepada saya — jika saya tidak menyukainya, maka anda boleh buat semula."

"Eh... teruknya."

"Mengikut paradigma baharu, pengaturcara tidak lagi membangunkan produk atau program. Sebaliknya, mereka melaksanakan fungsi yang diperlukan pelanggan."

"Apa perbezaannya?"

"Nah, anggaplah pembangunan program itu dahulunya mengambil masa setahun. Dan enam bulan perlu berlalu sebelum ada apa-apa untuk dilihat. Ia seperti membina sebuah rumah besar: pertama, anda menggali lubang untuk asas, kemudian tuangkan asas, membina dinding, bumbung, trim, dll."

"Tetapi sekarang pengaturcara cuba melepaskan fungsi yang diperlukan secepat mungkin. Ini sama seperti mula-mula membina pondok, kemudian rumah mudah alih, kemudian rumah kecil, dan barulah rumah besar-secara ansuran."

"Memandangkan bahawa pelanggan mungkin tidak tahu apa yang dia mahukan, maka ini adalah pendekatan yang sangat munasabah."

"Anggaplah pelanggan itu mahukan rumah perburuan yang besar."

"Pemaju membina dia seorang anak kecil. Dia tinggal di dalamnya untuk musim sejuk. Kemudian dia memutuskan bahawa dia tidak suka rumah kayu. Mari kita buat satu daripada batu bata."

"Dia tinggal berhampiran tasik untuk musim panas, tetapi nyamuk memakannya hidup-hidup. Dia pernah mendengar di suatu tempat bahawa tasik itu sejuk, jadi dia teringin mempunyai satu. Tetapi sekarang dia tidak mahu tasik. Dan ia akan menjadi lebih mudah untuk membina. rumah dengan cara ini: tiada tasik bermakna tiada ancaman banjir, dan anda boleh membina rumah di atas tanah dan bukannya di atas tiang, yang akan menjadi 25% lebih cepat."

"Satu analogi yang menarik. Adakah pelanggan benar-benar menukar keperluan mereka dengan kerap?"

"Ya, tetapi masalahnya bukan pelanggan."

"Pertama, amat sukar untuk membayangkan bagaimana keadaan akan berlaku pada masa hadapan. Pengurus, penguji dan pengaturcara semuanya melakukan perkara ini juga. Mereka juga mengubah fikiran mereka bergantung pada bagaimana keadaan berlaku."

"Kedua, bukankah keperluan pelanggan yang paling penting?  Lagipun , tujuan semua kerja ini adalah untuk mencipta apa yang pelanggan perlukan , bukannya apa yang dia katakan pada mulanya untuk mencipta ."

"Memang, ia pernah berfungsi seperti ini: penganalisis perniagaan akan membuat senarai semua keperluan. Mereka akan memasukkan senarai ini dalam kontrak, menandatanganinya dan hanya bekerja mengikut senarai."

"Sekiranya senarai itu kehilangan sesuatu yang benar-benar diperlukan pelanggan tetapi terlupa, tiada siapa yang akan berbuat apa-apa mengenainya."

"Saya faham. Lebih mudah mengikuti rancangan, tetapi tidak semuanya boleh dilakukan mengikut rancangan!"

"Tepat sekali."

"Itulah sebabnya kaedah pembangunan tangkas dicipta."

"Dan hari ini saya akan memberitahu anda tentang Scrum - yang paling popular di kalangan mereka.

"Ciri utama Scrum ialah pembahagian pembangunan projek kepada lelaran kecil - biasanya selama 2-4 minggu. Setiap lelaran dipanggil pecut."

"Pada permulaan pecut, mesyuarat perancangan pecut diadakan. Ia berlangsung 3-4 jam."

"Akhirnya, terdapat demonstrasi semua tugas yang telah disiapkan sepenuhnya."

"Begini cara semuanya berfungsi:"

"Sebelum pecut pertama, pelanggan (atau wakil pelanggan) membentuk senarai keperluan, iaitu set perkara yang sepatutnya dapat dilakukan oleh program. Keperluan ini biasanya dipanggil cerita pengguna, dan pelanggan biasanya memanggil pemilik produk ."

"Dia dipanggil pemilik produk , kerana produk itu ditulis untuknya. Dia, dan dia sahaja, mentakrifkan senarai keperluan — apa, bila, dan dalam susunan apa."

"Selain itu, pemilik produk biasanya memberikan keutamaan tugas. Tugasan dengan keutamaan tertinggi akan dilaksanakan terlebih dahulu. Keseluruhan senarai keperluan juga dipanggil tunggakan produk ."

"Apabila pecut bermula, semua orang berkumpul untuk mesyuarat. Master scrum , biasanya ahli pasukan, biasanya mengetuai mesyuarat. Matlamat mesyuarat adalah untuk memilih tugasan ( cerita pengguna ) untuk pecut semasa (lelaran pembangunan). "

"Pertama, pasukan memberikan setiap tugas anggaran kasar dalam abstrak hari-hari, juga dikenali sebagai titik cerita.  Kemudian pasukan memutuskan berapa banyak tugas yang mereka akan mempunyai masa untuk menyelesaikan semasa pecut."

"Sekali lagi, pasukan sendiri yang menentukan berapa banyak tugasan yang mereka akan ada masa untuk diselesaikan semasa pecut."

"Katakanlah pemilik produk menjangkakan pasukan akan memilih 7 tugasan pertama tetapi ia hanya memilih 5, kemudian tugasan 6 dan 7 ditunda ke pecut seterusnya. Jika itu tidak sesuai dengan pemilik produk , dia boleh meningkatkan keutamaan tugasan 6 dan 7 untuk memastikan bahawa mereka dipilih, tetapi kemudian beberapa tugas lain akan tercicir daripada pecut."

" Tuan scrum juga boleh mencadangkan untuk memecahkan beberapa tugasan kepada tugasan yang lebih kecil dan menetapkan keutamaan yang berbeza untuk mereka membuat pemilik produk sebahagia mungkin."

"Itulah tujuan mesyuarat: tugas boleh diubah dan dipecahkan, keutamaan boleh diubah, dsb. Ini adalah kerja yang tidak kelihatan pada awalnya, tetapi yang membawa banyak nilai."

"Faham. Ia seperti memandu kereta. Walaupun pada mulanya anda percaya anda hanya perlu berjalan lurus, realitinya ialah anda perlu sentiasa mengelak jalan berlubang, mengemudi ke kanan dan kiri, dan melepasi orang lain atau membiarkan mereka melepasi anda."

"Ya, sesuatu seperti itu."

"Senarai tugas yang dipilih untuk pecut dipanggil tunggakan pecut ."

"Pengaturcara memutuskan siapa yang akan melakukan apa, dan barulah mereka mula bekerja. "Untuk meningkatkan kecekapan, Scrum mencadangkan agar mesyuarat 5-15 minit diadakan setiap hari di mana semua orang boleh memberitahu satu sama lain apa yang mereka lakukan semalam dan apa yang mereka lakukan. akan buat hari ini."

"Kerja berpasukan. Saya boleh hormat itu!"

"Untuk menjadikan perkara lebih mudah untuk digambarkan, biasanya disyorkan untuk memaparkan status pecut semasa pada papan khas:"

Tangkas, scrum, air terjun - 2

"Perhatikan tiga lajur di sebelah kiri."

"Nama tugasan yang dipendekkan ditulis pada nota melekit. Dan nota melekit diletakkan dalam lajur yang berbeza bergantung pada statusnya (dirancang, sedang berjalan, selesai)."

"Di sebelah kanan, anda boleh melihat carta terbakar . Untuk setiap hari, carta ini menyenaraikan tugasan yang masih belum selesai. Sebaik-baiknya, bilangan tugasan yang tidak lengkap turun kepada sifar semasa pecut."

"Apabila pecut tamat, scrum-master memberikan demo untuk menunjukkan senarai semua yang telah selesai sepenuhnya."

"Kemudian dia mengadakan mesyuarat retrospektif pecut, yang juga berlangsung selama beberapa jam. Semasa mesyuarat ini, para peserta biasanya cuba memikirkan perkara yang berjalan lancar dan apa (dan bagaimana) perkara boleh dilakukan dengan lebih baik."

"Biasanya selepas 2-3 larian pecut, anda boleh mengenal pasti dan menghapuskan masalah utama yang menghalang pasukan daripada bekerja dengan lebih cekap. Ini membawa kepada produktiviti yang lebih tinggi tanpa meningkatkan beban kerja pasukan.  Ini tidak mungkin dilakukan sebelum era metodologi tangkas. "

"Kadang-kadang mesyuarat dandanan juga diadakan semasa pecut. Tujuannya adalah untuk merancang pecut seterusnya. Para peserta biasanya menjelaskan keutamaan tugas dalam mesyuarat ini. Mereka juga boleh membahagikan beberapa tugas kepada bahagian dan/atau menambah tugas baharu pada tunggakan produk . "

"Nah, pada asasnya itu sahaja yang saya ada. Ini hanyalah gambaran keseluruhan. Tidak mustahil untuk menerangkan semuanya dalam beberapa perkataan sahaja, tetapi anda boleh membaca artikel yang bagus mengenai subjek di sini:"

https://en.wikipedia.org/wiki/Scrum_(pembangunan_perisian)