Як здавати проекти вчасно. Підхід ФФФ
Що значить кожна літера Ф і як це допоможе завершити проекти у зазначені терміни.
Амстердам, 1970 рік. Засідання МОК завершується гучною заявою: Олімпійські ігри 1976 року пройдуть в канадському Монреалі. Країна радіє, а уряд підраховує витрати і заявляє, що все буде скромно, але зі смаком, а витрати складуть близько 310 млн доларів. Вони поки не знають, що все піде зовсім не так, як вони запланували.
У сухому залишку після Олімпіади 1976 року:
- Змагання проходили на недобудованому стадіоні, дах якого знаходився на складі у Франції. Будівництво стадіону завершилося вже після Олімпіади у 1987 році.
- Підсумкові витрати перевищили план в 16 (!) разів, і Монреалю довелося розплачуватися з боргами ще 30 років.
- Навіть з медалями Канаді не пощастило: вони не виграли жодного олімпійського золота.
А все могло бути зовсім по-іншому, якби в той час підрядники вже володіли сучасними технологіями управління проектами. Про Scrum ми вже одного разу розповідали, сьогодні поговоримо про технології ФФФ.
Абревіатура ФФФ означає fix time, fix budget, flex scope, або фіксовані терміни, фіксований бюджет, гнучка функціональність. Цей підхід придумала компанія Basecamp (37Signals) – відомий розробник ПЗ, автор книг Getting Real, «Rework. Бізнес без забобонів». Сьогодні ми розповімо, що це за підхід, кому він підійде і як його використовувати на практиці.
Основні принципи
Для початку розберемо 3 основних принципи підходу ФФФ, які випливають з назви:
- Фіксовані терміни.
- Фіксований бюджет.
- Гнучка функціональність.
Фіксовані терміни і бюджет. Для тих, хто працює по ФФФ, це залізне правило, яке не можна порушувати. Проектна команда сприймає узгоджений термін здачі проекту як дату іспиту: добре чи ти підготувався чи ні, на іспит за будь-яких обставин доведеться йти. А значить, які б форс-мажори не відбулися, проект потрібно здати вчасно. Те ж стосується і бюджету. Раз підписалися зробити сайт за 100 тис. грн., необхідно зробити. Будь-які додаткові витрати – нові переговори і новий проект.
Гнучка функціональність. Проекти – штука непередбачувана. Як би добре не планувалося, що-небудь все одно піде не так. Звільняться або захворіють ключові учасники проекту, у клієнта зміниться бачення, узгодження перевищить всі мислимі терміни тощо. Навіть компанії з величезним досвідом не можуть врахувати всі ризики, що вже говорити про новачків. Саме тому багато проектів перетворюються в чорну діру, куди відлітають час і гроші клієнта, а найприкріше, що у підсумку команда не досягає бажаного результату і всі просто готові забути про проект і почати все спочатку.
Обійти всі ці ризики як раз і допомагають фіксовані терміни і бюджет. Однак невизначеність при цьому нікуди не зникає, і чимось в разі чого все одно доведеться жертвувати. Крім термінів і бюджету залишається функціональність продукту або системи. Це і є той буфер, який можна використовувати, щоб закрити проект вчасно і вкластися у бюджет за будь-яких незапланованих складнощів. Серед послідовників підходу ФФФ поширений термін «пофлексіть», тобто змінити спочатку заплановану функціональність у бік спрощення, грубо кажучи, відрізати те, що не встигаєш зробити. Тут відразу варто обмовитися, щоб сформувати правильне розуміння. Перше: спростити – не значить зробити погано. Виконавець у будь-якому випадку відповідає за якість продукту, який він випускає. У ньому може не бути якихось додаткових фішок, але основну функцію, заради якої його створюють, він повинен виконувати на п’ять. Можна відмовитися від індивідуального дизайну для кожного розділу інтернет-магазину, але не можна відкривати магазин, в якому нічого не можна купити. Стадіон в Монреалі відкрився без даху, але там було все необхідне для проведення змагань. Друге: флексити можна тільки за згодою клієнта. В ідеалі він сам повинен запропонувати, що можна спростити, спираючись на ваші підказки.
Наведемо кілька способів, за допомогою яких можна спростити функціональність і до того ж не втратити якість.
Як можна флексити:
- Замінити одне рішення іншим. Завдання має безліч рішень, і завжди можна знайти більш просте. Наприклад, замість форми зворотного зв’язку вказати електронну пошту.
- Зафіксувати. Зробити частину системи статичною. Або не програмувати блок «Найпопулярніші товари», а сформувати його вручну.
- Неузгоджені. Змінити тільки необхідну частину системи, ігноруючи неузгодженість з іншими частинами. Оновити дизайн головної сторінки і загальне меню сайту, а внутрішні сторінки залишити в колишньому варіанті.
- Зменшити глибину опрацювання. Працювати в першу чергу над тим, що потрібно для виконання завдання, закриваючи очі на цікаві, але необов’язкові функції. За необхідності їх можна реалізувати у наступній ітерації.
Ще один важливий принцип підходу ФФФ – робота за проектом ділиться на декілька ітерацій, після закінчення кожної з яких повинен бути досягнутий певний результат, зрозумілий клієнтові, наприклад, добавлена якась функція. Ітерації значно коротші, ніж проект у цілому, вони більш керовані і допомагають контролювати терміни.
Переваги підходу
Підхід ФФФ усуває головну проблему, через яку більшість проектів терпить крах, – нескінченну зміну термінів виконання і збільшення бюджету. Тому він підійде для компаній, які займаються будь-якою проектною роботою: розробкою продуктів, програм та додатків, створення сайтів, дизайном, автоматизацією бізнесу тощо.
Плюси підходу ФФФ:
- Проект запускається у зазначені терміни, а отже, клієнт вже може отримувати результат: залучати клієнтів, економити, збирати актуальну інформацію для прийняття управлінських рішень.
- Дотримання дедлайну дозволяє швидше отримати зворотній зв’язок від користувачів. Можливо, їм зовсім і не потрібна функція, яку відрізали, а потрібна якась інша.
- Простіший продукт користувачі освоять швидше.
- Нова функція, яку перенесли на наступну ітерацію, – додатковий привід розповісти про продукт.
Як використовувати на практиці
Як і будь-який інший підхід, ФФФ – це не чарівна таблетка, яка вирішить всі проблеми і підійде кожному. Адже мало знати, як робити, потрібно ще й повторювати це щоразу у реальній роботі. Тут і виникають складнощі. Зупинимося докладніше на кожній з них і розповімо, як їх подолати.
- Флексити завжди боляче. Клієнт вже налаштувався саме на той варіант продукту, який ви затвердили і погодили в ТЗ. І навіть якщо він на словах погодився з вашим підходом, коли справа доходить до коригування функціоналу, він буде упиратися всіма руками і ногами, перш ніж дасть добро. І це в найкращому разі.
Що робити:
А) Пояснити клієнту, чому виникла така необхідність, і запропонувати разом подумати, які функції можна прибрати без серйозних наслідків для результату. Переговори з клієнтом – штука непроста, тут без відточених навичок переговірника не обійтися. Читайте і практикуйте техніки з книги «Спочатку скажіть немає» Джима Кемпа, щоб навчитися цьому навику, або пройдіть спеціальний курс разом зі своїми співробітниками.
Б) Ніколи не флексіть самостійно. Ніхто, крім клієнта, не має право вирішувати, від яких функцій можна відмовитися, так як він краще за всіх розуміє, навіщо йому сайт, дизайн або система автоматизації виробництва і що вона повинна вміти. Неможливо залізти в чужу голову і вирішити за іншу людину, що для нього важливо, а що ні. Ви напевно помилитеся. Можна тільки підказати можливі варіанти виходу з ситуації.
В) Будувати відкриті довірчі відносини з клієнтами. Ваша мета – не тільки продати проект дорожче, але ще і якісно його виконати. Адже в проектній роботі головна конкурентна перевага – репутація. Якщо потенційні клієнти побачать, що у вас багато успішних проектів і клієнти відгукуються про вас як про сумлінному підрядника, вони менше уваги звертатимуть на те, який підхід ви використовуєте.
Г) Заздалегідь чітко сформулювати корисну дію продукту. Ми пам’ятаємо, що згідно ФФФ урізання функцій не повинно відбитися на якості і працездатності кінцевого продукту. Щоб цього уникнути, потрібно заздалегідь разом з клієнтом сформулювати корисну дію продукту. Відповісти на питання: навіщо він потрібен і яку функцію має виконувати в першу чергу.
Д) Написати про принципи роботи в договорі. Одна справа – домовитися на словах і зовсім інше – дати клієнту підписати договір, в якому детально розписано, де буде вимагатися його участь в проекті і за що він відповідає, а також вказані всі умови, за яких ви гарантуєте дотримання термінів здачі проекту.
- Деякі клієнти вважають підхід ФФФ шарлатанством. Треба бути готовим до того, що не всі погодяться робити проект з вами, як тільки ви розкажете їм про суть підходу. Багатьом здається, що ФФФ – це обман, коли підрядник «нічого неробить» весь термін проекту, а потім починає різати функції, за які клієнт вже заплатив.
Що робити:
А) Пояснити клієнту суть підходу ФФФ і донесіть до нього, що функції можуть бути урізані, але він все одно отримає життєздатний продукт в термін і за обумовлені гроші. Що ніколи причиною для флексінгу не стане лінь співробітників, тільки об’єктивні обставини.
Б) Без жалю відпустити тих, хто не готовий йти на поступки. Швидше за все, робота з такими клієнтами принесе вам одні збитки. Є клієнти, які ще вірять в ідеальні проекти, що виконуються точно в термін і строго по ТЗ. На щастя, є й такі, хто вже встиг обпектися і тепер готовий спробувати інший підхід.
- Підхід вимагає від кожного члена команди високого рівня відповідальності та самоорганізації. По-перше, люди мають розуміти, що флексити можна тільки у крайньому випадку, тому треба включатися в роботу над проектом з перших днів і намагатися встигнути зробити все, що було заплановано. По-друге, вони повинні нести відповідальність за результат. Вчасно повідомляти про проблеми і труднощі керівнику проекту, а також розуміти, що мало просто зробити, треба ще узгодити зроблене.
Що робити:
А) Використовувати Scrum. Якщо ви поки не відчуваєте впевненості в своїх співробітниках, можна почати працювати за відомою технологією Scrum. Краще не за книжками, а пройшовши спеціальний тренінг разом з командою. Scrum багато в чому схожий на ФФФ, проте там більше зустрічей і зборів, які на першому етапі допоможуть організувати команду, постійно відстежуючи, на якому етапі знаходяться завдання, і вчасно коригуючи хід проекту.
Б) Розвивати співробітників і прощатися з тими, хто не готовий удосконалюватися і нести відповідальність за свою роботу.
ФФФ – технологія досить проста для розуміння, але складна для впровадження. Однак якщо ви зможете її освоїти, то будете закривати проекти вчасно, допоможете клієнтам вирішити їхні проблеми і зміцните репутацію надійного підрядника.