4-bo‘lim
Agile va Scrum
Scrum rollari, artefaktlari va marosimlari, Kanban, sprint jarayoni va jamoaviy ish amaliyoti.
Ushbu bo‘lim mundarijasi
Agile - falsafa. Scrum - uni amalda qo'llash uchun eng ko'p tarqalgan tizim.
Scrum tuzilishi #
Uchta rol #
| Rol | Javobgarligi | Javobgar emas |
|---|---|---|
| Mahsulot egasi | Nima qilinishi, ustuvorlik, backlog | Qanday qilinishi |
| Scrum master | Jarayon, to'siqlarni olib tashlash | Vazifa taqsimlash |
| Ishlab chiqish jamoasi | Qanday qilinishi, baholash, sifat | Ustuvorlikni belgilash |
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.
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 #
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
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:
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.
Jamoa "Tayyor" (Definition of Done) ta'rifini oldindan kelishishi kerak:
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
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
"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
Har bir a'zo uchta savolga javob beradi:
1. Kecha nima qildim?
2. Bugun nima qilaman?
3. Menga nima xalaqit beryapti?
| Yomon | Yaxshi |
|---|---|
| Scrum masterga hisobot berish | Jamoa a'zolari bir-biriga aytishi |
| 45 daqiqa davom etishi | 15 daqiqada tugashi |
| Muammoni shu yerda hal qilish | "Keyin gaplashamiz" deb belgilash |
| Texnik tafsilotlar | Umumiy holat |
Muhokama kerak bo'lsa - standupdan keyin, faqat kerakli odamlar bilan.
3. Sprint sharhi #
Qachon: sprint oxirida · Davomiyligi: 2 soatgacha
- Jamoa qilingan ishni KO'RSATADI (slaydlar emas, ishlaydigan mahsulot)
- Mahsulot egasi qabul qiladi yoki rad etadi
- Manfaatdor tomonlar fikr bildiradi
- Backlog yangilanadi
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
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
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
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 #
- Odamlar nisbiy baholashda aniqroq: "bu vazifa u vazifadan ikki barobar qiyin"
- Har kim boshqa tezlikda ishlaydi - ball bundan xoli
- Ball majburiyat emas - bu murakkablik bahosi
- Vaqt bahosi bosim yaratadi, ball esa muhokamaga ochiq
Ball murakkablik, hajm va noaniqlikni birgalikda hisobga oladi.
Planning Poker #
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
Biri "3", ikkinchisi "13" desa - demak ular turli narsani tushunishmoqda.
Aynan shu muhokama baholashning asosiy foydasi. Raqamdan ko'ra tushunchani birlashtirish muhimroq.
Tezlik #
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:
Backlogda qolgan: 180 ball
Tezlik: 22 ball / sprint
Kerakli sprintlar: 180 / 22 = 8.2 → ~9 sprint → ~18 hafta
"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 #
Kanban #
Scrum ga muqobil yondashuv: sprintlar yo'q, doimiy oqim.
| Scrum | Kanban | |
|---|---|---|
| Ritm | Qat'iy sprintlar | Doimiy oqim |
| Rollar | Uchta belgilangan | Majburiy emas |
| Reja o'zgarishi | Sprint ichida yo'q | Istalgan vaqtda |
| O'lchov | Tezlik | Bajarish vaqti |
| Ish cheklovi | Sprint hajmi | WIP limiti |
| Mos keladi | Yangi mahsulot | Qo'llab-quvvatlash, DevOps |
"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 #
| Muammo | Belgi | Yechim |
|---|---|---|
| Sprint o'rtasida yangi ish | "Bu shoshilinch" | Faqat sprint maqsadini buzmasa |
| Tugallanmagan ish o'tkaziladi | Har sprintda "deyarli tayyor" | Hikoyalarni kichiklashtiring |
| Retro rasmiy o'tadi | Hech nima o'zgarmaydi | Har retrodan aniq harakat |
| Standup 45 daqiqa | Muammo shu yerda hal qilinadi | Muhokamani keyinga qoldiring |
| Tezlik KPI ga aylandi | Ballar sun'iy oshadi | Tezlikni faqat rejalashtirish uchun |
| Mahsulot egasi yo'q | Ustuvorlik noaniq | Bitta mas'ul tayinlang |
| Texnik qarz e'tiborsiz | Kod sekin-asta yomonlashadi | Har sprintda 10-20% shu ishga |
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.
- Kichik loyiha uchun 12 ta hikoyali mahsulot backlogi tuzing.
- Ularni ustuvorlashtiring va Fibonachchi bilan baholang.
- Jamoangiz uchun "Tayyor" ta'rifini yozing (kamida 6 band).
- Ikki haftalik sprint uchun sprint backlogi tuzing.
- Uchta hikoyani vazifalarga bo'ling (har biri 4 soatdan oshmasin).
- Do'stlaringiz bilan Planning Poker o'ynang - baholar mos keldimi?
- Kanban doskasi tuzing va WIP limitlarini belgilang.
- Retrospektiva shablonini to'ldiring (yaxshi, yomon, harakatlar).
- Burndown diagrammasi uchun jadval tuzing.
- 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.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
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.