Канбан модел в софтуерното инженерство

Какво е Kanban?

Kanban е много популярна рамка за разработка в методологията за гъвкава разработка на софтуер. Предоставя прозрачен начин за визуализиране на задачите и работоспособността на екипа. Той използва главно физически и цифрови табла, за да позволи на членовете на екипа да визуализират текущото състояние на проекта, върху който работят.

Kanban възниква в Toyota през 1940-те години на миналия век. Значението на Kanban на японски е „билбордове“. Дъската Kanban има колони и карти с истории. Колоните не са нищо, но състоянията на работния процес и картите не са нищо друго освен демонстрация на действителната задача, която членът на екипа изпълнява.

Кога да използваме Kanban?

Ето причините да използвате метода за разработка Kanban:

  • Kanban може да се използва във всеки домейн и може да се използва много ефективно в разработката на софтуер. Канбан управлението на проекти помага за подобряване на ефективността на екипа.
  • Това е система, базирана на изтегляне. Задачите се изтеглят веднага щом дадено лице се освободи.
  • Kanban трябва да се използва, когато искате да публикувате работата си по всяко време. Изисква git разклоняване, но е изпълнимо.
  • Kanban трябва да се използва, когато искате да промените приоритетите в движение. За целта всичко, което трябва да направите, е да поставите тази история на върха на опашката със задачи.
  • Трябва да се използва, когато искате да визуализирате работата си и искате да видите напредъка на задачите си визуално.

Канбан карти

Системата Kanban препоръчва визуализация на работата. Предлага използването на физическа и цифрова дъска.

Канбан карти
Канбан карти

Картите Kanban са съществени части от дъската Kanban, тъй като представляват работата, върху която екипът работи. Тези карти ще имат

  1. Приоритет
  2. собственик
  3. Тип
  4. Дата на падежа

Колона в дъската Kanban представлява работния етап и можете да поставите лимит на WIP (работа в ход) върху колоната. WIP лимитът означава максималния брой карти, които могат да останат в тази колона.

Тъй като управлението на проекти в Kanban използва система, базирана на изтегляне, когато и когато разработчикът е свободен, той/тя може да изтегли карта от колоната със задачи в колоната за разработчици.

Канбан съвет

Канбан съвет е гъвкав инструмент за управление на проекти, който помага за прилагането на Kanban за управление на проекти за лични и бизнес цели. Това е физическа или цифрова (JIRA) дъска, предназначена да помогне на екипите да визуализират работата си на различни етапи и процеси. Той също така помага да се представят етапите на работа с колони с помощта на карти.

Има колони, които представят състоянието на работата като

  1. задачи,
  2. Дев
  3. Тестване
  4. Дари.

Всяка от тези колони може да има карти <=WIP лимита. Картите представляват действителната работа.

Можете да използвате положителни числа, за да ограничите незавършената работа и това ограничение може да бъде поставено в горната част на колоните както във физическите, така и в цифровите Kanban дъски. Всеки от екипа може да управлява състоянието на своята карта, а целият екип може да визуализира работния процес. След това в този урок по Kanban ще научим за работния процес на Kanban.

Канбан работен процес

Канбан работен процес е набор от стъпки, които помагат на екипите да дефинират изрични политики и принципи в Kanban. Той представлява правилата и процедурите, докато работата протича през различни етапи на разработване и цикли на доставка. Работният процес на Kanban се състои от процеси стъпка по стъпка между стартирането и изпълнението на определена задача.

Основният принцип, който Канбан следва, е, „спрете да започвате, започнете да завършвате“. С помощта на лимитите на WIP се върши повече работа. Във всеки модерен инструмент като JIRA има персонализирани работни процеси и състояния на Kanban.

По-долу са основните състояния, които много софтуерни екипи следват за управление на работния процес.

членки Разбиране на задачите
Да направя Задачите пристигат тук за първи път в това състояние.
Готов за анализ Анализирайте задачата и добавете изцяло изискванията.
Готов за развитие Анализът е завършен и разработката може да започне.
В развитието Задачите се разработват.
Готов за тестване Разработката е завършена и сега тестването може да започне.
В тестването Тестват се задачи.
Готов за издаване Тестването е завършено; освобождаването може да се случи.
Пуснато/Готово Освободен.

Четирите принципа на Канбан

По-долу са основните Четири основни принципа на Канбан:

  1. Започнете с това, което имате сега: Системата Kanban предлага да работите постепенно и да започнете с това, което имате в момента. Тъй като една от неговите практики е да се подобрява непрекъснато, трябва да подобрявате системата постепенно.
  1. Съгласете се да преследвате постепенна, еволюционна промяна: Kanban препоръчва постепенна промяна в процеса и не трябва да правите голяма промяна в процеса наведнъж.
  1. Уважавайте текущия процес, роли и отговорности: Още веднъж, започнете с това, което имате сега, и постепенно променяйте процеса, ролята и отговорностите.
  1. Насърчавайте действията на лидерство на всички нива: Всеки индивид може да действа като лидер и да дава идеи за подобряване на ефективността на цялостната система Kanban. Не бива да мислите, че това е дейност на управленско ниво и дори най-младият член на екипа може да действа като лидер.

Шестте основни практики на Канбан

Следват шестте основни основни практики на Канбан:

  1. Визуализирайте работния процес: Този принцип предполага наличието на Kanban дъска (физическа или цифрова) за визуализиране на работния процес. Всеки индивид от отбора трябва да вижда своята карта и картите на другите членове на отбора. Можете да местите картите си в различни колони, както е показано на горното изображение. Той носи много прозрачност в екипа и също така улеснява разрешаването на блокери
  1. Ограничете текущата работа: Kanban е система, базирана на изтегляне, и подобрява ефективността на екипа, за да ограничи текущата работа и да има задачи, които могат да бъдат изпълнени в дадения период от време от екипа. Това WIP ограничение се прилага от началото до края на работния процес. Можете да приложите ограничението в горната част на колоната, като използвате положително цяло число.
  1. Съсредоточете се върху потока: Този принцип се фокусира върху потока и всички прекъсвания. Ако има прекъсвания или блокери, те трябва да бъдат фиксирани за постоянно.
  1. Изрични правила: Политики могат да бъдат установени в екип за намаляване на преработката и фокусиране върху областите, които изискват внимание или където е по-ефективно.
  1. Обратна връзка: Циклите за обратна връзка са много важни в Канбан. Не е само в рамките на отбора, но и между множество отбори, треньори и т.н. Това помага за подобряване на цялостното здраве на системата Kanban.
  1. Непрекъснато Усъвършенстване: Това е основният принцип на системата 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 диаграмата ще ви даде индикатори или проблемни области, които да коригирате. Той ще ви предостави ясна картина и въз основа на тази диаграма. Можете да коригирате времето за изпълнение и цикъла на вашия екип.

Канбан кумулативна диаграма
Канбан кумулативна диаграма
  1. Преднина: Това е продължителността между пристигането на нова карта във вашия работен процес и нейното окончателно напускане на работния процес.
  2. Време за цикъл: Това е продължителността между пристигането на картата в работно състояние и момента, в който картата е готова за освобождаване.
  3. WIP: Текущата работа (WIP) ограничава максималното количество работни елементи в различните етапи на работния поток.
  4. магистрала: Това е действителната производителност и показва действителния брой карти, доставени за даден период от време.
  5. Пропускателна способност = 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 измества фокуса върху извършването на нещата, тъй като индивидът се фокусира върху една задача в даден момент.