Новини високих технологій
» » Що таке Agile: переклад, сфери застосування. Гнучка методологія розробки

Що таке Agile: переклад, сфери застосування. Гнучка методологія розробки

20-09-2017, 13:21
1 212
Складною знайти людину, який не бажав би, щоб до нього ставилися з повагою. Але для такого стану справ повинна бути причина. Наприклад, коли людина є висококласним визнаним фахівцем у сфері розробки програмного забезпечення. А для цього необхідно вчитися. І в рамках цієї статті буде розглянуто, що таке Agile, яка користь від неї, і як розібратися в цій технології.

Загальна інформація

Спочатку давайте розберемося з технічними моментами. Що собою являє Agile? Переклад (дослівний) цього слова з англійської мови – «живий, рухливий», трохи рідше згадується «гнучкий». І до речі, це скорочення. Повна назва цього підходу це Agile software development. Але оскільки це занадто довго, і було вирішено скоротити. І зараз кажуть просто Agile. Переклад як «гнучкий» використовується з-за того, що він найбільшою мірою відповідає реальної ситуації.


Що ж сюди включено?

Продовжуємо розглядати, що таке Agile. Тут хочеться сконцентрувати увагу на тому, що це гнучкий підхід, в основі якого лежить безліч різних методологій (Scrum, ХР, "Канбан", Lean). Для того щоб краще розібратися в темі, давайте проведемо паралелі. Припустимо, що Agile-технології – це процес зародження Всесвіту. Кінцевий продукт – безпосередньо сам існуючий світ. А великий вибух – це найбільш болюча проблема, з якою доводиться тільки зустрічатися, – зміна переліку вимог до продукту. Зазвичай процеси створення передбачають використання каскадної моделі. В цьому випадку все йде послідовно і поетапно. Такий підхід можна висловити коротко: бачу ціль – йду до неї. І якщо змінюються вимоги до кінцевого результату, то іноді доводиться переробляти заново чи не всі. Що ще ускладнює таку ситуацію, так це спроба зробити вигляд, що все нормально, і потрібно рухатися вперед.


І ось Agile, методологія управління, покликана боротися з усім цим завдяки своїй гнучкості. Ця збірна "солянка" мінімізує різні ризики за допомогою використання наборів принципів. Всі вони відображені в Agile-маніфесті, випущеному в 2001 році. Якщо коротко, то звучать вони наступним чином: Головне – це люди, а не речі. Співпрацюйте, а не читайте контракт. Документація не повинна заважати працювати. Міняйтеся настільки швидко, наскільки це можливо. Може здатися, надто розпливчасто і не точно, але давайте деталізуємо.

Пристрій процесів

Розглядаючи, що таке Agile, давайте звернемося до однієї з найбільш популярних методичок, відомої як "Скрам" (Scrum). Що ж він пропонує? Для початку потрібно: Вибрати власника продукту. На цю роль підходить людина, що бачить, до якої мети треба йти, і що буде в кінцевому підсумку. Визначитися з командою. Для цього необхідна група, чисельністю від трьох до десяти осіб, що володіють навичками, що дозволяють отримувати результат. Вибрати відповідального фахівця. Це людина, що буде стежити за розвитком проекту і допомагати команді обминати труднощі. Розібратися з труднощами. Слід зібрати в одному місці всі існуючі вимоги до продукту і розставити пріоритети. Власник продукту повинен зібрати тут всі свої побажання. Потім команда їх оцінює і розбирається, чи можна це реалізувати, і скільки часу для цього потрібно. Слід розбити весь обсяг робіт на відрізки часу, довжиною в тиждень або дві, під час яких команда буде виконувати певні набори задач. Щодня слід проводити зустрічі, довжиною не більше п'ятнадцяти хвилин. На порядку слід обговорювати, що було зроблено, які плани на сьогодні, і перешкоди, що заважають брати висоту. Робити огляди за підсумками тижня (двох), під час яких командою розповідається про те, що було зроблено. При цьому необхідно демонструвати працездатність частин продукту. Після кожного тимчасового періоду необхідно обговорювати проблеми і шукати рішення. Причому всі напрацювання необхідно впроваджувати одразу.

Як впізнати Agile?

