Стоимость разработки ПО складывается из трёх частей: часы по всем задачам и ролям, рейт каждой роли и запас на риски. Формула простая: сумма часов по ролям × рейт + буфер.
Сложность в первой части. Часы разработчиков обычно оценивают неплохо, а тестирование, управление, интеграции и правки после демо забывают.
Ниже порядок, по которому агентству стоит считать оценку, пример с арифметикой и то, как оформить цену в договоре, чтобы перерасход не лёг целиком на вас.
Из чего складывается стоимость разработки ПО
Цена проекта для клиента - это себестоимость часов команды, накладные расходы и маржа. Клиент видит одну цифру. Внутри агентства её стоит раскладывать так:
| Статья | Что в неё входит | Что чаще всего забывают |
|---|---|---|
| Разработка | Фронтенд, бэкенд, мобильные клиенты | Интеграции с чужими API, миграцию данных |
| Тестирование | Ручное и автотесты | Регресс перед каждым релизом |
| Управление | PM, созвоны, отчёты | Время на согласования с клиентом |
| Дизайн и аналитика | Прототипы, макеты, ТЗ | Правки после демо |
| Инфраструктура | DevOps, CI/CD, развёртывание | Настройку окружений клиента |
| Риски | Буфер на неизвестное | Его часто нет совсем |
Если в оценке есть только первая строка, вы продаёте проект дешевле себестоимости. Это выяснится на третьем месяце.
Как оценить стоимость разработки, если ТЗ ещё нет
На пресейле подробного ТЗ почти никогда нет. Клиент хочет цифру сразу. Дайте ему диапазон и объясните, от чего он зависит.
- Разбейте проект на модули: авторизация, каталог, оплата, админка, интеграции.
- Внутри каждого модуля выпишите задачи, которые один разработчик закрывает за день-два. Крупные задачи приходится оценивать вслепую.
- По каждой задаче дайте три оценки: оптимистичную (О), реалистичную (Р) и пессимистичную (П).
- Посчитайте ожидаемое время по формуле (О + 4Р + П) / 6. Это классическая трёхточечная оценка.
- Добавьте часы других ролей: тестирование, управление, дизайн, DevOps.
- Назовите клиенту диапазон: нижняя граница по оптимистичным оценкам, верхняя по пессимистичным.
Как посчитать цену проекта: пример с цифрами
Цифры ниже условные и нужны только для арифметики. Подставьте свои рейты и свою историю проектов.
Допустим, трёхточечная оценка разработки дала 400 часов. Из прошлых проектов агентство знает долю других ролей относительно часов разработки: тестирование 25%, управление 15%, дизайн 10%.
| Роль | Расчёт | Часы |
|---|---|---|
| Разработка | оценка по задачам | 400 |
| Тестирование | 400 × 0,25 | 100 |
| Управление | 400 × 0,15 | 60 |
| Дизайн | 400 × 0,10 | 40 |
| Итого | 600 |
При условном рейте 40 $ в час базовая цена 600 × 40 = 24 000 $. Буфер на риски 20% добавляет 24 000 × 0,2 = 4 800 $. Цена для клиента 28 800 $.
Теперь проверьте маржу.
Если час команды обходится агентству в 25 $ с учётом зарплат, налогов, офиса и бенча, себестоимость 600 часов равна 15 000 $.
Маржа при работе точно по оценке 28 800 - 15 000 = 13 800 $. Если вместо 600 часов ушло 700, маржа падает до 28 800 - 700 × 25 = 11 300 $.
Почему фактическая стоимость разработки выходит выше оценки
Причины повторяются от проекта к проекту:
- оценивали только код, без тестирования и управления;
- интеграция со сторонним API оказалась сложнее, чем обещала документация;
- клиент после демо попросил «небольшие правки», которые никто не учёл;
- данные для миграции пришли в другом формате;
- разработчик ушёл в середине проекта, и новый неделю входил в контекст.
Каждый пункт - это часы. Если договор фиксирует цену, эти часы оплачивает агентство.
Твёрдая или приблизительная цена: что писать в договоре
В РФ цена по договору подряда может быть твёрдой или приблизительной. Если договор этого не уточняет, цена считается твёрдой (п. 4 ст. 709 ГК РФ). Смета, которую составил подрядчик, становится частью договора с момента, когда её подтвердил заказчик (п. 3 ст. 709 ГК РФ).
| Твёрдая цена | Приблизительная цена | |
|---|---|---|
| Кто несёт риск недооценки | Агентство | Делится между сторонами |
| Можно ли поднять цену | Нет, даже если объём нельзя было предвидеть (п. 6 ст. 709 ГК РФ) | Да, если вовремя предупредить клиента (п. 5 ст. 709 ГК РФ) |
| Что может клиент | Требовать результат за оговорённую сумму | Отказаться от договора, оплатив сделанную часть |
Вывод для оценки: если ТЗ сырое, пишите в договоре прямо, что цена приблизительная, или работайте по часам. Подробное сравнение моделей: фикс или T&M. Как прописать цену и этапы в самом договоре: договор на разработку ПО.
Как готовый код агентства снижает стоимость разработки
Если у агентства есть свои модули (авторизация, платёжный шлюз, админка), проект можно оценить дешевле конкурентов и сохранить маржу. Условие одно: права на эти модули должны остаться у агентства.
- По умолчанию в РФ исключительное право на программу, созданную по заказу, получает заказчик (п. 1 ст. 1296 ГК РФ).
- Поэтому в договоре отдельно перечисляют модули, которые агентство принесло с собой, и оставляют их за агентством.
- Клиент получает на них лицензию, агентство продолжает использовать их в других проектах.
Как проверить, что код принадлежит агентству: кому принадлежит код, заказчику или подрядчику. Сколько стоит то, что уже лежит в ваших репозиториях: сколько стоит исходный код.