4-bo‘lim

Agile va Scrum

Scrum rollari, artefaktlari va marosimlari, Kanban, sprint jarayoni va jamoaviy ish amaliyoti.

🕑 12 daqiqa o‘qish 📄 1 207 so‘z 👁 11 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Scrum tuzilishi
  2. Uchta rol
  3. Artefaktlar
  4. Mahsulot backlogi
  5. Sprint backlogi
  6. Inkrement
  7. To'rt marosim
  8. 1. Sprint rejalashtirish
  9. 2. Kundalik standup
  10. 3. Sprint sharhi
  11. 4. Retrospektiva
  12. Baholash
  13. Hikoya ballari
  14. Planning Poker
  15. Tezlik
  16. Burndown diagrammasi
  17. Kanban
  18. Scrum ning umumiy muammolari
  19. Xulosa

Agile - falsafa. Scrum - uni amalda qo'llash uchun eng ko'p tarqalgan tizim.

Scrum tuzilishi #

Scrum sprinti Mahsulot backlogi barcha g'oyalar ustuvorlik bo'yicha Sprint backlogi shu sprintga tanlanganlar Sprint (2 hafta) Kundalik ish + standup Inkrement ishlaydigan mahsulot Sprint sharhi va retrospektiva natijasi backlogga qaytadi Sprint rejalashtirish Kundalik standup Sprint sharhi Retro To'rt marosim - sprintning ritmi
Sprint - qat'iy muddatli takrorlanuvchi tsikl

Uchta rol #

RolJavobgarligiJavobgar emas
Mahsulot egasiNima qilinishi, ustuvorlik, backlogQanday qilinishi
Scrum masterJarayon, to'siqlarni olib tashlashVazifa taqsimlash
Ishlab chiqish jamoasiQanday qilinishi, baholash, sifatUstuvorlikni belgilash
Scrum master - boshliq emas

Bu eng ko'p uchraydigan chalkashlik.

Scrum master jamoaga vazifa bermaydi va ularni nazorat qilmaydi. Uning ishi:

  • Marosimlarni tashkil qilish
  • To'siqlarni olib tashlash ("serverga kirish huquqi yo'q")
  • Jarayon buzilishidan himoya qilish
  • Jamoaga o'z-o'zini tashkil qilishga yordam berish

U xizmatkor rahbar (servant leader) sifatida ishlaydi.

Mahsulot egasi - bitta odam

Ustuvorlikni belgilash huquqi bitta odamda bo'lishi kerak.

Aks holda: marketing "A muhim" deydi, sotuv "B muhim" deydi, jamoa esa kimga quloq solishni bilmaydi.

Artefaktlar #

Mahsulot backlogi #

Natija
Ustuvorlik  Hikoya                                    Baho  Holat
    1       Foydalanuvchi ro'yxatdan o'tadi            5    Tayyor
    2       Foydalanuvchi tizimga kiradi               3    Tayyor
    3       Katalogda mahsulotlarni ko'radi            8    Tayyor
    4       Savatga mahsulot qo'shadi                  5    Tayyor
    5       Savatdagi sonni o'zgartiradi               3    Tayyor
    6       Buyurtma beradi                           13    Aniqlashtirilmoqda
    7       Buyurtma holatini kuzatadi                 8    Aniqlashtirilmoqda
    8       Mahsulotga sharh yozadi                    5    G'oya
    9       Sevimlilar ro'yxatini yuritadi             3    G'oya
Backlog - tirik hujjat

U doimiy o'zgaradi:

  • Yuqoridagilar batafsil va aniq
  • Pastdagilar umumiy va noaniq

Bu normal: uzoq kelajakdagi ishni batafsil rejalashtirish - vaqtni behuda sarflash.

Sprint backlogi #

Sprintga tanlangan hikoyalar va ularning vazifalari:

