Экстремалды бағдарламалау мен SCRUM арасындағы айырмашылық

Экстремалды бағдарламалау мен SCRUM арасындағы айырмашылық
Экстремалды бағдарламалау мен SCRUM арасындағы айырмашылық

Бейне: Экстремалды бағдарламалау мен SCRUM арасындағы айырмашылық

Бейне: Экстремалды бағдарламалау мен SCRUM арасындағы айырмашылық
Бейне: Глобальные тренды 2020 — от Agile до IoT / Java Tech Talk 2024, Желтоқсан
Anonim

Екстремалды бағдарламалау және SCRUM | XP және SCRUM

Бағдарламалық жасақтама өнеркәсібінде көптеген жылдар бойы пайдаланылған бағдарламалық жасақтаманы әзірлеудің әртүрлі әдістемелері болды, мысалы, Waterfall әзірлеу әдісі, V-Model, RUP және бірнеше басқа сызықтық, итерациялық және аралас сызықтық-итеративті әдістер. Agile моделі (дәлірек айтсақ, әдістемелер тобы) – бағдарламалық жасақтаманы әзірлеудің дәстүрлі әдістемелеріндегі кемшіліктерді жою үшін Agile манифестімен енгізілген бағдарламалық жасақтаманы әзірлеудің соңғы үлгісі.

Agile әдістері итерациялық дамуға негізделген және пайдаланушылардың кері байланысын негізгі басқару механизмі ретінде пайдаланады. Agile дәстүрлі әдістерге қарағанда адамдарға бағытталған тәсіл деп атауға болады. Agile моделі жүйені өте кішкентай және басқарылатын қосалқы бөліктерге бөлу арқылы өнімнің жұмыс нұсқасын өте ертерек жеткізеді, осылайша тұтынушы кейбір артықшылықтарды ертерек түсіне алады. Agile тестілеу циклінің уақыты дәстүрлі әдістермен салыстырғанда салыстырмалы түрде қысқа, өйткені тестілеу әзірлеуге параллель жүргізіледі. Осы артықшылықтардың барлығына байланысты қазіргі уақытта Agile әдістері дәстүрлі әдістерге қарағанда артықшылық береді. Scrum және Extreme бағдарламалау - Agile әдістерінің ең танымал екі нұсқасы.

SCRUM дегеніміз не?

Жоғарыда айтылғандай, SCRUM - бұл Agile әдістерінің тобына жататын қосымша және итерациялық жобаны басқару процесі. SCRUM әзірлеу циклінің басында тұтынушының қатысуына жоғары басымдық беруге негізделген. Ол тұтынушы тестілеуін мүмкіндігінше ертерек және жиі қосуды ұсынады. Тестілеу тұрақты нұсқа қол жетімді болған сайын орындалады. SCRUM негізі жобаның басынан тестілеуді бастауға және жобаның соңына дейін жалғасуға негізделген.

SCRUM-тың негізгі мәні – «сапа – команданың жауапкершілігі», бұл бағдарламалық жасақтаманың сапасына бүкіл команданың (тек тестілеу тобының ғана емес) жауапкершілігі екенін баса көрсетеді. SCRUM-тың тағы бір маңызды аспектісі бағдарламалық жасақтаманы басқаруға болатын кішірек бөліктерге бөлу және оларды тұтынушыға тез жеткізу. Жұмыс істейтін өнімді жеткізу өте маңызды. Содан кейін команда бағдарламалық жасақтаманы жетілдіруді және әрбір негізгі қадамда үздіксіз жеткізуді жалғастырады. Бұған өте қысқа босату циклдары (спринттер деп аталады) және әр циклдің соңында жақсарту үшін кері байланыс алу арқылы қол жеткізіледі.

