Екстремно програмирање вс СЦРУМ | КСП вс СЦРУМ
Током година постојало је више различитих методологија за развој софтвера које се користе у софтверској индустрији, као што су метода развоја водопада, В-Модел, РУП и неколико других линеарних, итеративних и комбинованих линеарно-итеративних метода. Агиле модел (или тачније, група методологија) је новији модел развоја софтвера који је увео манифест Агиле како би се отклонили недостаци који се налазе у тим традиционалним методологијама развоја софтвера..
Агилне методе заснивају се на итеративном развоју и користе повратне информације од стране корисника као главни контролни механизам. Агилност се може назвати приступом усмерен на људе него традиционалним методама. Агиле модел испоручује радну верзију производа врло рано разбијањем система на врло мале и управљиве под-делове, тако да купац већ од раније може остварити неке од предности. Време циклуса испитивања Агиле-а је релативно кратко у поређењу с традиционалним методама, јер се тестирање врши паралелно са развојем. Због свих ових предности, агилне методе су префериране од традиционалних методологија у овом тренутку. Сцрум и Ектреме програмирање су две најпопуларније варијације Агиле метода.
Шта је СЦРУМ?
Као што је горе поменуто, СЦРУМ је инкрементални и итеративни процес управљања пројектима, који припада породици Агиле метода. СЦРУМ је заснован на давању високог приоритета учешћу корисника у раном циклусу. Препоручује укључивање тестирања од стране купца рано и често што је више могуће. Тестирање се врши у свакој тачки када стабилна верзија постане доступна. Основа СЦРУМ-а заснива се на започињању тестирања од почетка пројекта и настављању све до краја пројекта.
Кључна вредност СЦРУМ-а је „квалитет је одговорност тима“, који наглашава да је за квалитет софтвера одговорност целог тима (а не само тима за тестирање). Још један важан аспект СЦРУМ-а је разбијање софтвера на мање управљиве делове и њихово брзо испоручивање купцу. Испорука исправног производа је од највеће важности. Затим тим наставља да побољшава софтвер и непрекидно испоручује на сваком већем кораку. То се постиже тако што ћете имати врло кратке циклусе ослобађања (зване спринт) и добити повратне информације за побољшање на крају сваког циклуса.
СЦРУМ дефинише неколико кључних улога за несметан рад развојног тима. Они су власник производа (који заступа купца и одржава заостатак производа), мајстор Сцрум-а (који делује као организатор и координатор тима тако што води скупове у сцрум-у, одржава заостале спринт-ове и спаљује карте) и други чланови тима. Тим се може састојати од традиционалних улога, али углавном су то самоуправни тимови. Главни артефакти Сцрума су заостаци за производ / заостатак за производом (листа жеља), заостаци за спринт / недостаци (задаци у свакој итерацији), снимање графикона (преостали датум према датуму). Главне церемоније СЦРУМ-а су састанак заосталих производа, састанак спринт-а и састанак ретроспективе.
Шта је екстремно програмирање?
Екстремно програмирање (скраћено КСП) је методологија развоја софтвера која припада моделу Агиле. Екстремно програмирање изводи фазе у врло малим непрекидним корацима (у поређењу са традиционалним методама). Први прелаз, који траје само дан или недељу, намерно је непотпун. Да би се обезбедили конкретни циљеви за развој софтвера, на почетку се пишу аутоматизовани тестови. Тада програмери раде кодирање. Фокус је на програмирању као пара. Након што прођу сви тестови, кодирање се сматра завршеним. Следећа фаза је дизајн и архитектура, која се бави рефакторингом кода од стране истог скупа програмера. На крају ове фазе, незавршен (али функционалан) производ представљен је актерима. Одмах након тога започиње следећа фаза (која се фокусира на следећи скуп најважнијих карактеристика).
Која је разлика између екстремног програмирања и СЦРУМ-а?
Екстремно програмирање и СЦРУМ су разумљиво врло сличне и усклађене методологије. Међутим, постоје суптилне, али важне разлике између ове две методе. СЦРУМ спринти трају 2-4 недеље, док су типичне КСП итерације краће (последње 1-2 недеље). Обично СЦРУМ тимови не дозвољавају промене у спринтовима, али КСП тимови су мало флексибилнији за промене унутар итерација. На пример, након планирања спринт-а, скуп ставки тог спринт-а остаје непромењен, али функција која није започела рад може се било када заменити неком другом функцијом у КСП-у. Још једна разлика између КСП-а и СЦРУМ-а је у томе што је редослед функција развијених у КСП-у строго одређиван од стране купца, док тим СЦРУМ-а одлучује о редоследу ставки (након што заостатке производа приоритетно постави власник производа СЦРУМ-а).
За разлику од КСП-а, СЦРУМ не поставља никакву инжењерску праксу. На пример, КСП је вођен праксама попут тестирања заснованог на тестирању (ТДД), програмирања парова, рефакторинга итд. Међутим, неки верују да би налагање скупа пракси самоорганизационим тимовима могло имати негативан утицај, и то се може сматрати недостатак КСП-а. Други недостатак Ектреме програмирања је тај што неискусни тимови могу склонити рефактору без аутоматизованих тестова или ТДД-а (или једноставно хаковање). Због тога неки сугерирају да је СЦРУМ бољи за почетак (јер доноси велика побољшања једноставно фокусираним временским факторима), а КСП је погодан за мало зрелије тимове који су открили вредност горе поменутих пракси (уместо да их користе зато што су их питали урадити тако).