Natija
Hikoya: Savatga mahsulot qo'shish (5 ball)
  [x] Savat jadvalini yaratish              (2 soat)
  [x] SavatServisi klassini yozish          (4 soat)
  [ ] Savatga qo'shish tugmasi              (3 soat)
  [ ] AJAX so'rov va javob                  (3 soat)
  [ ] Modul testlari                        (2 soat)
  [ ] Kod tekshiruvi                        (1 soat)

Inkrement #

Sprint oxirida ishlaydigan mahsulot bo'lagi.

"Tayyor" ta'rifi

Jamoa "Tayyor" (Definition of Done) ta'rifini oldindan kelishishi kerak:

Natija
Vazifa "tayyor" hisoblanadi, agar:
  [ ] Kod yozilgan va ishlaydi
  [ ] Modul testlari yozilgan va o'tadi
  [ ] Kod tekshiruvidan o'tgan
  [ ] CI da barcha testlar yashil
  [ ] Sinov muhitiga chiqarilgan
  [ ] Qabul mezonlari tekshirilgan
  [ ] Hujjat yangilangan
  [ ] Mahsulot egasi tasdiqlagan

Bu ta'rif bo'lmasa, "men tugatdim" degan gap har kimda boshqacha ma'no anglatadi.

To'rt marosim #

1. Sprint rejalashtirish #

Qachon: sprint boshida · Davomiyligi: 2 haftalik sprint uchun 4 soatgacha

Natija
Birinchi qism - NIMA?
  - Mahsulot egasi ustuvor hikoyalarni tanishtiradi
  - Jamoa savol beradi va aniqlashtiradi
  - Sprint maqsadi shakllantiriladi

Ikkinchi qism - QANDAY?
  - Jamoa hikoyalarni vazifalarga bo'ladi
  - Har bir vazifa baholanadi
  - Jamoa sig'imni hisoblab, hajmni tasdiqlaydi
Sprint maqsadi bitta jumla bo'lsin

"Foydalanuvchi mahsulot tanlab, savatga qo'shib, buyurtma bera olsin."

Bu jumla sprint davomida qaror qabul qilishga yordam beradi: "bu ish sprint maqsadiga xizmat qiladimi?"

2. Kundalik standup #

Qachon: har kuni, bir xil vaqtda · Davomiyligi: 15 daqiqa

Natija
Har bir a'zo uchta savolga javob beradi:
  1. Kecha nima qildim?
  2. Bugun nima qilaman?
  3. Menga nima xalaqit beryapti?
Standup - hisobot yig'ilishi emas
YomonYaxshi
Scrum masterga hisobot berishJamoa a'zolari bir-biriga aytishi
45 daqiqa davom etishi15 daqiqada tugashi
Muammoni shu yerda hal qilish"Keyin gaplashamiz" deb belgilash
Texnik tafsilotlarUmumiy holat

Muhokama kerak bo'lsa - standupdan keyin, faqat kerakli odamlar bilan.

3. Sprint sharhi #

Qachon: sprint oxirida · Davomiyligi: 2 soatgacha

Natija
  - Jamoa qilingan ishni KO'RSATADI (slaydlar emas, ishlaydigan mahsulot)
  - Mahsulot egasi qabul qiladi yoki rad etadi
  - Manfaatdor tomonlar fikr bildiradi
  - Backlog yangilanadi
Demo - ishlaydigan mahsulot

Slayd yoki ekran surati emas - haqiqiy tizimda ko'rsating.

"Bu qism hali ishlamaydi, lekin tasavvur qiling..." degan gap sprint sharhida o'rinsiz.

4. Retrospektiva #

Qachon: sprint sharhidan keyin · Davomiyligi: 1.5 soatgacha

Natija
Uchta savol:
  1. Nima yaxshi ketdi? (davom ettiramiz)
  2. Nima yomon ketdi? (to'xtatamiz)
  3. Nimani yaxshilaymiz? (boshlaymiz)

Natija: keyingi sprintga 1-3 ta aniq harakat
Natija
Retrospektiva #12

Yaxshi:
  + Kod tekshiruvi tez o'tdi (o'rtacha 4 soat)
  + Yangi CI quvuri vaqtni tejadi

