Scrum'ning paydo bo'lish tarixi
1970 yilda Uinston Roysning “Katta dasturiy tizimlarni rivojlantirishni boshqarish” hisobotining e'lon qilinishidan so'ng, ko'pchilik Waterfall rivojlantirish modelining kamchiliklarini bartaraf etuvchi metodikani izlamoqda. "Waterfall"ga alternativ Scrum metodidir, bu haqida hozir gapiriladi.
Scrum o'z nomini 1986 yilda Takeuchi va Nonaka'ning “Yangi mahsulotlarni rivojlantirishning yangi qoidalari” ishi tufayli oldi. Ushbu hujjatda, belgilangan maqsadga erishishning eng samarali usuli - ishlab chiquvchilarga aniq harakat rejasini taqdim etish ekanligi keltirilgan.
1995 yilda Sazerlend va Shveiberning “Scrum orqali dasturiy ta’minot yaratish” nomli yana bir qoʻllanma paydo bo‘ldi. Keyinchalik bu nashr ko'p marotaba yangilandi. Hozirgi kunda bu qo'llanma ushbu metod bilan rivojlantirish uchun asosiy qo'llanma hisoblanadi. Hozirda dolzarb bo'lgan versiya Scrum Guide 2020 yilda yangilangan ma'lumotlarni o'z ichiga oladi.
Scrum Guide qo'llanmasining asosiy qoidalari loyihalarni boshqarish shabloni ishlab chiquvchilar tomonidan belgilangan muddatlarda tayyor mahsulot yetkazilishini nazarda tutadi — sprintlar. Scrum'ni muvaffaqiyatli qo'llash uchun bir nechta elementdan tashkil topgan struktura ishlatish tavsiya etiladi: rollar, voqealar, qoidalar va artefaktlar.
Scrum'dagi rollar
Scrum'da uchta rol mavjud, barchasi scrum jamoasini shakllantiradi:
Dasturiy mahsulot buyurtmachisi — loyihada eng muhim odam, chunki faqat u uning biznes uchun ahamiyatini to'liq anglaydi. Buyurtmachi kelajakdagi mahsulotning foydalanuvchilar ehtiyojlarini ishlab chiquvchilarga tushuntiradi, lekin u jarayonning texnik qismi uchun javobgar emas. Buyurtmachi, shuningdek, mahsulotning turli elementlari yoki funksiyalarini yaratishda ustuvorliklarni belgilaydi.
Ishlab chiquvchilarga texnik vazifalarni bajarish yuklatilgan, ularning krossfunksionalligi qo‘llanish sohasiga bog‘liq. Ishlab chiquvchilar sprint backlogini yaratish, kod yozish, sprint maqsadiga nisbatan loyihani moslashtirish va boshqa vazifalar bilan band.
Scrum-master scrum jamoasi ishini muvofiqlashtiruvchi hisoblanadi. U buyurtmachi va ishlab chiquvchilarga yordam ko'rsatadi. Oddiy qilib aytganda, scrum-master loyihada ishtirok etmaganlar va kod yozayotgan odamlar o'rtasidagi aloqa bilan band. Ba'zan bir katta kompaniyadagi turli ishlab chiquvchi guruhlar ushbu guruhlarning scrum masterlari bilan umumiy yig'ilishlarda muloqot qilishadi va harakatlarini muvofiqlashtirishadi.
Scrum'dagi voqealar
Scrum voqealarining 5 xil turi mavjud:
Sprint — Scrum'ning eng muhim qismidir. U sprintni rejalashtirish, kundalik scrum yig‘ilishlari (daily scrum), ko‘rib chiqish va sprint retrospektivasi kiradi.
Sprint Planning. Kelgusi sprint rejasini tuzishda barcha scrum jamoasi a'zolari ishtirok etadi. Aynan shu yerda mahsulot g‘oyasi taqdim qilinadi va jamoa a'zolari bu haqda fikrlarini bildirishlari mumkin. So‘ngra uchrashuvda ustuvorliklar belgilanadi va muddatlar e’lon qilinadi.
Daily Scrum — har kungi qisqa scrum voqeasi, davomiyligi 15 daqiqadan ortiq emas. Odatda u bugungi yoki ertangi kod yozuvchilar ishlari rejalashtirish uchun o'tkaziladi. Daily Scrum’da joriy muammolarni muhokama qilish mumkin. Ushbu ish uchrashuvida loyihada ishtirok etayotgan barcha ishlab chiquvchilar ishtirok etishi shart. Scrum-master’ning ishtiroki ruxsat etilgan, lekin majburiy emas.
Sprint Review (Demo) — sprint davomida yaratilgan natijalarni ko‘rsatish. Odatda bu voqea yakuniy bosqichda o‘tkaziladi. Unda barcha manfaatdor shaxslar ishtirok etadilar.
Sprint Retrospective — sprint natijalarini muhokama qilish. Jamoa a'zolari ularga qo'yilgan vazifalarni qanday bajarib bo'lganligini va kelajakda ish natijalarini qanday yaxshilash mumkinligini baham ko'radi.
Bundan tashqari, ba'zan backlogning yangilanishi — Backlog Refinement o'tkaziladi. Unda backlog elementlari, kelajakdagi sprintga tayyorgarlik va joriy vazifalar ustuvorliklari muhokama qilinadi.
Artefaktlar
Scrum artefaktlari — loyiha yoki sprint tugagach bajarilishi kerak bo'lgan ishlar. Uchta artefakt mavjud — mahsulot backlogi, sprint backlogi va inkrement. Ularning har biri dasturiy ta’minot foydalanuvchilarga o‘z vaqtida yetkazilishini ta’minlash uchun zarurdir. Shuningdek, qo‘shimcha artefaktlar ham mavjud (berndaun diagrammalari va boshqalar).
Sprintning artefaktlariga kiradigan komponentlar:
Mahsulot backlogi — interfeys va backend funksiyalari.
Sprint backlogi — iteratsiya davrida bajarilishi kerak bo‘lgan vazifalar ro‘yxati. Ularni sprint boshlanishidan oldin kelishib olishadi.
Inkrement — sprint davomida yaratilgan dasturiy ta’minot backlog elementlari va undan oldin yaratilgan inkrementlarning qiymati. Yangi tayyor inkrementni sprint yakunlanishidan oldin ko‘rsatish kerak. Bu, scrum jamoasi talablariga javob beradigan amaldagi versiya mavjudligini anglatadi.
Mahsulot backlogining elementi — uni sprint iteratsiyasi davomida bajarish kerak. Odatda element bir necha kichik vazifalarga bo'linadi.
Sprint maqsadi — bajarilishi kerak bo‘lgan vazifalar (backlog elementi yaratish yoki boshqa topshiriq).
Sprint berndaun chart — sprint tugashiga qadar qolgan ishlar. Berndaun chart yuqoriga yoki pastga bo'lishi mumkin. Bu jamoa a’zolari ish davomida duch kelgan qiyinchiliklarga bog‘liq. U progress ko‘rsatkichi emas, balki muammolarni hal qilish va rag'batlantirish usuli.
Mahsulotning chiqarilishi/berndaun chart — scrum-master tomonidan navbatdagi sprint tugashidan oldin chizilgan grafika. Gorizontal o'qi — sprintlar, vertikal o'qi — qolgan ish hajmi.
Scrum framework qoidalari
Rollar, voqealar va artefaktlar — Scrum asosi, lekin bundan tashqari boshqa qoidalar ham bor. Barchasi ish jarayonining samaradorligini oshiradi. Ushbu qoidalar ro‘yxati:
- Scrum jamoasiga dasturiy ta’minot buyurtmachisi, scrum-master va ishlab chiquvchilar kiradi.
- Barcha sprintlar davomiyligi bo‘yicha bir xil bo‘lishi kerak.
- Bitta sprint tugagach, darhol yangi sprint ustida ishlash boshlanadi.
- Sprint har doim reja kelishuvi bilan boshlanadi.
- Jamoa a’zolari ish kunining boshida ertalabki scrumni o‘tkazadi.
- Har bir sprint davomida uning ko'rib chiqilishi amalga oshiriladi. Bu jamoa va manfaatdor shaxslar o'rtasida o'zaro ta'sirni yaxshilaydi.
- Sprint davomida sprint backlogini o'zgartirish tavsiya etilmaydi.
Scrum'dagi cheklovlar
Ko‘rinib turgan afzalliklar bilan bir qatorda, Scrum'da ham kamchiliklar mavjud:
- Scrum ko'pincha umumiy muddatnining yo'qligi sababli bajarilgan ish hajmining kamayishiga olib keladi.
- Loyiha ishtirokchilari orasida past darajada qiziqish yoki hamkorlikka tayyor bo'lmaslik natijani muvaffaqiyatsizlikka uchratish imkoniyatlarini oshiradi.
- Scrum tuzilishini katta jamoalarda ishlatish qiyin, lekin bu mumkin. Buning uchun masshtablash frameworklari mavjud: LeSS, SAFe, Nexus va boshqalar.
- Loyiha o'rtasida bir yoki bir nechta ishtirokchilarning ketishi loyiha uchun unchalik yaxshi ta'sir qilmaydi.
GO TO FULL VERSION