Сколько стоит программист? Подход и инструментарий для расчёта себестоимости услуг
Приветствуем вас в блоге томского IT-сообщества! Здесь мы пишем об интересных кейсах и опыте томских IT-компаний по разработке и продвижению своих продуктов. А еще мы проводим медиаконференцию «Город IT 2020: продуктовый сезон», где будем обсуждать темы, которые будут затрагиваться в этом блоге. Больше информации о Городе IT 2020 можно найти тут.
Сегодня своими мыслями и опытом по расчёту себестоимости разработки поделится Мария Дробинская из компании Effema.
Привет! Меня зовут Мария Дробинская. Я генеральный директор, бизнес-аналитик и преподаватель компании Effema. Фанат табличек и циферок. Если что-то, с чем я сталкиваюсь регулярно, может быть разложено по табличкам, оно будет разложено.
Образно говоря, этим и занимается Effema — мы помогаем нашим заказчикам собрать данные из разных информационных систем, структурировать и красиво визуализировать. Таким образом подготовив информацию к анализу и принятию важных управленческих решений.
Руководители принимают массу решений каждый день. Решения самые разные и касающиеся самых разных областей бизнеса. Разберём сегодня, как сформировать базу для принятия решений, касающихся себестоимости разработки. Любая компания, занимающаяся заказной разработкой, рано или поздно сталкивается с рядом вопросов:
Оценили проект в часах разработки, а как перевести часы в деньги?
Какую скидку можем дать, так чтобы остаться в прибыли?
Сотрудник просит больше – мы можем?
У нас вообще проекты с прибылью?
Кто просадил проект?
Какой сотрудник более маржинален?
- … и многое, многое другое…
Ответы на все эти вопросы сводятся к одному и тому же — к расчёту себестоимости разработчиков. Да и не только их, чего уж.
Cегодня мы поговорим о том, как разложить всё по полочкам. И по ячейкам. А для полноты картины — ещё и том, как организовать эти данные у себя под рукой так, чтобы они были всегда и были актуальные.
Схематичный грубый расчёт
Прежде чем углубиться в детальный разбор, давайте сделаем схематичный расчёт. Из разряда «посчитаем на калькуляторе за 2 минуты». Чтобы понять основной алгоритм. Порядок действий выглядит следующим образом:
- Скажем, есть у нас разработчик Вася, который отработал 100 часов в месяце на заказных проектах. И получил Вася зарплаты вместе со всеми налогами за этот месяц 100 тугриков. Простой математикой получаем — 1 тугрик в час.
- А все разработчики в компании вместе с Васей отработали на заказных проектах 1000 часов.
- Ещё в компании есть разные другие сотрудники — директор, бухгалтер, кадровик, офис-менеджер, менеджер продаж, маркетолог… кто-нибудь ещё… Сотрудники, которые не участвуют в заказных проектах. Есть плюшки, мебели, техники, которые покупались в этом месяце. Всё это суммарно съело за месяц 1000 тугриков.
- Себестоимость одного часа Васи складывается из двух циферок:
- сумма его ЗП вместе со всеми налогами и начислениями = 1 тугрик в чассумма косвенных расходов, приходящаяся на его час (её мы уже распределяем на всех разработчиков) = 1000 тугриков / 1000 часов = 1 тугрик.
- Итого: себестоимость Васиного часа = 2 тугрика.
А теперь чуть детальнее. Разберём основные сущности, которыми будем оперировать.
Отработанное время
- Время тратят все, кто работает в компании. Свою стоимость имеет и час разработчика и час бухгалтера.
- Если мы хотим считать себестоимость всех сотрудников — на всех сотрудников должна быть понятная картина — сколько часов куда потрачено.
Если у нас есть чёткое понимание, кто — на что — сколько времени тратит, то это отлично! Если прямой зависимости между сущностями ЧАСЫ и деньги в компании нет, эту зависимость нужно выделить.
Самый простой и быстрый способ — выделить пропорции от нормы часов в месяце. Например, Вася тратит 20% своего времени на Проект1, 70% — на Проект2, оставшиеся 10% — на общие организационные задачи. Это в мае, скажем. А в июне Проект1 завершился и пропорция времени изменилась. Реально осилить, если людей в компании немного, а трекать время ну очень не хочется.
Однако, начать трекать отработанное время — самый точный способ.
Да и полезен он не только для расчёта себестоимости. Если трекать в разрезе задач, то может очень неожиданно получиться, что совещание, которое вы провели в прошлый вторник на 7 топов, съевшее пару часов — обошлось компании в немалую сумму денег. А ведь и не решили толком ничего. И вдруг может захотеться изменить подход к решению некоторых вопросов, найти более эффективные способы. Это я не склоняю вас, не подумайте. Просто делюсь опытом.
- Затраченное время может иметь разные характеристики.
Минимально важно — привязать к проектам. Хотим считать стоимость выполнения отдельных задач — дробим часы по задачам. Тут уж только трекать.
Проекты
Окей, сотрудники тратят время. С Васей всё понятно, у него два заказных проекта, с часами разобрались. А вот со Светой как быть? Она оформляет кадровые документы — это же не проект?
В таком общем случае мы можем разделить всю деятельность в компании на две большие группы:
Заказные проекты
Доходы — часто зависят от затраченного времени. Расходы — тоже. Особенно это ярко выражено на проектах по Time&Materials.
Однако могут быть доходы, не завязанные на времени напрямую. Случаются прямые расходы проекта, не связанные со временем — купили какой-нибудь девайс, оплатили работу субподрядчика или другую какую-нибудь услугу.
Внутренняя деятельность
Расходы от времени зависят. А доходов, будем считать, что нет. Они могут случаться, но систематического характера не носят.
Далее выделяем подвиды деятельности. В случае с заказными проектами подвиды выделяются более менее понятно. Это проекты. С внутренней деятельностью — стоит немного подумать. В зависимости от объёмов служб и наличия цели анализировать разные подвиды по отдельности, будет вырисовываться разделение.
Например, мы можем поделить так:
В этом моменте может захотеться выделить ещё десяток видов и подвидов деятельности. Да, у вас этих групп может быть больше. Можно делить настолько мелко, насколько хочется. Главное — не запутаться в собственных правилах и понимать, зачем нужно такое дробление. Порой простота рулит.
Каждый час сотрудника должен относиться к какому-либо подвиду деятельности. В нашем случае — это будет либо один из заказных проектов, либо внутренняя деятельность. Структурно это может выглядеть, например, вот так:
Ставки
Если доход имеет прямую зависимость от затраченных часов и есть чёткое понимание стоимости одного часа сотрудника для заказчика — нам это нужно.
На основе этих данных мы можем считать доход. С этой ставкой мы можем сравнивать ту, что у нас получится в качестве себестоимости часа. Исходя из этого же, высчитывать маржинальность часа и тому подобные показатели.
Зарплата
Важны все начисления сотрудникам, которые были, включая отпускные, командировочные и тому подобные.
Доходы и расходы
Нужны все операции, произведённые в компании за анализируемый период. Доходы от проектов, все расходы, не связанные с зарплатными начислениями: все офисные покупки, закупки мебели, техники, программного обеспечения, чая, кофе, плюшек. Если операция относится к проекту, это должно быть отмечено. Операции должны быть разбиты по категориям и периодам, к которым относятся.
Если соберём все сущности, получим вот такую паутинку:
Привязываем всё к часам и распределяем
Так как речь ведём про себестоимость, в первую очередь привязываем к часам расходы. Исходя из вышесказанного, у нас есть следующие типы расходов:
- Заработная плата. Распределяем пропорционально затраченному времени в конкретном месяце на каждого сотрудника. Получаем некоторую сумму рублей на час. Это для всех сотрудников.
Имея распределение часов по проектам, можем распределить зарплатные расходы по проектам.
- Прямые расходы проектов (или в ранее определённой терминологии — подвидов деятельности) — относим к тем проектам, для нужд которых они произведены. На часы не распределяем.
Идём дальше. У нас есть внутренние проекты и коммерческие. Внутренние призваны «обслуживать» деятельность коммерческих. Это вспомогательная деятельность, которая сама по себе априори убыточна и не имеет смысла без коммерческой деятельности. Более того, она отчасти пропорциональна объёму коммерческой деятельности.
Поэтому следующее наше действие — распределение расходов и доходов внутренних проектов на часы коммерческих. Суммируем все расходы (прямые и зарплатные) и доходы по внутренним проектам за период и делим на количество часов коммерческой деятельности. Получаем сумму косвенных расходов на 1 час коммерческой деятельности.
В итоге мы имеем распределённые по проектам часы с суммой ЗП и косвенных расходов за каждый час, а также прямые расходы проекта, не зависящие от часов.
С другой стороны каждый коммерческий час имеет теперь свой расход, доход (который у нас есть в ставках). Отсюда легко вычисляется маржа и маржинальность каждого часа.
Переносим логику в BI
Со схемой базового расчёта разобрались. Теперь давайте посмотрим, как нам настроить наличие этой информации под рукой на постоянной основе. Здесь не буду вдаваться в детали. Думаю, термин Business Intelligence (BI) многим знаком. Пройдусь по основным аспектам.
BI — класс систем, обеспечивающих перевод транзакционной деловой информации в человекочитаемую форму, пригодную для бизнес-анализа. Цель BI — интерпретировать большое количество данных.
Что делает BI?
- По заданным параметрам подключается к информационным системам (базы данных, файлы табличного вида, веб-странички, сервисы, 1Ски и многое другое). И вытягивает нужную нам информацию из разных информационных систем в единую модель.
- Предоставляет инструменты для обработки полученной информации. Мы можем отфильтровать, сгруппировать, отсечь некоторую информацию, разделить или наоборот — соединить… и произвести ещё много разных действий, чтобы наша информация приняла вид, пригодный для анализа.
- Предоставляет возможность моделирования — связки данных между собой (из разных систем).
- Предоставляет инструменты для добавления вычислений. Просуммировать расходы по группе проектов и разделить на часы другой группы проектов — для BI как орешки пощёлкать.
- Предоставляет набор инструментов для визуализации данных. После того как мы всё посчитали и собрали в группу стройных связанных между собой табличек, самое время — приступать к визуализации. Набор разных графических элементов на самые разные ситуации.
- И последнее. Предоставление доступа к отчёту. Мы делимся полученными визуализациями и данными с коллегами, настроив предварительно, кому что нужно видеть, а кому что — не нужно. И как вишенка на торте — настраиваем автоматическое обновление данных нашей опубликованной модели. Красота, да и только.
Систем класса BI — много. Тема сейчас в тренде и набирает обороты. По мнению некоторых экспертов рынок решений на основе BI в ближайшие годы будет набирать обороты по 30-40% в год.
Gartner регулярно проводит исследование, сравнивая разные BI между собой по двум критериям — полнота функциональности и простота внедрения. Уже не первый год лидирующую позицию удерживает Power BI от Microsoft.
С помощью подобных инструментов можно очень сильно облегчить жизнь и сэкономить время на сборке отчётов. А что самое главное — обеспечить себя актуальной информацией, которая всегда под рукой.
Итого
Реализовав описанную выше логику, например, с помощью Power BI, мы имеем следующие возможности:
- Получить себестоимость каждого сотрудника.
- Получить среднюю себестоимость в динамике.
- Получить разбивку составляющих себестоимости, опять же, в динамике.
- Сравнить со ставками на проектах и вычислить маржу и маржинальность.
- Сгруппировать сотрудников по маржинальности.
- Собрать картину расходов, доходов и прибыли по проектам.
- И многое, многое другое… Чем больше данных вы затягиваете в BI, тем больше возможностей для анализа получаете.
P.S. Пишите особенности своей компании и ваши вопросы в комментариях — будем разбирать, как их учесть. при расчёте себестоимости часа разработчика.
Я генеральный директор, бизнес-аналитик и преподаватель
зарплаты вместе со всеми налогами за этот месяц 100 тугриков
Забавно, что генеральный директор и бизнес-аналитик в одном лице, объясняя стоимость труда программиста, на подсознательном уровне оценивает чужой труд в тугриках — весьма честная и символичная демонстрация истинного личного отношения 🤭
Это ж условно, чтоб не привязываться к рублям, долларам и т.д. Можно было бы написать у.е., но было бы скучнее :)
Ярослав, ну почему у вас в тексте такой сумбур? Мысль скачет испуганным зайцем. Если вы айтишник, то должно быть алгоритмическое мышление, делай раз, делай два... А из вашего текста смысл нужно вытаскивать как из зашифрованного сообщения.
Есть такое замечательное правило четвертей. Если работаете на себя - правило третей. Это ФОТ * 4 - есть все расходы компании. Отклонения бывают, но не более 10-15% от этого. Так можно оценивать сколько будет стоить разработка, прикинув только по часам сотрудников.
Поддержу. Тоже раньше думал, что для каждого проекта разработчики считают себестоимость. Потом когда начал с ними работать, понял, что обычно примерно прикидывают, сколько проект займет времени, сколько человек будет на нем, умножают на средний ФОТ и добрасывают коэффициент, учитывающий налоги + условно-постоянные + маржу. Про правило четвертей круто конечно. :) На средних проектах больше встречал 1,5 - 2,5.
1
Думаю, можно говорить о пропорциях, но в разрезе сферы деятельности компании. Не встречала компаний-разработчиков, у которых ФОТ съедал бы 25-30%. Скорее это 70-80% расходов. Суть, конечно, от этого не меняется - есть пропорция, где от часов можно прикинуть все расходы. И часть задач, действительно, можно закрыть таким примерным расчётом. Я же в статье пишу, скорее. про задачи, которые требуют именно точности. Поэтому и расчёты чуть интереснее.