Yomon:
  - Ikki marta sinov muhiti buzildi
  - Talablar aniq emasligidan 2 kun yo'qotildi

Harakatlar:
  1. Sinov muhitini tiklash skriptini yozish - Jasur, keyingi sprint
  2. Hikoya sprintga kirishdan oldin qabul mezonlari bo'lishi shart
  3. Sprint rejalashtirishga mahsulot egasi to'liq qatnashsin
Retrospektiva harakatsiz bo'lsa - foydasiz

Eng ko'p uchraydigan xato: har sprintda bir xil muammo muhokama qilinadi, lekin hech nima o'zgarmaydi.

Har bir retrodan kamida bitta aniq harakat chiqsin: kim, nima, qachon.

Baholash #

Hikoya ballari #

Fibonachchi ketma-ketligi bilan baholash 1 arzimas 2 juda oson 3 oson 5 o'rtacha 8 murakkab 13 juda katta 21 bo'lish kerak ? noaniq tanaffus Nima uchun Fibonachchi? Vazifa kattalashgani sari noaniqlik ham oshadi "13 yoki 14?" degan bahs ma'nosiz - shuning uchun oraliq kengayadi 13 dan katta bo'lsa - hikoyani bo'lish kerak
Ball - vaqt emas, nisbiy murakkablik o'lchovi
Nima uchun soat emas, ball?
  1. Odamlar nisbiy baholashda aniqroq: "bu vazifa u vazifadan ikki barobar qiyin"
  2. Har kim boshqa tezlikda ishlaydi - ball bundan xoli
  3. Ball majburiyat emas - bu murakkablik bahosi
  4. Vaqt bahosi bosim yaratadi, ball esa muhokamaga ochiq

Ball murakkablik, hajm va noaniqlikni birgalikda hisobga oladi.

Planning Poker #

Natija
1. Mahsulot egasi hikoyani tushuntiradi
2. Har bir a'zo o'z bahosini yashirin tanlaydi
3. Hamma bir vaqtda ochadi
4. Eng katta va eng kichik baho bergan ikkovi izohlaydi
5. Muhokamadan keyin qayta ovoz beriladi
6. Kelishuvga kelguncha takrorlanadi
Bahodagi farq - qimmatli signal

Biri "3", ikkinchisi "13" desa - demak ular turli narsani tushunishmoqda.

Aynan shu muhokama baholashning asosiy foydasi. Raqamdan ko'ra tushunchani birlashtirish muhimroq.

Tezlik #

Natija
Sprint 1:  18 ball
Sprint 2:  23 ball
Sprint 3:  21 ball
Sprint 4:  25 ball
Sprint 5:  22 ball

O'rtacha tezlik: 22 ball

Bu bilan bashorat qilish mumkin:

Natija
Backlogda qolgan: 180 ball
Tezlik:            22 ball / sprint
Kerakli sprintlar: 180 / 22 = 8.2  →  ~9 sprint  →  ~18 hafta
Tezlik - jamoalarni solishtirish vositasi emas

"A jamoa 40 ball, B jamoa 20 ball qildi" - bu hech nima anglatmaydi. Ular boshqacha baholaydi.

Tezlikni faqat bitta jamoaning o'z tarixi bilan solishtiring.

Tezlikni KPI ga aylantirish esa eng yomon qaror: jamoa ballarni sun'iy oshira boshlaydi va raqam ma'nosini yo'qotadi.

Burndown diagrammasi #

Sprint burndown Sprint kunlari Qolgan ball ideal chiziq boshida sekin - odatiy 1 4 7 10 22 0
Chiziq ideal chiziqdan yuqorida qolsa - sprint xavf ostida

Kanban #

Scrum ga muqobil yondashuv: sprintlar yo'q, doimiy oqim.

