
«Самурай не має мети, лише шлях»…
Насправді шлях — не єдине, що важливе в Agile, бо завжди у фокусі головна мета, але все ж цей метод виглядає самураєм серед інших методик, бо зосереджується не лише на цілі, а й на шляху, гнучкості та швидкості ухвалення рішень.
Мабуть, у кожного бували такі моменти: є задача, що включає багато підзадач, складних операцій та підготовки, і вона видається нездоланною. Мудрі люди кажуть, що у такому випадку варто «їсти слона по частинах». Саме це пропонує гнучка методологія Agile. Вона створена для розробки програмного забезпечення, але цілком може застосовуватися для управління різноманітними проектами.
Якщо описувати коротко, що таке Agile, то це початково методологія розробки програмного забезпечення, яка відбувається не за жорстким планом, а багатьма ітераціями, на які розбито довгий процес. Між ітераціями відбуваються зустрічі-перегляди, на яких визначаються подальші дії. Це дозволяє постійно переглядати результат, дає додаткову мотивацію як розробникам, так і клієнту, який більш прозоро бачить процес, і легко змінювати план, якщо виникли додаткові обставини.
Agile значно покращує командну роботу, створюючи атмосферу співпраці, довіри та взаєморозуміння. Завдяки регулярним зустрічам члени команди завжди знають, на якому етапі знаходиться проєкт, і можуть швидко реагувати на зміни. Самоорганізація та рівномірний розподіл відповідальності мотивують кожного учасника працювати ефективніше, а постійний зворотний зв’язок допомагає швидко знаходити і виправляти помилки. Це не лише підвищує продуктивність, а й створює здорове робоче середовище, де кожен відчуває себе цінним і залученим до спільної мети.
До речі, для спільної командної роботи та тестування продукту може знадобитися VPS або виділений сервер — для економії коштів радимо розглянути варіант оренди сервера, а не його купівлі. Таке рішення є доволі бюджетним з точки зору не лише грошей, а й часу, адже обслуговування устаткування також потребує ресурсів — у випадку оренди цим займається провайдер.
Крім того, у нас на хостингу реалізований NODE.JS та NEXT.JS, завдяки чому можна легко і просто налаштовувати програмне середовище та швидко запускати проєкт.
Але повернемося до нашого Agile. Якщо в класичному управлінні проектом потрібно скласти план, розробити детально шляхи роботи на кожному етапі, оцінити ризики і чітко рухатися, то в аджайлі ми маємо генеральну мету, але не маємо жорсткого плану, тільки поступові кроки до її досягнення, які можуть змінюватися.
Все відбувається частинами: частинами робиться продукт, частинами оцінюється прогрес, частинами отримується зворотній зв’язок, робота постійно коригується. Не є проблемою, якщо замість одного наступного кроку ми виконуватимемо інший, наприклад, додаватимемо якусь нову кнопку на сайт, бо користувачі сказали, що їм її бракує, а потім повернемося до розробки інших функцій.
12 принципів Agile
Основний принцип Agile — мета превалює над планом. Звідси випливають всі подальші особливості методології.
Загалом методологія Agile спирається на чотири головні ідеї:
- люди та їхня співпраця важливіші за процеси та інструменти;
- функціональний робочий продукт важливіший за документацію;
- співпраця з клієнтом, його задоволення важливіші за контракт;
- гнучкість важливіша за план.
Методологія постійно працює на психологічний комфорт кожного учасника. Виконавцям простіше досягати невеличких щоденних цілей. Клієнту чи роботодавцю простіше і комфортніше бачити прогрес на маленьких етапах і розуміти, що процес рухається.
Більш докладно чотири головні ідеї аджайлу викладено в його 12 принципах, зібраних у так званому «Маніфесті гнучкої розробки», перша редакція якого була ухвалена в 2001 році в Сполучених штатах сімнадцятьма розробниками.
Ключові принципи Agile:
- Задоволення клієнта: найголовніше — постійно давати клієнту цінність, value, на кожному етапі потроху, а не один раз у фіналі.
- Прийняття змін: гнучкість — це основа Agile, тож якщо вимоги змінюються навіть на пізніх етапах, це нормально.
- Часті апдейти: продукт поставляється не один раз наприкінці процесу, а багато разів, в робочому стані, але, наприклад, з меншою кількістю функціоналу.
- Співпраця: бізнес і виконавці постійно взаємодіють, зустрічаються, дають одне одному зворотній зв’язок.
- Мотивація людей: ця методологія постійно фокусується на тому, щоб створити людям умови для якісної і міцної мотивації.
- Спілкування і контакт: найбільш ефективна комунікація відбувається між людьми віч-на-віч, під час мітапів, без посередників, які носять вимоги туди-сюди.
- Робочий продукт — головна метрика: прогрес визначається наявністю робочого програмного забезпечення.
- Сталість: команди повинні працювати в стійкому темпі, з можливістю підтримувати його протягом довгого часу.
- Технічна досконалість: постійне вдосконалення технічних аспектів та дизайну.
- Простота: для того, щоб виконати якомога більше задач і якнайшвидше, з рішень обирають максимально прості.
- Самоорганізація: щоб триматися в темпі аджайлу і постійно рухатися вперед, команда має бути дуже організованою.
- Регулярний перегляд: постійні зустрічі дозволяють кожному члену команди розуміти, що відбувається, і корегувати свою роботу відповідно до ситуації.
Читайте також: ТОП-5 таск-менеджерів для організації командної роботи
Популярні методики Agile
Якщо тримати в голові попередню інформацію, можна помітити, що всі популярні методики, які використовуються в agile, просто дають інструменти для реалізації принципів гнучкості, поступового прогресу і змін.
Scrum
Гарний скрам-майстер важливий для проекту не менше, ніж розробники. Scrum — це поділ роботи на дуже короткі цикли або спринти, які тривають від 15 до 30 днів. На початку і наприкінці кожного спринту відбувається перегляд і подальше планування. Замість генерального плану існує план на спринт, де учасники і замовники чітко розуміють, з чого все починається, і чим має завершитися наприкінці спринту.
В рамках scrum в команді виділяють ролі власника продукту (Product owner), того, хто представляє замовників і постійно тримає в фокусі уваги генеральну мету — робочий продукт, і скрам-майстра, тобто того, хто відповідає за процеси відповідно до методики.
Щоб просуватися, команда впроваджує регулярні мітинги-звіти, щоб показати прогрес і заразом обговорити всі проблеми, які виникли.
Канбан
Це — візуалізація процесу на дошці таким чином, щоб було видно, які завдання ще в стадії реалізації, які через щось гальмують, а що вже зроблено. Це не обов’язково реальна дошка. Існують канбан-шаблони в таких популярних робочих системах, як Jira, використовують і інші віртуальні дошки.
Але суть в тому, щоб кожен з команди уявляв весь об’єм робіт, бачив, що і де гальмує, і таким чином всі разом швидко розв’язували поставлені задачі. Для того, щоб рухатися швидше, обмежується кількість завдань у поточному виконанні. Крім того, дошка дозволяє наочно та швидко змінювати пріоритет задач відповідно до змін в загальному процесі.
Читайте також: Як опанувати делегування і перестати все робити самому
Lean
Назва методики походить від японського поняття, що перекладається як «ощадливе виробництво», тобто зменшення витрат за рахунок концентрації на головному. Зародившись у цехах «Тойоти», ця методика придасться і гнучким командам, що обирають аджайл.
Lean концентрується на тому, щоб визначити, що буде цінним для споживача продукту, і розвивати саме це. Методика допускає постійні переробки і вдосконалення, якщо в результаті клієнт буде більш задоволений. Lean вносить у гнучкість Agile певну чіткість і порядок, оскільки ця методика вимагає постійної оптимізації процесів.
Extreme programming
Ця методика передбачає дуже часті швидкі релізи з оновленнями. Щоразу від клієнтів збирається зворотній зв’язок, щоб швидко корегувати роботу. Особливості методики:
- безперервне тестування, щоб поліпшити якість коду чи виконання завдань;
- праця попарно, щоб обговорювати складності і питання, що виникли в процесі роботи, і перевіряти одне одного;
- уникання створення функцій до того, як вони стають реально потрібні;
- спрощення коду.
Так само, як і всі попередні методики і agile в цілому, екстремальне програмування потребує частого спілкування з замовником, а також команди між собою.
Недоліки Agile
Основним недоліком аджайлу спеціалісти називають те ж саме, що є й його основною перевагою: Agile передбачає короткий горизонт планування. На кожному етапі задачі вирішуються максимально швидким та задовільним для всіх учасників чином, показники проекту лишаються високими, але можливі проблеми, пов’язані з довготривалими наслідками. Те, що виглядає ефективним для замовника просто зараз, може в майбутньому стати перешкодою для розбудови проекту. Може виявитися, що для наступного кроку розвитку треба переробити усе, що зроблено на попередніх.
Що з цим робити: застосовувати підхід правильно. По суті agile — це методологія, інструмент, який підходить для одних задач і не годиться для інших.
Якщо аджайл впроваджує велика організація, для цього існує SAFe (Scaled agile framework). Ця методика дозволяє масштабувати гнучкий процес на велику кількість аджайл-команд. Таким чином, до певної міри гнучку розробку можна застосовувати навіть у фінансах, банках, у великих корпораціях.
Читайте також: Договір на створення сайту – як убезпечити себе під час розробки
Кому підходить Agile
Agile методологія підходить невеличким гнучким командам. Її можна застосовувати як в IT, так і в малому бізнесі, освіті, розробці різних проектів. Проте вона краще сумісна з тою діяльністю, де йдеться про створення чогось нового (навчального курсу, інформаційного продукту, дизайн приміщення тощо), ніж де переважають процеси, які мають бути добре налагоджені і постійно працювати однаково (торгівля у крамниці, робота кол-центру, підтримка клієнтів або підтримка додатку).
Також методика радше підходить проектам, де потрібен результат і добре функціонування, ніж жорстка регламентація. Має значення і досвід команди: що учасники більш досвідчені, що краще самоорганізуються, то простіше досягати результатів за допомогою agile.
Натомість якщо проект жорстко регламентований, якщо немає змоги регулярно зустрічатися хоча б на короткі мітапи, сенсу починати працювати в аджайлі немає.