Методологія управління незалежно від обраного напрямку завжди володіє такими особливостями: Мінімізація ризиків. Це головна мета, яку переслідує будь-гнучкий підхід. Итеративная розробка. У даному випадку мається на увазі робота у невеликих циклах. Найважливіше – це люди і комунікація між ними. Давайте уявимо річку. На одному березі замовник. На другому – команда. У такому разі гнучка методологія розробки має переваги для всіх: Замовнику потрібен мінімально працездатний продукт. При цьому під час його створення можуть змінюватися умови. Команді корисно спілкуватися з колегами і замовником. У такому разі мінімізується ризик бути неправильно зрозумілим, збільшується прозорість процесів, швидко вирішуються проблеми, зменшуються шанси того, що буде несподіванка при створенні продукту.

Соціальний фактор

Коли розповідається, що таке Agile, зазвичай говорять виключно про позитивні моменти. І дійсно, поліпшується взаємодія всередині команди. Всі люди фокусуються на одній ідеї, не створюють секрети між собою, беруть на себе зобов'язання. Як результат, команда працює в комфортних умовах і швидкому темпі. Такий підхід дозволяє впорядкувати хаос.
З моменту свого формування він зміг знайти визнання в технологічних галузях. На даний момент широко використовується для проектування нових програмних продуктів. Але в рамках загальному ділової практики подібний підхід все ще маловідомий. Тому до нього обережно ставляться ті, хто не зустрічався з Agile раніше. Також слід розуміти, що його слід застосовувати тільки в тих випадках, коли перед людьми стоїть завдання інтелектуальної праці.

Невеликий приклад

Давайте розглянемо, як працюють ці методології розробки ПЗ. Припустимо, у нас є Петро, власник продукту. Він не знає технічних деталей, зате у нього є бачення загальної картини. Він знає, навіщо потрібний продукт проблеми, які він буде вирішувати, кого задовольнить. Також є зацікавлені особи. Вони можуть використовувати продукт, підтримувати його створення або ж як ще бути залученими до його створення. Можна внести ще й власні історії, в яких висловлюються побажання зацікавлених осіб. Наприклад: система бронювання квитків на рейсові автобуси Москва-Санкт-Петербург повинна мати пошук по рейсам. Петро буде допомагати зацікавленим особам. Він візьме під контроль реалізацію з ідей користувальницьких історій. Також є команда розробників. Це люди, що будуть будувати робочу систему. Оскільки використовується гнучка методологія розробки, то користувальницькі історії не накопичуються до великого релізу, а випускаються відразу після завершення і як можна частіше. Кількість опрацьованих звернень становить пропускну здатність команди на тиждень. Щоб не втратити темп і не загрузнути в ручному тестуванні, команда повинна працювати над автоматизованої інтеграцією. У чому вона полягає? Для кожного робочого моменту пишеться автоматичний тест. Якщо історій дуже багато, то може виникнути поспіх, втрата мотивації, зниження продуктивності і якості. На такі випадки передбачено метод «вчорашня погода». Він полягає в тому, що треба встановити жорсткі рамки кількості роботи і ретельно вибирати, що саме буде реалізовуватися. Згаданий раніше "Канбан" пропонує встановлювати ліміт завдань.

А що робити з чергою?

Гаразд, ось команда вирішила, що вона може обробляти чотири історії на тиждень. Але як зорієнтуватися у всім, що є? Припустимо, користувачі підкидають по десять історій на тиждень. Обробляється чотири. Таким чином, черга буде постійно зростати. На цей випадок є тільки один ефективний метод – слово "ні". Для власника продукту це надзвичайно важливо. Сказати «так» не важко. Значно складніше і важливіше вирішити, що робити не потрібно. Причому за це потрібно нести відповідальність. Тому слід вирішувати, чому приділяти увагу зараз, а що слід відкласти. Щоб правильно розставляти пріоритети, потрібно щоб власник продукту розумів цінність і обсяг кожної історії.

Приймаємо рішення

Частина історій надзвичайно потрібна. Інші ж просто являють собою приємний бонус. Одні історії будуть розроблятися кілька годин. На створення інших підуть місяці. Багато часто проводять співвідношення між розміром історії та її цінністю. Але це не завжди правильно. Більше – не рівнозначно краще. Петру правильно розглядати пріоритети допомагає складність і цінність виконуваної задачі. Як визначити ці характеристики в кількісному значенні? Та ніяк. Це справжня гра в угадайку. І для більшої ефективності в неї необхідно залучати досить багато людей. Це і команда розробників, яка поінформує про обсяг робіт, і зацікавлені особи. Але слід розуміти, що всі дані, отримані таким способом, являють собою приблизні здогадки. Тут не буває точних цифр. Спочатку будуть промахи. Але у міру отримання досвіду їх кількість і масштаб будуть знижуватися.

Можливі ризики

Для уникнення проблем необхідно дати чесні відповіді на ряд питань. Це: Правильні речі ми робимо? Це бізнес-ризик. Чи можемо ми реалізувати те, що потрібно? Це соціальний ризик. Чи буде працювати проект на даній платформі. Це технічний ризик. Чи вистачить грошей, і чи встигнемо? Це ризики термінів реалізації і вартості. В даному випадку необхідні знання. Їх можна розглядати як протилежності ризиків. Коли фіксується значний рівень невизначеності, то ми здобуваємо знання – наприклад, створюємо прототипи інтерфейсу або технічні експерименти. І вже володіючи ними, приймаємо рішення про те, в якому напрямку слід рухатися.

Як навчитися?

IT-індустрія надзвичайно швидко розвивається, і щоб не програти в кінцевому підсумку, необхідно постійно навчатися, підвищувати кваліфікацію і ефективність роботи. Тому як ніколи актуальні питання навчання та впровадження. З чого почати? Найкращий варіант – це кооперація з компанією, де вже застосовується Agile. Навчання в такому випадку буде проводитися людьми, які не з чуток знають, що собою являє гнучка розробка. Але таке, на жаль, не завжди можливо. Найчастіше залучається сторонній фахівець, який знає, що собою являє Agile. Впровадження цього підходу здійснюється під його наглядом. Правда, послуги такого фахівця коштують грошей. Але якщо залучити дійсно знаючої людини, то всі витрати окупляться сторицею. Адже в сучасному світі ефективність співробітників грає важливу роль.

Що чекає в майбутньому?

Методології розробки ПЗ постійно розвиваються. Шукають нові шляхи й можливості підвищення ефективності діяльності і роботи. Сказати, що нас чекає в майбутньому, досить проблематично. Ймовірно, гнучка система розробки буде інтегрована з засобами автоматизації виробничих процесів. Наприклад, можна буде вирішувати проблеми, навіть перебуваючи на відстані від місцезнаходження компанії. Багато в чому визначають майбутнє нові інформаційні технології. Адже коли вони виникають, то потрібно освоювати нові методи роботи з ними. І в цьому випадку виникає розвиток, замкнутий в циклі.

На закінчення

Ось і закінчився екскурс в гнучкі методи розробки. Але слід нагадати, що одна справа теорія, а зовсім інше – практика. Нові інформаційні технології, що постійно виникають, кидають виклики численному спільноти розробників. Як зробити діяльність команди більш ефективною? Відповідь на це питання кожен знаходить сам. Представлена тут інформація може бути використана для того, щоб оформити кістяк. Але на практиці доведеться працювати з наявною моделлю і доводити положення справ до стану відповідності існуючим викликам. Тоді команда зможе ефективно виконувати поставлені перед нею цілі.
Цікаво по темі
Як видалити WPS Office з комп'ютера: інструкція
Як видалити WPS Office з комп'ютера: інструкція
Кожен користувач Windows звик працювати з офісним пакетом від "Майкрософт", в який входить безліч програм, однак існують альтернативи, одна з яких -
Потужний ігровий движок Unity: опис
Потужний ігровий движок Unity: опис
Розвиток комп'ютерних технологій спричинило за собою створення різних програм допоміжного і розважального ...
Багатоплатформове програмне забезпечення. Відповіді на питання
Багатоплатформове програмне забезпечення. Відповіді на питання
Людина – раб звички. Саме так сказав свого часу американський бізнесмен Роберт Кійосакі. В сучасному ...
Що таке нативний додаток? Мобільний додаток
Що таке нативний додаток? Мобільний додаток
У перекладі з англійської native означає «рідний». Нативний додаток розробляється для мобільних телефонів під конкретну операційну систему. Розробкою
JavaScript, масиви: опис
JavaScript, масиви: опис
jаvascript – сучасна мова програмування, він унікальний у частині синтаксису і семантики. Має специфіку...
NSLookUp команди і імена DNS в контексті розвитку Мережі інтернет
NSLookUp команди і імена DNS в контексті розвитку Мережі інтернет
Комп'ютери, як люди, спочатку самі по собі, потім у системі. Безумовно, це людина створює комп'ютерну систему (мережу), але крізь покоління фахівців