Kanban doskasi Backlog Sharhlar Sevimlilar Eksport Bajarilmoqda limit: 3 Savat AJAX To'lov API Tekshiruvda limit: 2 Profil sahifa Testda limit: 2 Qidiruv Tayyor Kirish Katalog
WIP limitlari bir vaqtda ko'p ish boshlashning oldini oladi
ScrumKanban
RitmQat'iy sprintlarDoimiy oqim
RollarUchta belgilanganMajburiy emas
Reja o'zgarishiSprint ichida yo'qIstalgan vaqtda
O'lchovTezlikBajarish vaqti
Ish chekloviSprint hajmiWIP limiti
Mos keladiYangi mahsulotQo'llab-quvvatlash, DevOps
WIP limiti - Kanban ning yuragi

"Bajarilmoqda" ustunida 3 tadan ko'p vazifa bo'lmasin.

Nima uchun? Bir vaqtda 10 ta ishni boshlagan jamoa hech birini tugatmaydi. Kontekst almashtirish vaqtni yeydi.

Limit to'lgan bo'lsa - yangi ish boshlash o'rniga, tugatishga yordam bering.

Scrum ning umumiy muammolari #

Anti-naqshlar
MuammoBelgiYechim
Sprint o'rtasida yangi ish"Bu shoshilinch"Faqat sprint maqsadini buzmasa
Tugallanmagan ish o'tkaziladiHar sprintda "deyarli tayyor"Hikoyalarni kichiklashtiring
Retro rasmiy o'tadiHech nima o'zgarmaydiHar retrodan aniq harakat
Standup 45 daqiqaMuammo shu yerda hal qilinadiMuhokamani keyinga qoldiring
Tezlik KPI ga aylandiBallar sun'iy oshadiTezlikni faqat rejalashtirish uchun
Mahsulot egasi yo'qUstuvorlik noaniqBitta mas'ul tayinlang
Texnik qarz e'tiborsizKod sekin-asta yomonlashadiHar sprintda 10-20% shu ishga
Sprint o'rtasida o'zgarish

Scrum qoidasi: sprint boshlangach, uning tarkibi o'zgarmaydi.

Bu jamoani doimiy uzilishlardan himoya qiladi. Haqiqatan shoshilinch ish chiqsa - sprint bekor qilinadi va qaytadan rejalashtiriladi.

Amalda ko'p jamoalar sprint hajmining 10-20 foizini "kutilmagan ishlar" uchun bo'sh qoldiradi.

Amaliy topshiriq
  1. Kichik loyiha uchun 12 ta hikoyali mahsulot backlogi tuzing.
  2. Ularni ustuvorlashtiring va Fibonachchi bilan baholang.
  3. Jamoangiz uchun "Tayyor" ta'rifini yozing (kamida 6 band).
  4. Ikki haftalik sprint uchun sprint backlogi tuzing.
  5. Uchta hikoyani vazifalarga bo'ling (har biri 4 soatdan oshmasin).
  6. Do'stlaringiz bilan Planning Poker o'ynang - baholar mos keldimi?
  7. Kanban doskasi tuzing va WIP limitlarini belgilang.
  8. Retrospektiva shablonini to'ldiring (yaxshi, yomon, harakatlar).
  9. Burndown diagrammasi uchun jadval tuzing.
  10. Scrum va Kanban dan qaysi biri loyihangizga mos keladi? Nima uchun?

Xulosa #

  • Scrum - Agile ni amalda qo'llash uchun eng tarqalgan tizim.
  • Uchta rol: mahsulot egasi, scrum master, jamoa.
  • Scrum master - boshliq emas, u to'siqlarni olib tashlaydi.
  • Artefaktlar: mahsulot backlogi, sprint backlogi, inkrement.
  • "Tayyor" ta'rifi kelishilmasa, hech kim tugatganini bilmaydi.
  • To'rt marosim: rejalashtirish, standup, sharh, retrospektiva.
  • Hikoya ballari - vaqt emas, nisbiy murakkablik.
  • Tezlik faqat bitta jamoaning o'z tarixi bilan solishtiriladi.
  • Kanban - sprintsiz doimiy oqim, WIP limitlari bilan.
  • Har retrospektivadan aniq harakat chiqishi shart.

Keyingi bo'limda loyihani rejalashtirish va baholashni ko'ramiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.