Flexibilitas in pactis succedit
Не так давно читал в блоге одного предпринимателя, что для него рукопожатие куда ценнее любых бумажек. Однако в реальном бизнесе без договора вам никто ничего не должен и не обязан. Всегда заключайте договор.
А в этой статье мы поговорим о видах контрактования в аджайл-разработке. Даже если вы, как пиэм, напрямую не занимаетесь составлением и заключением договоров, вас об этом могут спросить на собеседовании.
Fixed Price
Самый простой вид договора. Есть определённая задача, есть видение результата, есть срок, изменений не предполагается. Если изменения всё же будут, никто не мешает заключить допсоглашение («допник»).
Риски при фикс-прайсе несут поровну. Подрядчик реализует ровно то, что хотел заказчик. Если подрядчик реализует не то, заказчик не подпишет акты и будет прав. Если подрядчик реализует то, что требовалось, заказчику придётся заплатить, даже если это не совсем то, что он в глубине души хотел. Подрядчик, кроме того, подписывается под сроками.
Подрядчики часто перезакладываются при таком подходе, чтобы минимизировать свои риски.
Метод плохо подходит для крупных проектов.
Остаётся, правда, вопрос, причём тут аджайл. Оставлю его без ответа.
Fixed Budget
Отличается от фикс-прайса тем, что зафиксирован только бюджет и сроки, а объём работ может быть плавающим. Для работы по такой схеме нужен крайне договороспособный заказчик, поэтому подходит не всем.
Fixed Price MVP + TM next stages
Следующий этап развития фикс-прайса. Сначала мы делаем по фикс-прайсу MVP, сдаём, убеждаемся в порядочности заказчика. После этого начинается тайм-матириал, заказчик, увидев MVP и получив обратную связь от пользователей, накидывает изменения, мы их делаем, получаем оплату за фактические трудозатраты. То есть, тут уже есть какой-то аджайл.
Отличный вариант, если всё заключить грамотно.
Team Per Sprint
Ещё более аджайловский контракт. Заказчик оплачивает каждый отдельный спринт зафиксированного объёма (например, две недели сроку и x человекочасов) и получает права ставить задачи на этот спринт.
Ответственность за качество при таком контрактовании всё ещё несёт подрядчик, но целеполаганием уже занимается заказчик. Почти идеальный вариант для бодишопов1.
Cost+ (Outstaffing)
Продолжаем двигаться в сторону гибкости. По этому договору заказчик «покупает» время конкретных специалистов подрядчика. Всё целеполагание переносится в зону ответственности заказчика. Зачастую при этом подходе менеджер проекта и техлид-тимлид работают в штате заказчика и руководят проектом, «пилят» специалисты подрядчика-аутстаффера. Раз в месяц подрядчик предоставляет заказчику таймшиты, он их верифицирует, подписывает и оплачивает.
T&M with Cap
Заказчик оплачивает подрядчику фактически затраченное время специалистов и стоимость материалов с верхним ограничением в единицу времени (обычно месяц). Возможно в условиях большого взаимного доверия. Если доверие есть, разработка может быть очень эффективной.
T&M (time&material)
Полный аджайл. Заказчик ставит задачи, подрядчик «пилит». В конце периода подрядчик выставляет заказчику счёт за время и материалы без всяких ограничений.
T&M может быть предпочтительным, если проект не имеет четких требований и может потребовать изменений по ходу выполнения. Кроме того, T&M может быть полезен, если проект не имеет определенного времени завершения.
Проект может стать достаточно дорогостоящим для заказчика и все риски переносятся на заказчика при таком подходе.
На практике не встречал. В «Систехе» мы работали по таким условиям с «Mondelēz», но были определённые ограничения, например, каждая доработка предварительно оценивалась и допускалось превышение фактических трудозатрат над плановыми не более, чем на 25 %, в противном случае начинались переговоры о снижении стоимости.
- Под «бодишопом» понимают компанию, главная задача которой – «продать» своих программистов заказчику, который, как правило, находится в какой-то из стран с более развитым рынком IT-услуг. Хотя формально программисты остаются работать в российском офисе, заказчик получает право распоряжаться сотрудником как его работодатель и полностью интегрирует его в свой проект. ↩︎