Agile metodologiyalari. Kanban vs Scrum

Agile yondashuvi jamoalarni innovatsiya qilishga, o’zgarishlarga tezda reaksiya bildirishga undaydi. Shu sababli kompaniyalar agile metodologiyasini qo’llashga, shu jumladan, Scrum, Kanban, Lean kabi freymvorklaridan foydalanishga harakat qilishadi.

Biz «agile soyaboni» (agile umbrella) deb ataydiganimiz – freymvorklar to’plami quyidagilarni o’z ichiga oladi:

  • Scrum
  • Kanban (vizual ish jarayoni)
  • XP (ekstremal dasturlash)
  • Lean
  • DevOps
  • FDD (o’zgarishlarga (features) urg’u berilgan dasturlash)
  • TDD (testlashga urg’u berilgan dasturlash)
  • Crystal
  • DSDM (Dinamik tizimlarni ishlab chiqish metodi)
  • ASD (Dasturiy ta’minotni moslashuvchan (adaptiv) darajada ishlab chiqish).
Agile soyaboni

Quyida biz freymworklardan ba’zilarini ko’rib chiqamiz.

Lean

Lean metodologiyasi dasturga qiymat qo’shmaydigan barcha narsa chiqarib tashlanishi va ayni vaqtda kerakli bo’lgan ishlar bilan band bo’lishni nazarda tutadi. Chiqarib tashlashga befoyda yig’inlar (meetings), vazifalar va dokumentatsiyalar kiradi. Shunningdek chiqarib tashlash oqibatida paydo bo’ladigan qo’shimcha vaqt kelajakda kerak bo’ladigan o’zgarishlarga sarflanishi kerak.

Tushunarliroq tilda aytganda – dasturlashdan boshqa narsalarga e’tibor bermay, faqat mijoz xohlayotgan funksiyani tezda yetkazib berishni nazarda tutadi.

Lean yondashuvi 5 qadamdan iborat (rasmda).

Lean yondashuvining 5 qadami

Scrum

Scrum – tayyor mahsulotni olishni tezlashtirish va mijozning biznesi qiymatini oshirish uchun jamoa ishlaydigan freymwork. Jamoa odatda Scrum-master, loyiha egasi (mijoz) va dasturchilardan iborat bo’ladi. Scrum’da asosiy e’tibor kichik yangilanishlarni o’z ichiga oladigan tezkor iteratsiyalarga asoslanadi.

Iteratsiyalar yana qisqa sprint ham deb nomlanib, har bir iteratsiya davri 1-4 haftagacha yetadi. Mijoz (loyihaning buyurtmachisi) har bir sprint ohiridagi yig’ilishda ishtirok etib, o’zgarishlarni ko’rishadi va yangi sprint uchun vazifalarni taqdim etishadi.

Scrum

Scrum master va mijozning jamoada bo’lgani sababli, ularni har kuni qilinayotgan ishlar haqida boxabar qilib boriladi. Buning uchun o’rtacha 15 daqiqa davom etadigan Scrum stendaplar (qisqa majlislar) tashkil qilinadi. Bunda sprint maqsadi bo’yicha jamoaga uchta savol qo’yiladi:

  • Kecha nima ishlar qilindi?
  • Bugun jamoa nimani rejalashtiryapti?
  • Maqsadga erishish uchun nima to’siq bo’lyapti?

Scrumning ustunliklari:

  • Scrum jamoa ichida ma’lumotlarning oshkoraligi
  • Jamoalarning vazifa bilan o’zini-o’zi ta’minlay olishi
  • Jamoaning har bir a’zosi o’z ishiga o’zi javob berishi sababli motivatsiyaga ega
  • Bozor talablaridan kelib chiqib, riskni kamaytirish

Kamchiliklari:

  • Scrum masterga bog’lanib qolish
  • Birnecha scrum jamoalar bir-biriga yaqin funksiyalar ustida ishlaganda, jamoalarning o’z ishi bilan tanishtirishi uchun majlislarda birga qatnashishi kerakligi.

Kanban

Kanban jamoaga o’z ishini vizuallashtirish imkonini berib, samaradorlikni oshirishga yordam beradi. Kanban odatda raqamli yoki oddiy doskani taqdim etadi.

Kanban

Jamoaning vazifalari doskada ishning qaysi jarayondaligiga qarab kerakli ustunlarda joylashadi:

  • Ish hali boshlanmagan (To-do)
  • Ish jarayonida (In progress)
  • Testlashda (Testing)
  • Topshirildi (Delivered)

Sharoitga qarab ustunlar sonini oshirish mumkin. Masalan hali aniqlashtirilmagan vazifalar uchun «need specification», yoki live’ga chiqqan o’zgarishlarni «Deployed to live» kabi ustunlar qo’shish mumkin.

Kanban jamoa a’zolarining har biriga vazifalarning holatini ko’rib turish imkonini beradi. Kanban doskasida, ayniqsa «In progress» ustunida bir vaqtning o’zida qancha ish bajarilishiga limit qo’yiladi. Bu samaradorlikni ushlab turishga va ortiqcha production relizlardan himoya qiladi.

Raqamli doska sifatida o’zim ishlatgan birnecha web-dasturlarni keltirib o’taman:

Kanban’ning Scrum’dan farqi nima?

Kanban’da:

  • Aniq belgilangan rollar yo’q
  • Continuous Delivery. Relizlar yo’q, tayyor bo’lgan o’zgarish live’ga chiqib ketadi
  • Istalgan vaqt o’zgartirish kiritish mumkin

Scrum’da:

  • Scrum master, mahsulot egasi, jamoa a’zosi kabi rollar bor
  • Aniq belgilangan vaqtga ega sprintlar
  • Qilingan o’zgarishlar to’planib bittada live’ga chiqadi
  • Sprint o’rtasida o’zgartirish kiritilmaydi