Статьи Sibedge Consulting

Сколько стоит программист? Подход и инструментарий для расчёта себестоимости услуг

Статья
Привет! Меня зовут Мария Дробинская. И я фанат табличек и циферок. Если что-то, с чем я сталкиваюсь регулярно, может быть разложено по табличкам, оно будет разложено.
Так я помогаю нашим заказчикам собрать данные из разных информационных систем, структурировать и красиво визуализировать. Таким образом подготовив информацию к анализу и принятию важных управленческих решений.

Руководители принимают массу решений каждый день. Решения самые разные и касающиеся самых разных областей бизнеса. Разберём сегодня, как сформировать базу для принятия решений, касающихся себестоимости разработки. Любая компания, занимающаяся заказной разработкой, рано или поздно сталкивается с рядом вопросов:

  • Оценили проект в часах разработки, а как перевести часы в деньги?
  • Какую скидку можем дать, так чтобы остаться в прибыли?
  • Сотрудник просит больше – мы можем?
  • У нас вообще проекты с прибылью?
  • Кто просадил проект?
  • Какой сотрудник более маржинален?
  • … и многое, многое другое…

Ответы на все эти вопросы сводятся к одному и тому же — к расчёту себестоимости разработчиков. Да и не только их, чего уж.

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. По заданным параметрам подключается к информационным системам (базы данных, файлы табличного вида, веб-странички, сервисы, 1Ски и многое другое). И вытягивает нужную нам информацию из разных информационных систем в единую модель.
  2. Предоставляет инструменты для обработки полученной информации. Мы можем отфильтровать, сгруппировать, отсечь некоторую информацию, разделить или наоборот — соединить… и произвести ещё много разных действий, чтобы наша информация приняла вид, пригодный для анализа.
  3. Предоставляет возможность моделирования — связки данных между собой (из разных систем).
  4. Предоставляет инструменты для добавления вычислений. Просуммировать расходы по группе проектов и разделить на часы другой группы проектов — для BI как орешки пощёлкать.
  5. Предоставляет набор инструментов для визуализации данных. После того как мы всё посчитали и собрали в группу стройных связанных между собой табличек, самое время — приступать к визуализации. Набор разных графических элементов на самые разные ситуации.
  6. И последнее. Предоставление доступа к отчёту. Мы делимся полученными визуализациями и данными с коллегами, настроив предварительно, кому что нужно видеть, а кому что — не нужно. И как вишенка на торте — настраиваем автоматическое обновление данных нашей опубликованной модели. Красота, да и только.

Систем класса BI — много. Тема сейчас в тренде и набирает обороты. По мнению некоторых экспертов рынок решений на основе BI в ближайшие годы будет набирать обороты по 30-40% в год.

Gartner регулярно проводит исследование, сравнивая разные BI между собой по двум критериям — полнота функциональности и простота внедрения. Уже не первый год лидирующую позицию удерживает Power BI от Microsoft.
С помощью подобных инструментов можно очень сильно облегчить жизнь и сэкономить время на сборке отчётов. А что самое главное — обеспечить себя актуальной информацией, которая всегда под рукой.

Итого

Реализовав описанную выше логику, например, с помощью Power BI, мы имеем следующие возможности:
  1. Получить себестоимость каждого сотрудника.
  2. Получить среднюю себестоимость в динамике.
  3. Получить разбивку составляющих себестоимости, опять же, в динамике.
  4. Сравнить со ставками на проектах и вычислить маржу и маржинальность.
  5. Сгруппировать сотрудников по маржинальности.
  6. Собрать картину расходов, доходов и прибыли по проектам.
  7. И многое, многое другое… Чем больше данных вы затягиваете в BI, тем больше возможностей для анализа получаете.
P.S. Пишите особенности своей компании и ваши вопросы в комментариях — будем разбирать, как их учесть. при расчёте себестоимости часа разработчика.