Чому клієнти люблять Agile ?

via Shutterstock .

[ Від редакції: дану статтю до редакції прислав автор , який побажав залишитися невідомим. ]

Правда . Люблять . Більшість аутсорсинг - проектів розробляються в рамках процесів , які їх учасники називають « гнучкими » ( Agile ) . Як правило , ці процеси дійсно дуже гнучкі , і « натягуються» на найрізноманітніші побажання замовника. До того ж самі компанії, що займаються аутсорсингом , голосно рекламують себе як « Agile -орієнтовані » , свідомо підігруючи замовникам (що природно ) .

Спробуємо розібратися в питанні - чому ж замовники так люблять Agile ?

Залишимо технічні подробиці , і перемкнемося на щось важливіше - на явні і приховані очікування клієнта . Саме вони найчастіше визначають вибір способу роботи , а не раціональні міркування і точні розрахунки ( на жаль) . Отже:

перше, Agile - це дешево.

друге , Agile - це просто . Просто для розуміння людиною, далекою від проблем розробки ПЗ. Це можна пояснити і «продати» замовнику . Зазвичай набір артефактів , присутніх у Agile - процесах ( типу того ж Scrum ) цілком зрозумілий для нетехнического людини , більше того - він симпатичний. Там немає страшних слів , на кшталт « прототипування » , «архітектура» , «план робіт » , «зони відповідальності» і тому подібного. Його можна вивчити за пару днів і сміливо їздити на конференції , слухаючи таких же «фахівців» , як і ти сам . J Тобто Agile - це sexy .

третє, Agile - це безпечно. Не потрібно приймати на себе відповідальність за рішення. Сьогодні я хочу одного , завтра - іншого , і це нормально. Передумав - не проблема. Викинути реалізоване в кошик - запросто ! Нове не налізе на те , що зроблено на даний момент , і взагалі призводить до краху системи? Це ще з чого раптом ? Навіщо ж ВИ тоді ТАК писали код ?

Загалом, з якою сторони не глянь , Agile дуже зручна система роботи . Оптимальна чи що? Це, як кажуть , залежить. Кажу відразу - я знаю , що Agile працює. Не просто впевнений - я ЗНАЮ . Так як він реально працював у деяких проектах , в яких я сам брав участь .

Але працює він тільки тоді , коли дотримуються добре всім відомі умови:

Від себе ще додам , що проект повинен бути невеликим , і його складність у міру зростання функціональності повинна рости приблизно лінійно .

Чи часто дотримуються ці вимоги? На жаль . Нечасто. А чесно кажучи - рідко. Досить і досить .

перше , часто-густо команди розподілені , віддалені один від одного , замовник за океаном і не сильно горить бажанням працювати з командою ( у нього бізнес , чи знаєте ) . Їх розмір досягає декількох десятків людей , що працюють над паралельними потоками завдань. Їх координація знаходиться на досить низькому рівні ( Scrum of Scrums , ага) .

друге , кроссфункціональние команди висококласних професіоналів - це скоріше мрія , ніж реальність . У більшості команд люди різняться за технічним рівнем і мотивації. І раді б взяти тільки висококласних самовмотивований профі , та тільки « на десять дівчат за статистикою дев'ять хлопців » :). Жарт .

третє , в більшості проектів із зростанням функціональності складність зростає не лінійно , а експоненціально . І починаючи з якогось моменту виявляється, що :

Загалом, настає момент , коли « так далі жити не можна» , і « треба щось робити». По-хорошому , потрібно рефактору , так от лихо - хто переконає в цьому замовника? Хто суне свою голову в пащу тигрові й скаже - дорогий замовник , ми звичайно тобі раніше говорили , що Agile - це завжди добре , але тепер нам потрібно заплатити за його печеньки , і грунтовно витратитися на щось, що немає ніякого прямого відношення до « юзер сторі ». Інакше справи не буде.

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

Взагалі , якщо чесно , всі все розуміють. І більшість проектів , з якими доводиться стикатися , являють собою не «чистий» , наприклад , Scrum , а якийсь різновид ітеративних процесів , різного ступеня « лохматості ». Там є і менеджери ( нехай іноді вони цим словом не називаються , щоб не дратувати клієнта) , і тих ліди , що тренують інших членів команди , які роздають їм завдання. Є там і скрам - артефакти , і ще багато чого , залежне від конкретного замовника і проекту.

І все це якось працює.


[ Від редакції: для повноти картини ми вирішили взяти кілька коментарів у практиків Agile . ]

Олексій Солнцев , Delivery Manager в Infopulse:

По-правді , у статті все перевернуто з ніг на голову. У першу чергу , замовники люблять Agile за рахунок швидкості виведення продукту або його нової версії на ринок. По-друге , ті з них хто колись зустрічався з процесами управління змінами і такими поняттями як « Change Request , Impact Analysis , Change Control Board » розуміють , наскільки дешево їм може обходитися внесення змін у вимоги , якщо вони будуть грати за правилами Agile .

Якщо ви заміните Agile на фразу «традиційні підходи до розробки ПЗ » , то ви отримаєте абсолютно такий же набір проблем як він описаний у другій половині статті . Проблема з тестами - це в першу чергу проблема розуміння важливості інженерних практик . Проблема з нерозумінням архітектури системи не вирішується трьома 200 сторінковими документами. Проблема з комунікацією вирішується тільки на рівні розуміння замовником , наскільки важливо його залучення в процес розробки. Проблема з керуванням командою вирішується не « менеджером» , а людиною , яка розуміє цінності , життєво важливі для розробки ПЗ.


Артем Сердюк , з-засновник стартапу 47cups , тренер компанії SCRUMGuides , ScrumMaster і Agile Coach компанії iSM Ukraine:

Якщо клієнти втручаються у вибір процесу (а ним і крім цього є, чим зайнятися ) , у справу вступають не « забобони » , а цінності : те , що для замовників важливо в ІТ -проектах. А важлива для них надійність , передбачуваність , стабільність. Будь-який стандартний процес розробки для замовника краще , ніж бардак. Неважливо , як це називається - Scrum , RUP або CYADD , до тих пір , поки команда виконує обіцянки і є відчуття контролю , клієнту глибоко плювати на процес.

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

У тому середовищі , про яку говорить автор ( крос - функціональна команда професіоналів , і всі в одній кімнаті включаючи замовника) , Agile - процес не потрібен! Всі стабільно , всі правила відомі - до чого тут адаптуватися ? Буде працювати абсолютно будь-який процес .

А от коли у вас розподілена команда , різниця з клієнтом в 12 годин, нова для нього і для вас предметна область - ось тоді процес буде і правда Agile . Експерименти , провали , експерименти , успіхи . І цей Agile ненавидять як замовники , так і команди розробки , тому винахід нового - це постійний стрес , це нестерпно . Але Agile - єдиний відомий нам спосіб працювати в таких складних і незрозумілих умовах. Тому так і працюємо.

Опубліковано: 12/11/13 @ 09:31
Розділ Різне

Рекомендуємо:

Фільтр Яндекса АГС -40. Аналіз причин та поради постраждалим
Кар'єра в IT : посада Team Lead
7 Грудня, Одеса - Конференція OdessaPy
Дайджест: історія стартапу Everpix , особливості хороших програмістів , Node.js в Groupon , одновірші
SEO- конференція CyberMarketing 2013 : погляд з боку