SCRUM әзірлеу тобының үздіксіз жұмыс істеуі үшін бірнеше негізгі рөлдерді анықтайды. Олар Өнім иесі (тұтынушыны ұсынатын және өнімнің артта қалуын қамтамасыз ететін), Scrum шебері (скрам жиналыстарын өткізу, спринттің артта қалуы және жойылу диаграммаларын жүргізу арқылы топтың ұйымдастырушысы және үйлестірушісі ретінде әрекет етеді) және басқа топ мүшелері. Команда дәстүрлі рөлдерден тұруы мүмкін, бірақ олар көбінесе өзін-өзі басқаратын командалар. Негізгі Scrum артефактілері өнімнің артта қалуы/шығарылымының артта қалуы (тілектер тізімі), Sprint артта қалуы/ақаулардың артта қалуы (әр итерациядағы тапсырмалар), жазу диаграммалары (қалған жұмыс күнімен салыстырғанда). Негізгі SCRUM рәсімдері - бұл өнімнің артта қалу жиналысы, Sprint кездесуі және ретроспективті кездесу.

Экстремалды бағдарламалау дегеніміз не?

Extreme Programming (қысқартылған XP) – Agile үлгісіне жататын бағдарламалық құралды әзірлеу әдістемесі. Экстремалды бағдарламалау фазаларды өте шағын үздіксіз қадамдармен жүзеге асырады (дәстүрлі әдістермен салыстырғанда). Бір күн немесе аптаға созылатын бірінші өту әдейі аяқталмайды. Бағдарламалық жасақтаманы әзірлеудің нақты мақсаттарын қамтамасыз ету үшін басында автоматтандырылған сынақтар жазылады. Содан кейін әзірлеушілер кодтауды жасайды. Бағдарламалауды жұппен жасауға баса назар аударылады. Барлық сынақтардан өткеннен кейін кодтау аяқталды деп саналады. Келесі кезең - дизайн және архитектура, ол кодты сол бағдарламашылар жиынтығымен рефакторингпен айналысады. Осы кезеңнің соңында мүдделі тараптарға толық емес (бірақ функционалды) өнім ұсынылады. Осыдан кейін бірден келесі кезең (ең маңызды мүмкіндіктердің келесі жинағына бағытталған) басталады.

Extreme Programming және SCRUM арасындағы айырмашылық неде?

Extreme Programming және SCRUM өте ұқсас және сәйкестендірілген әдістемелер екені түсінікті. Дегенмен, бұл екі әдіс арасында нәзік, бірақ маңызды айырмашылықтар бар. SCRUM спринттері 2-4 аптаға созылады, ал әдеттегі XP итерациялары қысқарақ (соңғы 1-2 апта). Әдетте, SCRUM командалары спринттерді өзгертуге рұқсат бермейді, бірақ XP командалары итерациялардағы өзгерістерге біршама икемді. Мысалы, спринтті жоспарлаудан кейін сол спринт элементтерінің жинағы өзгеріссіз қалады, бірақ жұмыс істемеген мүмкіндікті кез келген уақытта XP жүйесіндегі басқа мүмкіндікпен ауыстыруға болады. XP және SCRUM арасындағы тағы бір айырмашылық мынада: XP жүйесінде әзірленген мүмкіндіктердің реті тұтынушы тарапынан қатаң басымдық беріледі, ал SCRUM командасы элементтердің ретін шешеді (өнімнің артта қалуына SCRUM өнімінің иесі басымдық бергеннен кейін).

XP-тен айырмашылығы, SCRUM ешқандай инженерлік тәжірибені көрсетпейді. Мысалы, XP сынаққа негізделген даму (TDD), жұптық бағдарламалау, рефакторинг және т. XP кемшілігі. Extreme бағдарламалаудың тағы бір кемшілігі тәжірибесіз командалар автоматтандырылған сынақтарсыз немесе TDDсіз (немесе жай ғана бұзу) рефакторларға бейім болуы мүмкін. Сондықтан, кейбіреулер SCRUM қарауға жақсырақ деп болжайды (өйткені ол жай ғана бағдарланған уақыттық итерациялар арқылы үлкен жақсартулар әкеледі) және XP жоғарыда аталған тәжірибелердің мәнін ашқан сәл жетілген командалар үшін қолайлы (оларды қолданудың орнына, олар сұралғандықтан) істеу үшін).

Ұсынылған: