У всього хорошого є і погане. Чому розробка програмного забезпечення за методикою Agile не вирішить всі ваші проблеми.
- Чим є розробка програмного забезпечення за Agile?
- Переваги Agile
- Компроміси Agile
- Вимоги та недоліки гнучких методологій.
- 1. Менша передбачуваність.
- 2. Більше часу і зобов'язань.
- 3. Підвищені вимоги до розробників і замовників.
- 4. Відсутність необхідної документації.
- 5. Проект легко збивається зі шляху
- Найпоширеніші помилки нових команд Agile-розробки
- Коли гнучких методологій слід уникати
Переклад статті "The Massive Downside of Agile Software Development" ", джерело тут і тут (повна версія).
Disclaimer
Цією статтею автор починає цикл статей про недоліки Agile і чому його слід обмежити у застосуванні.
Коли справа доходить до розробки програмного забезпечення, всі шукають безпрограшну методологію як для постачальників, так і для клієнтів. Зрештою, найближчим часом розробка програмного забезпечення нікуди не зникне. Розробка програмного забезпечення за методологією Agile - це новітня методологія створення якісного, кастомізованого програмного забезпечення за менший час. Хоча вона і робить проект менш громіздким і більш прозорим, у неї є серйозні недоліки.
Чим є розробка програмного забезпечення за Agile?
Ця методологія була вперше представлена в 2001 році, коли 17 осіб зібралися на гірськолижному курорті Snowbird в штаті Юта і створили з «Agile Маніфест». У ньому викладено 12 найважливіших принципів розробки ПЗ. Вони включають спілкування, співпрацю, відкритість, гнучкість і важливість програмного забезпечення. Agile - це різновид поступової розробки програмного забезпечення, яка проходить швидкими циклами - багато в чому як біг на коротку дистанцію.
Результатом є невеликі випуски програмного продукту, кожен з яких заснований на попередньому продукті. В ідеалі команди здійснюють більше виконаної роботи за менший час. Виявилося, що цей метод найкраще підходить для критичних за часом виконання додатків, причому замовник є доступним і готовий спілкуватися протягом усього життєвого циклу розробки. Для цього методу потрібна пристосовуюча команда, готова реагувати і вносити зміни на основі тестів та оглядів продуктів.
Переваги Agile
Плюси розробки по agile переконливі. Ось кілька причин, через які багато хто застосовує ці принципи:
- Збільшення доходів компанії за рахунок випуску у виробництво деяких переваг поетапно, а ви тим часом продовжуєте розробляти продукт.
- Продукти надходять на ринок швидше, випускаються раніше і регулярно, і клієнти швидше повертають свої інвестиції.
- Гарантія якості з інтегрованим тестуванням і регулярними перевірками працюючого продукту протягом всієї розробки.
- Найкраща прозорість для основних зацікавлених сторін, оскільки гнучка розробка програмного забезпечення заохочує участь користувачів у спільних зусиллях.
- Зниження ризику, оскільки команда виявляє і виправляє будь-які проблеми на ранньому етапі.
Компроміси Agile
З перевагами гнучкої розробки програмного забезпечення приходять і ряд недоліків. З гнучкою розробкою програмного забезпечення легко втратити почуття рівноваги. Брайан Лоулі, генеральний директор 280 Group так говорить про Agile:
У розробці програмного забезпечення не існує панацеї або безкоштовного обіду. Якщо ви хочете застосовувати гнучкі принципи, ви повинні бути впевнені, що керівництво продукту і команда проекту всі розуміють вимоги. Вони також повинні усвідомлювати як потреби можуть швидко перетворитися на величезні підводні камені.
Вимоги та недоліки гнучких методологій.
Ось 5 головних недоліків гнучкої розробки програмного забезпечення:
1. Менша передбачуваність.
Для деяких програмних продуктів розробники не можуть кількісно оцінити повний обсяг необхідних зусиль. Це особливо вірно на початку життєвого циклу розробки великих продуктів. Команди, для готорих гнучка методологія є новою, побоюються цих невідомих. Цей страх викликає розчарування, погані практики і часто веде до неправильних рішень. Більш систематизований каскадний процес (waterfall) спрощує кількісну оцінку зусиль, часу і витрат на постачання кінцевого продукту.
2. Більше часу і зобов'язань.
Тестувальники, замовники та розробники повинні постійно взаємодіяти один з одним. Це включає в себе численні особисті бесіди, оскільки вони є кращою формою спілкування. Всі учасники проекту повинні тісно співпрацювати. Щоденні користувачі повинні бути доступні для негайного тестування і підписання на кожному етапі, щоб розробники могли відзначити його як завершений, перш ніж переходити до наступної функції. Такий підхід може гарантувати що продукт відповідає очікуванням користувачів; однак він є обтяжливим і вимагає багато часу.
3. Підвищені вимоги до розробників і замовників.
Принципи Agile вимагають тісної співпраці і активної залученості користувачів. Незважаючи на те, що Agile це захоплююча і корисна система, вона вимагає великих зобов'язань для досягнення успіху в рамках всього проекту. Клієнти повинні пройти навчання, щоб допомогти в розробці продукту. Будь-яка відсутність участі клієнта вплине на якість та успіх програмного забезпечення. Це також погано відбивається на компанії-розробнику.
4. Відсутність необхідної документації.
Оскільки вимоги до програмного забезпечення уточнюються якраз до моменту розробки, документація стає менш докладною. Це означає, що коли нові учасники приєднуються до команди, вони не знають подробиць про певні функції або про те, як їм потрібно працювати. Це створює непорозуміння і труднощі.
5. Проект легко збивається зі шляху
Цей метод вимагає дуже невеликого планування для початку роботи і передбачає, що потреби споживача постійно змінюються. З такими невеликими вимогами для продовження, легко бачити як це може обмежити agile модель. Далі, якщо користувач не зовсім зрозумілий у своїх відгуках або повідомленнях, розробник може зосередитися на неправильних областях розробки. У Agile також є потенціал для безперервного і/або неконтрольованого зростання обсягу проекту, і вічно мінливий продукт стає вічноглядним проектом.
Найпоширеніші помилки нових команд Agile-розробки
Гнучка розробка також має тенденцію відкривати ворота для більшої кількості помилок. Ось деякі з найбільш поширених:
- Погана структура команди
- Брак повноважень команди
- Погане планування
- Неефективне тестування
- Ігнорування відгуків клієнтів
- Не звертається увага на опір користувачів
Коли гнучких методологій слід уникати
Багато команд плутають гнучку розробку програмного забезпечення зі способом більш швидкого постачання ПЗ. Гнучка розробка програмного забезпечення імітує повсякденні дії, розбиваючи роботу на спринти і складаючи користувальницькі історії. Однак їм (командам) не вдається повністю присвятити себе гнучкій розробці. Тому, хоча вони кажуть, що вони «роблять по Agile», за фактом вони дотримуються традиційної ментальності, яка працювала в минулому.
Цей метод невигідний, коли клієнт повинен працювати за певним бюджетом або графіком. Ви також повинні уникати Agile, коли клієнти не можуть змінити масштаб проекту після його запуску.
Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.
Що будемо робити з Agile?
62.86% Нехай живе! 22
37.14% Заборонить/обмежити однозначно! 13
Проголосували 35 користувачів. Утрималися 5 користувачів.





