Канбан модел в софтуерното инженерство
Какво е Kanban?
Kanban е много популярна рамка за разработка в методологията за гъвкава разработка на софтуер. Предоставя прозрачен начин за визуализиране на задачите и работоспособността на екипа. Той използва главно физически и цифрови табла, за да позволи на членовете на екипа да визуализират текущото състояние на проекта, върху който работят.
Kanban възниква в Toyota през 1940-те години на миналия век. Значението на Kanban на японски е „билбордове“. Дъската Kanban има колони и карти с истории. Колоните не са нищо, но състоянията на работния процес и картите не са нищо друго освен демонстрация на действителната задача, която членът на екипа изпълнява.
Кога да използваме Kanban?
Ето причините да използвате метода за разработка Kanban:
- Kanban може да се използва във всеки домейн и може да се използва много ефективно в разработката на софтуер. Канбан управлението на проекти помага за подобряване на ефективността на екипа.
- Това е система, базирана на изтегляне. Задачите се изтеглят веднага щом дадено лице се освободи.
- Kanban трябва да се използва, когато искате да публикувате работата си по всяко време. Изисква git разклоняване, но е изпълнимо.
- Kanban трябва да се използва, когато искате да промените приоритетите в движение. За целта всичко, което трябва да направите, е да поставите тази история на върха на опашката със задачи.
- Трябва да се използва, когато искате да визуализирате работата си и искате да видите напредъка на задачите си визуално.
Канбан карти
Системата Kanban препоръчва визуализация на работата. Предлага използването на физическа и цифрова дъска.
Картите Kanban са съществени части от дъската Kanban, тъй като представляват работата, върху която екипът работи. Тези карти ще имат
- Приоритет
- собственик
- Тип
- Дата на падежа
Колона в дъската Kanban представлява работния етап и можете да поставите лимит на WIP (работа в ход) върху колоната. WIP лимитът означава максималния брой карти, които могат да останат в тази колона.
Тъй като управлението на проекти в Kanban използва система, базирана на изтегляне, когато и когато разработчикът е свободен, той/тя може да изтегли карта от колоната със задачи в колоната за разработчици.
Канбан съвет
Канбан съвет е гъвкав инструмент за управление на проекти, който помага за прилагането на Kanban за управление на проекти за лични и бизнес цели. Това е физическа или цифрова (JIRA) дъска, предназначена да помогне на екипите да визуализират работата си на различни етапи и процеси. Той също така помага да се представят етапите на работа с колони с помощта на карти.
Има колони, които представят състоянието на работата като
- задачи,
- Дев
- Тестване
- Дари.
Всяка от тези колони може да има карти <=WIP лимита. Картите представляват действителната работа.
Можете да използвате положителни числа, за да ограничите незавършената работа и това ограничение може да бъде поставено в горната част на колоните както във физическите, така и в цифровите Kanban дъски. Всеки от екипа може да управлява състоянието на своята карта, а целият екип може да визуализира работния процес. След това в този урок по Kanban ще научим за работния процес на Kanban.
Канбан работен процес
Канбан работен процес е набор от стъпки, които помагат на екипите да дефинират изрични политики и принципи в Kanban. Той представлява правилата и процедурите, докато работата протича през различни етапи на разработване и цикли на доставка. Работният процес на Kanban се състои от процеси стъпка по стъпка между стартирането и изпълнението на определена задача.
Основният принцип, който Канбан следва, е, „спрете да започвате, започнете да завършвате“. С помощта на лимитите на WIP се върши повече работа. Във всеки модерен инструмент като JIRA има персонализирани работни процеси и състояния на Kanban.
По-долу са основните състояния, които много софтуерни екипи следват за управление на работния процес.
членки | Разбиране на задачите |
---|---|
Да направя | Задачите пристигат тук за първи път в това състояние. |
Готов за анализ | Анализирайте задачата и добавете изцяло изискванията. |
Готов за развитие | Анализът е завършен и разработката може да започне. |
В развитието | Задачите се разработват. |
Готов за тестване | Разработката е завършена и сега тестването може да започне. |
В тестването | Тестват се задачи. |
Готов за издаване | Тестването е завършено; освобождаването може да се случи. |
Пуснато/Готово | Освободен. |
Четирите принципа на Канбан
По-долу са основните Четири основни принципа на Канбан:
- Започнете с това, което имате сега: Системата Kanban предлага да работите постепенно и да започнете с това, което имате в момента. Тъй като една от неговите практики е да се подобрява непрекъснато, трябва да подобрявате системата постепенно.
- Съгласете се да преследвате постепенна, еволюционна промяна: Kanban препоръчва постепенна промяна в процеса и не трябва да правите голяма промяна в процеса наведнъж.
- Уважавайте текущия процес, роли и отговорности: Още веднъж, започнете с това, което имате сега, и постепенно променяйте процеса, ролята и отговорностите.
- Насърчавайте действията на лидерство на всички нива: Всеки индивид може да действа като лидер и да дава идеи за подобряване на ефективността на цялостната система Kanban. Не бива да мислите, че това е дейност на управленско ниво и дори най-младият член на екипа може да действа като лидер.
Шестте основни практики на Канбан
Следват шестте основни основни практики на Канбан:
- Визуализирайте работния процес: Този принцип предполага наличието на Kanban дъска (физическа или цифрова) за визуализиране на работния процес. Всеки индивид от отбора трябва да вижда своята карта и картите на другите членове на отбора. Можете да местите картите си в различни колони, както е показано на горното изображение. Той носи много прозрачност в екипа и също така улеснява разрешаването на блокери
- Ограничете текущата работа: Kanban е система, базирана на изтегляне, и подобрява ефективността на екипа, за да ограничи текущата работа и да има задачи, които могат да бъдат изпълнени в дадения период от време от екипа. Това WIP ограничение се прилага от началото до края на работния процес. Можете да приложите ограничението в горната част на колоната, като използвате положително цяло число.
- Съсредоточете се върху потока: Този принцип се фокусира върху потока и всички прекъсвания. Ако има прекъсвания или блокери, те трябва да бъдат фиксирани за постоянно.
- Изрични правила: Политики могат да бъдат установени в екип за намаляване на преработката и фокусиране върху областите, които изискват внимание или където е по-ефективно.
- Обратна връзка: Циклите за обратна връзка са много важни в Канбан. Не е само в рамките на отбора, но и между множество отбори, треньори и т.н. Това помага за подобряване на цялостното здраве на системата Kanban.
- Непрекъснато Усъвършенстване: Това е основният принцип на системата Kanban. Той гласи, че винаги можете да подобрите процеса и това ще доведе до по-добра ефективност.
Система, базирана на издърпване
Kanban е метод, базиран на изтегляне, при който задачите се изтеглят, а не се натискат. Веднага след като завършите текущата си карта, можете да изтеглите нова карта от предишната колона на дъската Kanban.
С лимита на WIP, Kanban помага за подобряване на времето за изпълнение и времето за цикъл. Трябва да има възможно най-малката разлика между тези две времена. Например имаме 5 разработчици и само 1 тестер; какво ще стане в този случай? Винаги ще има много карти, които изискват тестване, и те ще стоят бездействащи и чакат.
За да преодолее проблемите, споменати по-горе, и да подобри ефективността, Kanban следва базирания на изтегляне подход с лимити на WIP, където ще има ограничен брой карти, които да бъдат изтеглени.
Така че тестерът ще изтегли задача от етапа „готов за тестване“, когато приключи текущата си задача в ръка. С лимита на WIP в колоните на Kanban (етапи на развитие), няма да имате много необслужвани карти в работния процес на Kanban.
Системата, базирана на изтегляне, също помага при намирането на правилната скорост за отбора. С подходящата скорост отборът ще се представи по-добре.
Време за изпълнение и време на цикъл
В метода Kanban времето за изпълнение и времето за цикъл се използват широко, има разлика между двете и е важно да се разбере това, за да се избегне объркването.
Преднина | Време за цикъл |
---|---|
Времето за изпълнение се измерва като времето между пристигането на задачата във вашия работен поток и нейното напускане от работния поток, което означава, че е била освободена. | Времето на цикъла се измерва като времето между пристигането на задачата в състояние „в изпълнение“ и пристигането на задачата в „готово за освобождаване“. |
Тук също е важно да разберете да не включвате времето, което отнема между готовността за пускане и действителното пускане.
Cycle Time = Work in Progress/Throughput
В идеалния сценарий разликата между времето за изчакване и времето на цикъла трябва да е минимална и Kanban използва кумулативна диаграма на потока (CFD) за измерване на исторически данни за изпреварване и време на цикъл.
Кумулативна диаграма на потока (CFD)
CFD е диаграма, която се предлага във всички водещи инструменти за управление на работния процес като JIRA. Тази диаграма измерва общото количество работни карти/задачи, които са влезли в работния процес и са натрупали завършени карти/задачи с течение на времето.
Помага ви да имате оценка на средното време за изпълнение и времето на цикъла за предварително определено време.
CFD диаграмата ще ви даде индикатори или проблемни области, които да коригирате. Той ще ви предостави ясна картина и въз основа на тази диаграма. Можете да коригирате времето за изпълнение и цикъла на вашия екип.
- Преднина: Това е продължителността между пристигането на нова карта във вашия работен процес и нейното окончателно напускане на работния процес.
- Време за цикъл: Това е продължителността между пристигането на картата в работно състояние и момента, в който картата е готова за освобождаване.
- WIP: Текущата работа (WIP) ограничава максималното количество работни елементи в различните етапи на работния поток.
- магистрала: Това е действителната производителност и показва действителния брой карти, доставени за даден период от време.
Пропускателна способност = WIP/Време на цикъл
Ограничаване на WIP (работа в ход)
В методологията за разработка на Kanban, WIP ограничава броя на задачите/картите, върху които може да се работи от член на екипа или целия наведнъж.
Ограниченията на WIP гарантират, че екипът стабилизира работата си и увеличава предсказуемия характер, което е от съществено значение в системата, базирана на изтегляне. Обикновено решението за ограничение на WIP се взема от самия екип.
Причина за задаване на WIP ограничения
Ето причините да зададете лимитите на WIP:
- Той измества фокуса върху извършването на нещата, тъй като индивидът се фокусира върху една задача в даден момент.
- Помага на екипите да разберат своя капацитет.
- Подобрява производителността и времето за цикъл.
- Помага за избягване на натрупването на задачи (в режим на изчакване).
- Помага за движението на работния процес и задачите продължават да се движат.
- Също така помага за разрешаването на блокери, тъй като индивидът не превключва между различни задачи.
Scrum Vs. Канбан
Ето важните разлики между Scrum Vs. Канбан
Спорна топка | Kanban |
---|---|
Спорна топка подчертава планирането. Започва с планиране на спринта и завършва с ретроспектива на спринта. Провеждат се много срещи, които помагат да се гарантира, че екипът е в съответствие със следващите стъпки, приоритети и поуки от предишни спринтове. | Kanban е отворен за извършване на промени в движение. Това означава, че има по-малко твърдост и нещата могат да се променят често. |
Препоръчва събиране на измервания на времето направени по време на спринтове | Kanban препоръчва графики за да получите преглед на напредъка на екипа във времето. |
Спорна топка вече не изисква ангажимент от екипите. Вместо това става въпрос за целите и прогнозите за спринта. | Kanban разчита на график и прогнози. |
Набляга на планирането и т.н оценката има много важна роля в Scrum | Канбан има няма задължителни изисквания за оценка. |
Всяко индивидът има своята роля и отговорности. | Не задайте роли, така че гъвкавост по отношение на индивидуалните отговорности. |
Итерациите/Sprints са с фиксирана продължителност. Тази продължителност варира от 2 седмици до 1 месец. | Канбан е не се основава на продължителността. Това нещо се измерва по отношение на времената на цикъла. |
Екипите са изисква да се ангажира конкретно количество работа. | Не е необходим ангажимент не е задължително за отбори. |
При този метод, междуфункционални екипи са важни, тъй като могат да се справят с всяко прекъсване, което може да причини пречка в разработката на софтуера. | Като специализиран екип е важно. |
Е не е възможно да се добавят елементи към текущи итерации. | НОВ елементи могат лесно да се добавят ако има наличен допълнителен капацитет. |
Спринтово изоставане е собственост само на a единичен отбор. | Множество екипиs могат да споделят Kanban дъска. |
Доставчиците са определя се от спринтове, който набор от работа трябва да бъде завършен и готов за преглед. | Продуктите и процесите са доставя се непрекъснато на необходимата основа. Така че процесът на тестване и преглед протича едновременно. |
Метод за разработка на софтуер Scrum фокусира върху изоставането. | Канбан метод изцяло се фокусира върху таблото за управление на процеса. |
Всяко членът на екипа има специфична роля в Scrum майсторът определя срокове, собственикът на продукта поставя цели и задачи, а членовете на екипа извършват работата по разработката. | Няма предварително дефинирани роли за екип. Все пак може да има ръководител на проекта; екипът се насърчава да си сътрудничи и да работи заедно. |
Най-добър за проекти с промяна на приоритетите. | Идеален за екипи с стабилни приоритети което е малко вероятно да се промени с времето. |
Измерва производството използвайки скоростта чрез спринтове. | Измерва производството с помощта време за цикъл или точното време, необходимо за завършване на една пълна част от проект. |
Scrum изисква a пълно преминаване от традиционния модел към модела Agile Scrum, който ще бъде внедрен в проекта. | Kanban не позволява драстични промени в проекта. |
Това е идеален метод за проекти с много различни приоритети. | Най-подходящ за екипи със стабилни приоритети. |
В Scrum целият team се фокусира върху сътрудничеството и изпълнението на задачата за осигуряване на качествена развойна работа. | Екипите работят за постигане на целите и намалете времето за завършване на целия процес. Следователно намаляването на времевия цикъл е най-големият показател за успех тук. |
Спорна топка акцент върху неговите графици; нови елементи не могат да се добавят към текущи итерации. | Канбан е по-итеративен по природа няма конкретни срокове. Така че нови артикули могат непрекъснато да се добавят, когато има наличен допълнителен капацитет. |
Цялата работа се извършва в партиди/Sprints. | Целият проект е изпълнен на движение на еднонишков работен елемент потоци. |
Скръм майстор действа като решаващ проблем. | Канбан насърчава всеки член на екипа е лидер и споделяне на отговорността между всички тях. |
Scrum предписва ограничени във времето итерации. | Канбан се фокусира върху планиране на различна продължителност за индивидуална итерация. |
Scrum помага на фирмите да спестявате време и пари. | Канбан метод съсредоточете се върху непрекъснатото подобряване, производителност и ефективност. |
Постигане стабилна и последователна комуникация на представяне на всички нива. | Членовете на екипа са по-склонни да постигат целите си много по-лесно поради визуалния характер на Kanban дъските. |
Проект са кодирани и тествани по време на спринта Рецензия | Членовете на екипа са по-склонни да постигат целите си много по-лесно поради визуалния характер на Kanban дъските. |
Е по-лесно се адаптират към постоянните промени заради кратките спринтове и редовната обратна връзка. | Е предназначени за редовна, стабилна продукцияголемите промени в търсенето на клиентите могат да доведат до провал на Kanban. |
Общата цена на проекта е минимална, което може да доведе до по-бърз и евтин резултат. | Ако дадена задача не е оценена правилно, общата цена на проекта никога няма да бъде точна. В такива случаи задачата може да бъде разпределена в няколко спринта. |
Тази методология изисква опитни членове на екипа само. Така че, ако екипът се състои от хора, които не са експерти, проектът не може да бъде завършен навреме. | Не конкретни времеви рамки се разпределят за всяка фаза, така че членовете на екипа никога не получават представа колко време могат да отделят за всяка фаза. |
В този Agile Scrum метод е така по-лесно доставяне на качествен продукт в определено време. | Предназначен е за a редовен, стабилен изход, големи промени в търсенето на клиентите могат да накарат Kanban да падне. |
- планът на проекта никога няма да пречи дори ако член на екипа напусне екипа. | Ако някой от членовете на екипа излезе по време на разработката, това може навреди на развитието на проекта. |
Понякога ежедневни срещи разочаровам членове на отбора. | Остаряла канбан дъска може да доведе до проблеми в процеса на разработка. |
Големите проекти могат лесно да бъдат разделени в лесно управляеми спринтове. |
Oбобщение
- Определение на Kanban: Kanban се определя като гъвкава методология за разработка за разработване на софтуер, автомобили, стоки, лекарства, обувки или всяка друга производствена работа.
- Kanban използва дъската Kanban, за да визуализира работата. Той използва колони като етапи (задачи, разработка, тестване и т.н.) и карти като работен елемент.
- Канбан методологията поддържа физическа и цифрова дъска за визуализация.
- Канбан е система, базирана на изтегляне, и картите се изтеглят от предишния етап към текущите етапи от членовете на екипа.
- Методът Kanban използва CFD диаграмата, за да разбере времето за изпълнение и времето на цикъла на екипа. Тази диаграма помага на екипите да коригират разликата между тези две времена и да подобрят ефективността.
- Методологията за разработка на Kanban, WIP ограничава броя на задачите/картите, върху които може да се работи от член на екипа или целия наведнъж.
- Ограниченията на WIP измества фокуса върху извършването на нещата, тъй като индивидът се фокусира върху една задача в даден момент.