Salom. Oxirgi ikki intervyuda mendan metodologiya haqida so'rashdi. Bu eng muhim yoki qiyin savol emas, lekin javob uchun cheat varag'iga ega bo'lish yaxshi bo'ladi. Ushbu maqolada men rivojlanish metodologiyasi nima ekanligi haqida tasavvur berishga harakat qilaman va men shaxsan tanishgan yoki so'ralganlarni solishtirishga harakat qilaman. Dasturiy ta'minotni ishlab chiqish metodologiyasi - bu aniq mahsulot qanday ishlab chiqilishini tavsiflash jarayoni, ya'ni jamoani ishlab chiqishni tashkil etish usullaridan biri. Bunday jarayonning juda ko'p turli xil modellari mavjud bo'lib, ularning har biri o'ziga xos yondashuvni tavsiflaydi va ular orasida har bir loyihada ishlatilishi kerak bo'lgan biri bor, deb aytish mumkin emas, hamma narsa faqat vaziyatga bog'liq. Men ulardan uchtasini batafsilroq ko'rib chiqishni taklif qilaman.
Sharshara
Sharshara (kaskad, sharshara) eng qadimgi metodologiyalardan biri bo'lib, barcha bosqichlarning qat'iy ketma-ket bajarilishini nazarda tutadi, ularning har biri keyingi bosqich boshlanishidan oldin bajarilishi kerak. Ya'ni, keyingi bosqichga o'tish oldingi bosqichdagi ishlarning to'liq bajarilishini anglatadi. Rasmda birinchi navbatda biz vazifani tahlil qilamiz (hujjat topshiriqlari, qiyinchiliklarni muhokama qilamiz), so'ngra loyihalash amalga oshiriladi (bu bosqichda loyiha tuzilmasi shakllanadi), so'ngra kodlash va sinovdan o'tkazamiz. Keyingi bosqichlar uchun to'lovlar qaytarilmaydi. Bunday tizimdan talablar oldindan ma'lum bo'lgan va ularning o'zgarishi ehtimoli kam bo'lgan kichik loyihalarda foydalanish tavsiya etiladi. Afzalliklari:- Har bir bosqichda to'liq va izchil hujjatlar;
- Foydalanish qulayligi;
- Barqaror talablar.
- Byudjet va muddatlar oldindan belgilangan
- Hujjatlarning katta miqdori;
- Juda moslashuvchan tizim emas;
- Mijoz mahsulotning demo versiyasini ko'ra olmaydi;
- Bir qadam orqaga qaytishning iloji yo'q.
Scrum
Scrum - bu butun jarayonni iteratsiyalarga bo'lishga asoslangan dasturiy ta'minotni ishlab chiqish tizimi bo'lib, ularning har biri oxirida jamoa mahsulotning demo versiyasini taqdim etishga tayyor. Rasmda jamoa rivojlanishning barcha bosqichlarini parallel ravishda bosib o'tishini ko'rsatadi, bu bizga har bir iteratsiya oxirida loyihaning tugallangan qismiga ega bo'lish imkonini beradi. Men metodologiyaning mohiyatini oddiy so'zlar bilan qisqacha tushuntirishga harakat qilaman, ammo bu erda juda ko'p atamalar mavjud. Menimcha, eng muhimi mohiyatni tushunish, atamalar esa tajriba bilan yodda qoladi. Barcha rivojlanish sprintlarga bo'linadi (ko'pincha 2-3 hafta). Butun rivojlanish davri uchun va har bir sprint uchun alohida orqada qolish (vazifalar ro'yxati) mavjud . Har bir topshiriqning o'z hikoya nuqtasi bor (qiyinchilik reytingi). Jarayonning har bir ishtirokchisi o'z roliga ega:- Scrum jamoasi - bu loyiha ustida ishlaydigan jamoa (ishlab chiquvchilar, testerlar, dizaynerlar).
- Scrum Master - bu Scrum tamoyillariga rioya qilinishini ta'minlaydigan shaxs.
- Mahsulot egasi - mijoz.
- Stand-up - bu har kuni o'tkaziladigan qisqa yig'ilish, barcha jamoa a'zolari qatnashadilar va har bir ishtirokchi 3 ta savolga javob beradi: nima qildingiz? Bu nima qiladi? Va blokerlar nima?
- Rejalashtirish - sprint boshida o'tkaziladi va bu yig'ilishda keyingi sprintda qanday vazifalar bajarilishi kerakligi aniqlanadi.
- Retrospektiv sprint oxirida o'tkaziladi va uning mohiyati nima yaxshi qilinganligini va nimani yaxshilash mumkinligini aniqlashdir.
- Mijoz ishlab chiqish jarayonida natijani kuzatishi mumkin.
- Rivojlanish jarayoni ustidan kundalik nazorat.
- Rivojlanish jarayonida tuzatishlar kiritish qobiliyati.
- Jamoaning barcha a'zolari bilan yaxshi o'rnatilgan aloqa.
- Kichik hajmdagi hujjatlar.
- Rivojlanish uchun zarur bo'lgan mehnat va xarajatlarni hisoblash qiyin
- Rivojlanish boshlanishidan oldin eng katta to'siqlarni aniqlash qiyin.
- Boshqa jamoa a'zolarini rivojlantirishga hammani jalb qilish zarurati.
Kanban
Kanban - bu jamoaviy vazifalarni bajarish jarayonini vizuallashtirishga asoslangan tizim. Bu tizimdagi asosiy g‘oya hozirda bajarilayotgan vazifalar sonini kamaytirishdan iborat (“davom etayotgan” ustunida).Scrumda jamoa sprintlarni muvaffaqiyatli bajarishga qaratilgan, Kanbanda esa vazifalar birinchi o‘rinda turadi. Asosiy funksionallik allaqachon ishlab chiqilgan va minimal yaxshilanishlar va xatoliklar tuzatilgan qo'llab-quvvatlash bosqichidagi loyihalar uchun yaxshi. Kanbanda topshiriqlar yakka tartibda topshiriladi. Vazifa, boshqa vazifalardan qat'i nazar, doskadagi barcha bosqichlardan o'tadi va u bajarilishi bilanoq mijozga ko'rsatilishi mumkin. Kanban taxtasi ustunlardan iborat bo'lib, ularning har biri alohida rivojlanish jarayonini ifodalaydi. Ba'zi ustunlar (masalan, bajarilayotgan) u erda bo'lishi mumkin bo'lgan vazifalar soniga cheklovlar qo'yadi. Bu vazifalarni taqsimlashda muammoli joylarni osongina va tez topishga yordam beradi. Rasmda bunday oddiy taxtaning namunasi ko'rsatilgan. Ustunlar va nomlar soni farq qilishi mumkin, lekin men eng keng tarqalganini nomlayman:- Bajarish - bajarilishi kerak bo'lgan vazifalar ro'yxati
- Davom etilmoqda - hozirda ishlanayotgan vazifalar
- Kodni ko'rib chiqish - bajarilgan va ko'rib chiqish uchun yuborilgan vazifalar
- Testda - testga tayyor vazifalar
- Bajarildi - bajarilgan vazifalar.
- Foydalanish qulayligi.
- Vizualizatsiya (to'siqlarni topishga yordam beradi, tushunishni osonlashtiradi)
- Jarayonning o'zida jamoaning yuqori ishtiroki.
- Rivojlanishda yuqori moslashuvchanlik.
- Beqaror vazifalar ro'yxati.
- Uzoq muddatli loyihalarda foydalanish qiyin.
- Qattiq muddatlar yo'q.
GO TO FULL VERSION