Компјутерска индустрија обилује двосмисленим језиком, оштрим жаргоном и сложеним идејама које је тешко разумети и које могу послати ваш ум у помаму рачунарског баферовања.
Водопад? Сцрум? Агиле?
Ако су вам ове фразе потпуно стране, не брините; ваш тим од помоћи ХасхДорк технолошких штребера је ту да вам помогне да разумете разлике између ових кључних фаза процеса развоја како бисте могли да стекнете знање.
Агилне, сцрум и водопадне технике ће све бити покривене у овом посту на блогу, заједно са начином на који свака може помоћи вашем тиму у целини.
Почнимо са агилним, а ми ћемо понети остало.
Шта је Агиле?
Агилан развој софтвера прати итеративни, инкрементални приступ. Уместо опсежне припреме на почетку пројекта, Агиле технике су флексибилне према променљивим потребама током времена и промовишу сталне повратне информације од крајњих корисника.
Вишефункционални тимови раде на итерацијама производа током времена, а овај посао је категорисан у заостатак и приоритет на основу пословне вредности или вредности корисника. Сврха сваке итерације је стварање употребљивог производа.
Лидерство промовише сарадњу, одговорност и комуникацију лицем у лице у Агиле методологијама.
Пословни актери и програмери морају да сарађују како би осигурали да производ испуњава захтеве потрошача и циљеве компаније.
Израз „агилан развој“ односи се на низ метода и оквира који су засновани на идеалима и начелима наведеним у Агиле Манифесто.
Стручњаци саветују да се придржавате агилних принципа и вредности и да их користите као водич за одлучивање о правим акцијама које треба предузети у одређеном окружењу док приступате развоју софтвера.
Тим за сарадњу и самоорганизовање су главне области фокуса за заједницу агилног развоја софтвера.
Тимовима је дозвољено да самостално одлучују како ће се позабавити одређеним пројектом, али то не значи да супервизори не постоје. Агилни тимови су стога међусобно функционални.
У агилној парадигми менаџери су и даље неопходни. Они се старају да сваки члан тима има или стекне потребне способности за пројекат.
Менаџери у агилном оквиру раде тако што негују атмосферу која доноси најбоље у тиму. Али уместо да преузму вођство, они често заузимају позадинско седиште и пуштају тим да одлучи како ће испоручити ствари.
Менаџери се укључују само када тимови безуспешно покушавају да реше проблеме.
Агилни развојни циклус
Фазе Агиле развојног циклуса су наведене у наставку. Кључно је запамтити да ове фазе не би требало да се одвијају по реду јер су флексибилне и стално се мењају. Многе од ових фаза се одвијају истовремено.
- Планирање: Након што пројектни тим одлучи да је идеја практична и изводљива, почињу да траже карактеристике. Ова фаза има за циљ да одреди приоритет свакој особини и додели је итерацији након што се идеја разбије на мање делове (обележја).
- Потребне анализе: Да би се одредили пословни захтеви, овај корак подразумева неколико дискусија са менаџерима, заинтересованим странама и корисницима. Ко ће користити производ и како ће га користити су међу детаљима које тим треба да прикупи. Ови стандарди морају бити специфични, применљиви и квантитативни.
- Дизајн: Захтеви пронађени у претходној фази се користе за припрему система и дизајна софтвера. Тим мора да размотри изглед производа или решења. Тестни тим такође развија стратегију или план за тест.
- Имплементација, кодирање или развој: Фокус ове фазе је на изградњи и евалуацији карактеристика и планирању примене итерација (пратећи итеративни и инкрементални развојни приступ [ИИД]). Пошто нема обезбеђених карактеристика, почиње итерација 0 развојног периода. Довршавањем активности као што су уговарање, постављање поставки и финансирање, ова итерација пружа основу за будући раст.
- Тестирање: Након што је код креиран, тестира се у складу са захтевима како би се осигурало да производ заиста задовољава захтеве корисника и пословне циљеве. У овој фази се спроводе тестирање јединице, интеграције, система и прихватљивости.
- развој: Након тестирања, производ се шаље клијентима како би могли да га користе. Међутим, пројекат није завршен након постављања. Купци се могу сусрести са додатним проблемима након што почну да користе производ, за које ће пројектни тим требати да пронађе решење.
Предности
- Бржа, квалитетнија испорука: Растављањем пројекта на итерације (управљиве јединице), тим је у могућности да се концентрише на квалитетнију сарадњу, развој и тестирање. Када се тестирање обавља са сваком итерацијом, проблеми се проналазе и решавају брже. Поред тога, уз сталне, накнадне ревизије, овај висококвалитетни софтвер се може брже испоручити.
- Промена је добродошла: Иако су циклуси планирања краћи, лако је прихватити и прилагодити промене у било ком тренутку пројекта. Заостатак се увек може побољшати и променити приоритет, омогућавајући тимовима да унесу измене у пројекат за неколико недеља.
- Крајњи циљ можда није познат: Агиле је одличан за пројекте када крајњи циљ није јасно дефинисан. Како пројекат буде напредовао, циљеви ће постати јасни, а развој ће моћи лако да одговори на ове променљиве потребе.
- Континуирано побољшање: Агилни програми промовишу унос корисника и тима у свим фазама пројекта, омогућавајући примену наученог да би се побољшала следећа итерација.
- Мишљења купаца су цењена: Постоји неколико могућности за клијенте да гледају како се посао завршава, дају повратне информације и заиста утичу на коначни резултат. Тако интимном интеракцијом са пројектним тимом, они би могли развити осећај власништва.
- Снажан тимски рад: Агиле наглашава значај редовне комуникације и личних сусрета. Људи могу да преузму одговорност и поседују одређене компоненте пројекта када раде у тимовима.
Мане
- Чланови тима морају имати знањее: Агилни тимови су често мали. Дакле, чланови тима морају имати широк спектар вештина. Поред тога, они морају да разумеју и да се осећају опуштено користећи одабрану Агиле технику.
- Планирање би могло бити мање прецизно: Понекад може бити тешко одредити тачан датум испоруке. Агиле је изграђено на временски ограниченој испоруци, а менаџери пројеката често мењају приоритете задатака. Стога је вероватно да неки од испорука који су првобитно били планирани за испоруку неће бити завршени на време. Поред тога, више спринтова се може додати у било ком тренутку током пројекта, продужавајући цео распоред.
- Документација се може занемарити: Неки чланови тима могу веровати да је концентрисање на документацију мање пресудно јер Агиле Манифест фаворизује радни софтвер изнад детаљне документације. Агилни тимови треба да постигну идеалну равнотежу између документације и дијалога, чак иако детаљна документација не може сама по себи да гарантује успех пројекта.
- Коначни резултат може се знатно разликовати: Можда није постојала јасна стратегија за почетни Агиле пројекат, и стога се готови исход може значајно променити у односу на оно што се прво очекивало. Значајно другачији коначни резултат може бити резултат додавања нових итерација на основу промене уноса клијента, пошто је Агиле толико прилагодљив.
- Посвећеност времена програмера: Развојни тим мора бити у потпуности посвећен пројекту да би агиле био ефикасан. Агилни метод, који траје дуже од конвенционалног приступа, захтева стално активно учешће и сарадњу. Поред тога, то имплицира да се програмери морају посветити целој дужини пројекта.
Шта је водопад?
Најпопуларнија итерација животног циклуса развоја система (СДЛЦ) за софтверско инжењерство и ИТ пројекте је позната као „приступ водопада“, који прати секвенцијалну, линеарну процедуру.
Гантов графикон, облик тракастог графикона који приказује датум почетка и завршетка сваког посла, повремено се користи за његово планирање.
Развојни тим напредује на следећи ниво након што се заврши једна од осам фаза. Тим није у могућности да се врати у претходну фазу без поновног покретања целе процедуре.
Поред тога, клијент ће можда морати да процени и прихвати захтеве пре него што тим може да пређе на следећи ниво.
Модел водопада је развијен у високо организованим окружењима производног и грађевинског сектора, где прилагођавања могу бити прескупа или чак немогућа.
Техника водопада је тако названа јер је намењена да тече у само једном правцу — надоле — баш као водопад. Његове фазе укључују анализу, почетак, тестирање, пројектовање, изградњу, примену, одржавање и тестирање.
Техника водопада има неколико предности, као и свака друга стратегија. Једна је да су фазе планирања и дизајна пројекта боље успостављене.
Купци и развојни тим су више усклађени када су у питању резултати пројекта док користе развој софтвера водопада. Пошто сте од самог почетка свесни обима пројекта, развој водопада такође олакшава праћење напретка.
Процес водопада користи стручњаке, програмере, аналитичаре и тестере да се концентришу на своје послове у пројекту уместо да цео тим наглашава један корак.
Фазе водопада
Шест корака водопада морају се појавити један за другим:
- Захтеви за прикупљање и складиштење: Требало би да стекнете темељно знање о томе шта овај пројекат захтева у овом тренутку. Постоји неколико техника за прикупљање ових података, укључујући интервјуе, анкете и заједничко размишљање. Потребе пројекта би требало да буду очигледне када се ова фаза заврши, а ваш тим би требало да добије копију документа са захтевима.
- Дизајн система: Систем је дизајнирао ваш тим користећи унапред одређене спецификације. Током ове фазе не ради се никакво кодирање, али тим поставља захтеве за хардвер или програмски језик.
- Имплементација: Ова фаза укључује кодирање. Програмери користе податке из претходне фазе да направе употребљив производ. Код се често имплементира у сићушним деловима који се комбинују на крају једне фазе или на почетку друге.
- Тестирање: Производ може почети да се тестира након што се код заврши. Тестери пажљиво проналазе и пријављују све проблеме. Ваш пројекат ће можда морати да се врати на прву фазу ради поновне евалуације ако се појаве значајни проблеми.
- Испорука/распоређивање: Производ је завршен у овом тренутку, а ваш тим шаље резултате за примену или ослобађање.
- Одржавање: Клијент је примио производ и користи га. Ваш тим ће можда морати да развије исправке и ажурирања када се појаве проблеми да би их решио. Опет, значајни проблеми могу захтевати повратак на први корак.
Предности
- Једноставан за руковање и управљање: Водопад приступ је једноставан за коришћење и разумевање пошто се сваки пројекат обрађује на исти секвенцијални начин. Пре него што започне пројекат водопада, од тима се не тражи да има било какву претходну стручност или обуку. Приступ водопада је веома строг; свака фаза има скуп резултата и преглед, што га чини једноставним за администрацију и одржавање.
- Потребна је добро документована методологија: Документација коју захтева водопад методологија помаже да се разјасни разлоге иза тестова и кода. Поред тога, креира папирни траг у случају да заинтересоване стране желе додатне информације о одређеној фази или за било које будуће иницијативе.
- Спровођење дисциплине: Сваки корак у пројекту водопада има почетак и крај, што олакшава преношење напретка заинтересованим странама и клијентима. Тим може смањити могућност пропуштања рока тако што ће прво поставити захтјеве и дизајн прије израде кода.
Мане
- Може бити тешко прикупити прецизне захтеве: Разговор са потрошачима и заинтересованим странама како би се утврдиле њихове потребе је једна од почетних фаза пројекта водопада. У овој раној фази пројекта, могло би бити изазовно утврдити њихове посебне захтеве. Купци често уче о својим захтевима како се пројекат развија, а не да их изразе унапред.
- Промене је тешко прихватити: Посада не може да настави са радом након завршетка фазе. Веома је тешко и скупо вратити се и поправити ако током фазе тестирања сазнају да је функционалност недостајала током процеса захтева.
- Софтвер се испоручује након његовог рока: Две до четири фазе пројекта морају бити завршене пре него што почне право кодирање. Као резултат, заинтересоване стране неће видети функционалан софтвер све до касно у животном циклусу.
Шта је Сцрум?
Један од најомиљенијих оквира процеса за стављање Агиле-а у праксу је Сцрум, који је подскуп Агиле-а.
То је итеративна парадигма за управљање креирањем сложеног софтвера и производа. Спринтови, који су итерације фиксне дужине које трају једну до две недеље, омогућавају тиму да изда софтвер по редовном распореду.
Заинтересоване стране и чланови тима се окупљају како би разговарали о наредним корацима након сваког спринта. Улоге, одговорности и састанци у Сцрум-у остају константни.
На пример, Сцрум наводи планирање спринта, дневни станд-уп, спринт демо и ретроспективу спринта као четири ритуала који обезбеђују сваку структуру спринта.
Тим ће користити визуелне артефакте као што су табле са задацима или графикони сагоревања током сваког спринта да би показао напредак и добио инкременталне повратне информације.
У сцрум-у, тим и власник производа блиско сарађују како би идентификовали и поставили приоритет функционалности система. Они то постижу стварањем заостатка производа, који садржи све задатке неопходне за производњу софтвера који функционише како је предвиђено.
Закрпе грешака, нефункционални захтеви и функције треба да буду укључени у ред чекања. Вишефункционални тимови морају да процене и да се пријаве за испоруку софтверских инкремената током континуираних спринтова, који обично трају 30 дана, након што су циљеви постављени.
Само тим може да дода функционалност Спринту након што изврши заостатак за тај спринт.
Следећа испорука спринта, заостатак производа се процењује и, ако је потребно, поново поставља приоритете, а следећи скуп испорука се бира да буде део следећег спринта.
Сцрум процес
- Број заосталих производа: Да би наручили ставке у заостатку производа, састају се власник производа и Сцрум тим (рад на заостатку производа долази из корисничких прича и захтева). Заостатак производа је листа свих жељених функција за производ, а не листа задатака које треба завршити. Након тога, развојни тим бира задатке из заостатка производа које ће извршити током сваког спринта.
- Спринт планирање: Пре сваког спринта, власник производа испоручује тиму најважније ставке у заостатку на састанку за планирање спринта. Група затим бира ставке из заостатка производа које могу да заврше током спринта и премешта их у заостатак спринта (што је листа задатака које треба завршити у спринту).
- Пречишћавање/сређивање заосталих предмета: Да би се осигурало да је заостатак припремљен за следећи спринт, тим и власник производа се састају на крају једног спринта. Тим може одбацити корисничке приче које више нису релевантне, додати нове, ревидирати редослед којим би требало да се адресирају или поделити корисничке приче на мање задатке. Током овог састанка „уређивања“, постараће се да заостатак садржи само ствари које су релевантне, детаљне и у складу са циљевима пројекта.
- Сцрум састанци сваки дан: На 15-минутном станд-уп састанку под називом Даили Сцрум, сваки члан тима расправља о својим циљевима и проблемима који су се појавили. Сваког дана током спринта, тим учествује у Даили Сцрум-у, који све држи на задатку.
- Састанак за процену спринтат: Тим представља свој рад на састанку за преглед спринта на крају сваког спринта. Уместо извештаја или ПоверПоинт презентације, овај састанак би требало да укључи праву демонстрацију.
- Ретроспективни спринт састанак: Тим расправља о свим модификацијама које треба да се изврше у следећем спринту, као ио томе колико добро Сцрум ради за њих на крају сваког спринта. Тим може да разговара о позитивним аспектима спринта, негативним аспектима и областима за побољшање.
Предности
- Више одговорности од тима: Не постоји менаџер пројекта који даје упутства Сцрум тиму шта да ради и када. Уместо тога, о послу који се може завршити у сваком спринту одлучује тим као целина. Сви они сарађују и пружају руку једни другима, побољшавајући тимски рад и негујући индивидуалност у сваком члану тима.
- Побољшана видљивост и транспарентност пројекта: Мање је неспоразума и неизвесности јер су сви у тиму свесни своје одговорности захваљујући честим станд-уп састанцима. Тим може да се носи са проблемима пре него што измакну контроли, јер се проблеми унапред уочавају.
- Побољшано смањење трошкова: Стална комуникација обавештава тим о свим проблемима или променама чим се догоде, што помаже у уштеди трошкова и побољшању квалитета. Мањи делови функција обезбеђују сталне повратне информације и омогућавају рану корекцију грешака пре него што веће грешке постану прескупе за отклањање.
- Једноставан за прилагођавање променама: Једноставније је носити се са променама и прилагођавати се променама када постоје честе повратне спреге и кратки спринтови. Илустрације ради, ако тим наиђе на потпуно нову корисничку причу током једног спринта, они могу брзо да додају ту функцију следећем спринту на састанку за прецизирање заосталих задатака.
Мане
- Опасност од пузања домета: Због недостатка одређеног датума завршетка, одређени Сцрум пројекти могу се суочити са смањењем обима. Заинтересоване стране би се могле навести да наставе да захтевају више функција ако не постоји рок за завршетак.
- Лош Сцрум Мастер може све пореметити: Менаџер пројекта није исто што и сцрум мастер. Сцрум Мастер мора да верује тиму који надгледа и никада им не даје упутства. Сцрум Мастер нема моћ над тимом. Пројекат ће пропасти ако Сцрум мастер покуша да управља тимом.
- Проблеми са прецизношћу могу бити резултат лоше наведених задатака: Ако задаци нису јасно наведени, трошкови пројекта и распореди неће бити тачни. Планирање постаје изазовно и спринтови могу трајати дуже него што је предвиђено ако почетни циљеви нису дефинисани.
- Искуство и посвећеност су неопходни за тим: Да би тим био успешан, улоге и дужности морају бити јасно дефинисани. Сцрум тим захтева чланове тима са техничким вештинама јер не постоје јасно дефинисане улоге (сви раде све). Тим се такође мора посветити учешћу у дневним Сцрум сесијама и да се држи заједно током целог пројекта.
Агиле против Сцрум-а
Иако Агиле и Сцрум користе исту методологију, постоје неке варијације између њих. Агилни манифест описује скуп принципа за креирање софтвера кроз итеративни развој.
Сцрум је, с друге стране, скуп смерница којих се морате придржавати док радите на развоју Агиле софтвера. Агиле је концепт, док је Сцрум техника за спровођење у праксу.
Сцрум је метод имплементације Агиле-а, стога оба имају много заједничких ствари. Оба приступа су итеративни, дају приоритет раној и честој испоруци софтвера и прихватају промене. Они такође подржавају отвореност и стални развој.
Агиле против водопада
Ригидно у односу на флексибилно најбоље описује разлику између Ватерфалл процеса и Агиле. Док је Агиле флуидан и стално се мења, Ватерфалл је много строжа и ригиднија методологија.
Ове даље разлике између њих су следеће:
- Агиле не захтева линеаран приступ, док је водопад секвенцијалан.
- Иако су потребе често унапред дефинисане у пројектима водопада, очекује се да ће се променити и прилагодити у Агиле иницијативама.
- За разлику од Агиле-а, пројекти водопада не дозвољавају модификације рада који је завршен у претходној фази.
- Водопад је организована процедура у којој морате завршити сваки корак пре него што пређете на следећи. Међутим, Агиле је флексибилна методологија која вам омогућава да наставите са пројектом сопственим темпом.
Агиле вс Ватерфалл вс Сцрум
- Водопад повећава поверење у оно што ће бити обезбеђено врло брзо након што се планира. Агиле се ослања на најбоље праксе развојног окружења. Овде се бројним пројектним ризицима може добро управљати јер се резултати континуирано процењују.
- Водопад не предвиђа да ће тим и пројекат бити смештени на истој локацији. Док сцрум и агиле захтевају колокацију запослених.
- Агиле се фокусира на смањење прераде пројекта и подстиче промене да се уграде много раније. За разлику од водопада који другачије реагује, скрам такође омогућава рано откривање промена.
- Компактнији нацрт за финални производ пружају агиле и сцрум. Ово ствара проблем са обећањима датим купцу. Насупрот томе, графика водопада даје клијентима и програмерима бољи утисак о готовом резултату.
- Свака од ових техника има скуп алата за организовање и симулацију задатака укључених у њихово креирање.
Zakljucak
Ако сте до сада пратили и сигурни сте у своје знање о разликама између Ватерфалл, Агиле и Сцрум процеса, већ би требало да знате која стратегија ће најбоље функционисати за вас и ваш тим.
Техника водопада, која је за пројекте са одређеним обимом, временским оквиром и буџетом, може бити ваша најбоља опција ако волите чврста правила и процедуре и сматрате да они доносе јасноћу.
С друге стране, ако вас слобода и прилагодљивост коју Агиле нуди инспиришу, то би могло бити место на које бисте требали да усмерите своју пажњу.
Међутим, Сцрум је прави пут ако желите мало дисциплине унутар флексибилног оквира.
Међутим, ове приступе морате размотрити у светлу пројекта на којем радите и вашег крајњег исхода.
Ostavite komentar