Кожна команда працює за певною стратегією. Саме вона забезпечує ефективну та продуктивну співпрацю, особливо якщо справа стосується сфери ІТ. Але й для інших напрямків просте та доступне керування процесами — це запорука успіху. Саме тому в останні роки набули шаленої популярності гнучкі методології керування процесами. Саме вони допомагають значно підвищити продуктивність роботи та, як наслідок, прибутковість компанії. Важливо розібратися в суті методологій та в загальних термінах. Це допоможе вибрати систему, відповідну для поставлених у компанії задач.
Що таке Agile?
Фактично, Agile методологія — це комплекс засобів для керування проєктом. Тобто це певна схема, що дозволяє поліпшити процес взаємодії між учасниками команди та надає змогу адаптуватися до постійних змін в режимі реального часу. Таким чином значно підвищується ефективність праці. Зменшуються терміни виконання проєкту та спрощується процедура внесення правок.
Особливо корисна система для проєктів, де потрібне постійне спілкування з замовником та отримання інструкцій щодо подальших змін. У 70-х роках, коли сфера ІТ тільки починала масштабний розвиток, у програмістів виникало чимало проблем. Замовник давав завдання, котре майстри виконували. Потім готовий проєкт передавався замовнику для внесення правок. Далі процес починався знову (програмісти переробляли проєкт згідно з побажаннями власника). Через це терміни закінчення задачі значно подовжувались. Отже, замовник втрачав зайві гроші, а виконавці — час.
У 90-х роках було створено кілька прототипів гнучких методів керування проєктами, котрі й стали основою для сучасних принципів Agile, RAD, Scrum, Crystal Clear. Перші методики розробляли, спираючись на наукові праці інформатика Вінстона Ройса. Саме він створив опис керування розвитком великих програмних систем. У своїй роботі він запропонував використовувати фазовий чи ітераційний підхід при виконанні задачі. Тобто, кожний етап складався з чотирьох ступенів:
- планування;
- виконання;
- перевірка;
- коригування.
Таким чином внесення правок виконується не по закінченні проєкту, а після кожного його етапу. Таким чином вдалося скоротити терміни виконання.
Головні цінності та принципи Agile
Щоб закріпити принципи та цінності методологій, у 2001 році було створено Agile маніфест.
До головних цінностей віднесли такі тезиси:
- команда та її спільна праця важливіші за процеси та інструменти;
- важливіше зробити гарний продукт, що працює, ніж написати докладний звіт;
- постійний контакт із замовником та його задоволеність важливіше, ніж умови контракту;
- вміння адаптуватися до мінливих обставин важливіше, ніж сліпе виконання плану.
Тобто головною ціллю методології Agile є не виконання якихось норм чи правил, а створення продукту чи послуги, яка здатна задовольнити потреби замовника. Дотримуючись цього твердження, вдається виконувати завдання значно швидше та ефективніше. Однак важливо, щоб всі члени команди розділяли встановлені маніфестом Agile принципи:
- основною задачею є створення продукту, який задовольнить замовника;
- вимоги можна змінювати протягом усього часу роботи;
- надавати необхідне для ефективного розвитку проєкту потрібно якомога частіше;
- доки йде робота над проєктом, взаємодія з замовником має бути щоденною;
- успіх роботи залежить від мотивації кожного члена команди;
- особисте спілкування виконавців покращує ефективність праці;
- продукт, що працює, є головним критерієм оцінки успішності проєкту;
- команда має напрацювати спільний темп роботи та дотримуватися його постійно;
- увага до якості підвищує гнучкість проєкту;
- робочий процес потрібно оптимізувати;
- якщо надати команді можливість організовувати власну роботу, продуктивність значно підвищиться;
- необхідно систематично аналізувати можливості для підвищення ефективності.
Спираючись на ці принципи, і було створено гнучкі методології розробки ПЗ. А Agile стала однією з головних. Фактично, до Agile методологій розробки програмного забезпечення відносяться також Scrum та Kanban.
Що таке Scrum?
Безпосередньо термін Scrum було взято з американської гри регбі. Він означає «поєдинок» або «двобій». Сама методологія була винайдена двома програмістами: Джеффом Сазерлендом та Кеном Швабером. Довго спостерігаючи за тренуваннями військових, вони дійшли висновку, що головне для успіху — це командна робота. Таким чином з’явилася Scrum.
Scrum та Agile: одне й те саме?
Часто назву Scrum використовують, як синонім Agile, але фактично це не коректно. Scrum належить до сімейства Agile-методик, але при цьому є приватним прикладом. Тобто конкретною виробничою методикою. Тоді як Agile — це швидше набір принципів або філософія керування.
Для чого Scrum методологія підходить?
Scrum — це певний набір правил, що дозволяє побудувати гнучкий робочий процес. Головним принципом є командна робота та фокус на меті кожної ітерації. Також методологія відрізняється нестандартним підходом до розподілу обов'язків у команді. Спочатку метод використовувався лише для сфери IT-розробок. Згодом його почали успішно застосовувати у всіх категоріях бізнесу.
Scrum методологія підходить для маленьких команд. Під час роботи зовсім зникає потреба у взаємодії між відділами. Команда формується тільки з фахівців, необхідних для виконання конкретного етапу проєкту. Окрім них до команди додають замовника, котрий вирішує, що треба робити в першу чергу, та визначає головні цінності кінцевого продукту. Також туди входить майстер, що забезпечує підвищення ефективності.
Головною особливістю Scrum методології є робота невеличкими етапами. Їх називають спринтами. Це період від 7 до 30 днів, за який виконується певний обсяг роботи. Характерно, що для кожного спринту встановлюється власна ціль, а наприкінці оцінюється результат.
Поставлені цілі та досягнення візуалізуються, що дозволяє підвищити мотивацію команди. Scrumboard — це інтерактивні дошки, де відображаються всі події в реальному часі. Таким чином візуалізуються задачі, що мають бути вирішені протягом одного спринту, та хід їх виконання.
Що таке Scrum артефакти?
Це ще один важливий елемент проєкту, який дозволяє команді працювати з більшою ефективністю, забезпечуючи повну прозорість проєкту. Артефакти — це набір документів, котрий необхідно регулярно передивлятися кожному члену команди. Кількість таких артефактів встановлюється індивідуально, під задачі проєкту. Але три головні необхідно використовувати завжди.
Журнал вимог продукту
Створюється та ведеться власником проєкту. Також його називають «беклог продукту». Це документ, у котрому відображені всі ідеї, які мають бути присутні в кінцевому продукті. Фактично, це перелік побажань замовника. Це інтерактивний документ. Його зміст може змінюватись залежно від замовника. В нього додаються не тільки специфічні завдання, але й будь-які побажання, що важливі для власника.
Журнал вимог спринту
Кожний етап роботи має чіткий план. Тобто, замовник надає перелік побажань, а команда вирішує, коли та в якому порядку вона буде їх виконувати. Саме цей етап не залежить від майстра чи замовника. Тільки члени команди виконавців вирішують, які задачі увійдуть до певного етапу та ступінь важливості кожної.
Враховуючи те, що значення задач встановлюється членами команди, важливо вибрати оптимальний обсяг роботи. Саме це дозволить зробити виконання більш ефективним.
Діаграма згоряння задач
Це одна із важливих особливостей Scrum. Метрика поточних задач дозволяє покінчити з довгими сперечаннями з приводу виконання конкретної дії, або заморозки проєкту у стані «майже готово». Діаграма — це простий та зрозумілий інструмент, що дозволяє наочно продемонструвати наявний прогрес. За нею команда може легко відстежувати ступінь виконання задач на певному спринті.
Артефакти не мають затвердженого вигляду. Їхній зміст постійно змінюється. Незмінні документи — це перша ознака, що щось в проєкті йде неправильно. Друга ознака — занадто часте оновлення.
Kanban: що це?
В перекладі з японської термін означає «вивіска». Kanban є одним із різновидів Agile-методик. Спочатку методологія використовувалась у відомій виробничій системі Toyota. Але дуже швидко її стали застосовувати в усіх сферах діяльності. Саме з методології Kanban розвинулась система ощадливого виробництва.
Методика забезпечує повну прозорість всіх процесів та можливість обговорення у режимі реального часу.
Kanban дозволяє ефективно керувати діяльністю робітників та строками виконання задач. При цьому навантаження розподіляється таким чином, щоб забезпечити найбільшу продуктивність праці. Канбан дошка дозволяє візуалізувати всі процеси, а робітники можуть відстежувати виконання в режимі реального часу.
Методологія передбачає гнучкий підхід до виконання проєкту. Тобто задачі можуть додаватися чи видалятися залежно від зміни пріоритетів. Система Kanban побудована на таких принципах:
- Візуалізація. Усі задачі додаються до плану та оновлюються в міру виконання. Це дозволяє бачити прогрес та етапи, де потрібна допомога.
- Групування. Всі завдання поділяються за станом: на виконанні, виконується, виконане.
- Увага до невиконаних завдань. Візуалізація та групування дозволяють вчасно звернути увагу на ті задачі, що «зависли». Це дозволяє розібратися в причинах та своєчасно розподілити ресурси.
- Вдосконалення. Дозволяє виявити слабкі місця та посилити їх.
Яка різниця між Scrum і Kanban?
Методології, хоч і створені на одній основі, досить різні. Scrum більш структурований та має чіткі терміни виконання задач. Kanban не має вираженої структури та постійно змінюється, але надає чітке уявлення про те, що кожен член команди зараз робить.
Кожна методологія має власні переваги. Вибір залежить тільки від потреб команди та проєкту. Scrum — це не про те, щоб чітко завершувати в строк певну роботу. Це скоріше для того, щоб чітко та злагоджено виконувати певний етап та отримувати зворотній зв’язок. Тобто головний акцент тут йде на якість кінцевого продукту. При цьому команда має самостійно вирішувати терміни, коли вони зможуть завершити той чи інший етап.
В Kanban не передбачений чіткий час для виконання задачі, як і немає чіткої структури розподілення завдань. Тут більша увага приділяється переліку задач, який необхідно виконати. Поділу на етапи також не передбачено. Задачі переміщаються в міру виконання. Головний фокус у Kanban — це поліпшення всього процесу роботи.
Загалом обидві методології однаково ефективні. І навіть побудовані на однакових принципах. Головною задачею є покращення якості кінцевого продукту.