Экстремалдуу программалоо менен SCRUM ортосундагы айырма

Экстремалдуу программалоо менен SCRUM ортосундагы айырма
Экстремалдуу программалоо менен SCRUM ортосундагы айырма

Video: Экстремалдуу программалоо менен SCRUM ортосундагы айырма

Video: Экстремалдуу программалоо менен SCRUM ортосундагы айырма
Video: Бир күндө сайт жасанганды кантип үйрөнсө болот? 2024, Ноябрь
Anonim

Экстремалдуу программалоо vs SCRUM | XP менен SCRUM

Программалык камсыздоо тармагында көптөгөн жылдар бою программалык камсыздоону иштеп чыгуу методологиялары колдонулган, мисалы, Шаркыратма иштеп чыгуу ыкмасы, 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 моделине таандык программалык камсыздоону иштеп чыгуу методологиясы. Экстремалдуу программалоо этаптарды өтө кичинекей үзгүлтүксүз кадамдар менен ишке ашырат (салттуу ыкмаларга салыштырмалуу). Бир гана күн же бир жума талап кылынган биринчи өтүү атайылап толук эмес. Программалык камсыздоону иштеп чыгуу боюнча конкреттүү максаттарды камсыз кылуу үчүн, башында автоматташтырылган тесттер жазылат. Андан кийин иштеп чыгуучулар коддоону жасашат. Программалоону түгөй кылып жасоого көңүл бурулат. Бардык сыноолор өткөндөн кийин, коддоо аяктады деп эсептелет. Кийинки этап - долбоорлоо жана архитектура, ал ошол эле программисттер тобу тарабынан кодду рефакторинг менен алектенет. Бул этаптын аягында, толук эмес (бирок функционалдык) продукт кызыкдар тараптарга сунушталат. Ушундан кийин дароо кийинки этап (эң маанилүү функциялардын кийинки топтомуна багытталган) башталат.

Экстремалдуу программалоо менен SCRUM ортосунда кандай айырма бар?

Экстремалдуу программалоо жана SCRUM абдан окшош жана шайкеш келген методологиялар. Бирок, бул эки ыкманын ортосунда тымызын, бирок маанилүү айырмачылыктар бар. SCRUM спринттери 2-4 жумага созулат, ал эми типтүү XP итерациялары кыскараак (акыркы 1-2 жума). Адатта, SCRUM командалары спринттерге өзгөртүүлөрдү киргизүүгө уруксат бербейт, бирок XP командалары итерациядагы өзгөрүүлөргө анча ийкемдүү эмес. Мисалы, спринт пландаштырылгандан кийин, ал спринттин элементтеринин жыйындысы өзгөрүүсүз калат, бирок иштей баштабаган функция каалаган убакта XPдеги башка функция менен алмаштырылышы мүмкүн. XP менен SCRUM ортосундагы дагы бир айырмачылык, XPде иштелип чыккан функциялардын тартиби кардар тарабынан катуу артыкчылыктуу болуп саналат, ал эми SCRUM командасы нерселердин тартибин чечет (продукциянын артта калуусу SCRUM продуктунун ээси тарабынан артыкчылыктуу болгондон кийин).

XPден айырмаланып, SCRUM эч кандай инженердик практиканы колдонбойт. Мисалы, XP тестке негизделген иштеп чыгуу (TDD), жуптук программалоо, рефакторинг ж. XP кемчилиги. Extreme программалоонун дагы бир кемчилиги - тажрыйбасыз командалар эч кандай автоматташтырылган тесттер же TDD (же жөн эле хакерлик)сиз рефакторлорго ыкташы мүмкүн. Ошондуктан, кээ бирлер SCRUM карап туруу үчүн жакшыраак деп эсептешет (анткени ал жөн гана багытталган убакыт кутучасы аркылуу чоң жакшыртууларды алып келет) жана XP жогоруда аталган практикалардын маанисин тапкан бир аз жетилген командалар үчүн ылайыктуу (аларды колдонуунун ордуна, алардан суралгандыктан) ушундай кылуу).

Сунушталууда: