В очередном обновлении Timetta изменится подход к определению ставок себестоимости Универсальных ресурсов. Изменение существенно повысит гибкость настроек Timetta, но затронет ряд компонент системы и повлияет на логику расчета финансовых показателей.
В статье подробно рассказываем о грядущих изменениях и делимся планами на будущее.
Для расчета себестоимости проекта необходимы сведения о команде, задействованной в проекте, трудозатратах и ставках себестоимости всех членов команды. Команда проекта может быть сформирована из ресурсов двух типов: Сотрудников (Пользователей) и Универсальных ресурсов.
Для Сотрудников ставка себестоимости задается индивидуально, в профиле сотрудника.
![Настройка ставок себестоимости для сотрудника в приложении Timetta](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image1.png)
Сложнее определить ставку себестоимости для Универсального ресурса. Она может зависеть от множества характеристик, таких как Роль, Уровень, Грейд, Локация и т. п. При этом в разных компаниях могут быть разные наборы значимых характеристик, влияющих на себестоимость Универсального ресурса.
Механизм определения ставок себестоимости для Универсальных ресурсов в Timetta прошел несколько этапов эволюции.
Первоначально ставки себестоимости и история их изменений задавались для Ролей. Таким образом, для определения ставки себестоимости Универсального ресурса достаточно было указать его Роль, а остальные характеристики на ставку не влияли.
Плюсом такого подхода была простота настройки, однако в некоторых случаях приходилось заводить в справочник ролей очень много записей.
Например, если ставки себестоимости специалистов разных категорий квалификации сильно отличались, вместо одной роли «Консультант» приходилось заводить несколько ролей («Младший консультант», «Старший консультант», «Ведущий консультант» и т. д.), перечень ролей разрастался и становился плохо управляемым.
Предполагалось, что Уровень является — основной характеристикой ресурса, которая определяет «зарплатную вилку», и что сотрудники одного Уровня, вне зависимости от роли, департамента или команды, имеют примерно одинаковую ставку себестоимости.
Однако на практике не всегда возможно ввести «сквозные» уровни для всей компании: не всегда зарплатная вилка «Младшего консультанта» соответствует зарплатной вилке «Младшего разработчика». В таком случае, характеристики «Младший» недостаточно для определения ставки себестоимости. В особенности это проблематично для крупных компаний, где градация зарплат в зависимости от должностных уровней может сильно различаться от департамента к департаменту.
Каждый ресурс в Timetta описывается набором аналитик. Всего их семь.
![Схема взаимосвязей аналитик для описания ресурсов](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image3.png)
Некоторые аналитики связаны между собой. Например, Компетенции ведутся в разрезе Ролей, а Грейды в разрезе Уровней.
Перечисленные аналитики описывают любой ресурс — и Сотрудника и Универсальный ресурс.
В ближайшем обновлении компонента «Матрицы ставок» будет дополнена новым типом — «Ставки себестоимости» (в дополнение к существующему «Ставки биллинга»).
Основные цели доработки — дать возможность компаниям самостоятельно определять, какие характеристики ресурса влияют на ставку себестоимости, и задавать ставки, соответствующие выбранным характеристикам.
Матрица ставок себестоимости создается на определенный период времени, например, на год. При создании указывается дата начала действия матрицы.
![Создание новой матрицы ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image2.png)
Важный параметр матрицы — Структура матрицы ставок. Параметр определяет, какие характеристики ресурса оказывают влияние на ставку себестоимости.
![Структура матрицы ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image5.png)
В самом простом случае, ставка себестоимости может определяться одной единственной характеристикой, например, Ролью.
![Структура матрица ставок на основе ролей](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image4.png)
После определения структуры матрицы, на вкладке «Строки» задается соответствие между выбранными характеристиками и ставкой себестоимости.
![Вкладка строки в матрице ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image7.png)
Может быть и более сложный пример, когда ставка себестоимости зависит от нескольких характеристик. Например, Роли, Уровня и Локации. В таком случае в структуре матрицы будут три аналитики, а строки матрицы будут сформированы по принципу графа, когда каждая следующая характеристика ресурса уточняет его ставку.
![Сложная структура матрицы ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image9.png)
В нашем примере с помощью матрицы определяется:
- Средняя ставка роли Консультант.
- Средние ставки роли Консультант в разбивке по Уровням.
- Ставки роли Консультант в разбивке по Уровням с уточнением по Локациям.
Очевидно, что чем больше аналитик указано как значимых в параметре Структура матрицы, тем больше строка будет в самой матрице и тем сложнее будет её настройка и поддержка. Рекомендуем минимизировать число аналитик.
Как правило, Матрица ставок вводится в действие на определенный период времени, например, на год. При пересмотре ставок необходимо создать еще одну матрицу и указать, с какой даты она будет действовать.
По умолчанию, матрица создается в состоянии «Черновик». Это статус, в котором матрица находится в разработке.
![Жизненный цикл матрицы ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image8.png)
Предусмотрена возможность настройки процесс утверждения матрицы с помощью стандартного механизма настройки воркфлоу. Утвержденная матрица переходит в состояние «Действующая» и применяется для расчетов ставок себестоимости.
Для однозначного определения ставки предусмотрено ограничение — на один период времени не может быть несколько одновременно действующих матриц.
После обновления, ставка себестоимости Универсального ресурса будет определяться в соответствии с Матрицей.
Претерпит изменения форма создания Универсального ресурса.
![Новая форма создания универсального ресурса](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image12.png)
В группе полей «Матрица» отображаются аналитики, влияющие на ставку себестоимости в соответствии с текущей действующей Матрицей.
Например, на текущий момент времени действует матрица со структурой «Роль > Уровень > Локация».
![Пример действующей матрицы ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image10.png)
При создании Универсального ресурса в команде проекта именно эти поля будут отображаться в группе «Матрица», так как именно они влияют на ставку себестоимости.
![Ключевые поля в матрице себестоимости](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image11.png)
Другие характеристики ресурса на ставку себестоимости не влияют, но могут потребоваться для более точного описания и последующего подбора. Такие характеристики вынесены в группу «Прочее».
Ставка себестоимости определяется и уточняется по мере заполнения полей в разделе «Матрица».
Рассмотрим на примере:
- Есть действующая матрица со структурой «Роль > Уровень > Локация».
- Создаем Универсальный ресурс с ролью «Консультант».
После заполнения поля Роль в карточке Универсального ресурса, будет выполнен поиск соответствующей строки в матрице, и, если строка найдена, будет определена ставка себестоимости.
![Определение ставки себестоимости по матрице](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image13.png)
Если указать в карточке Универсального ресурса Роль и Уровень — будет выполнен поиск строки матрицы, где соответствующим образом заполнены обе эти аналитики.
![Автоматический поиск нужных строк в матрице](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image14.png)
В структуре матрицы важен порядок аналитик. Предположим, в карточке Универсального ресурса заполнены Роль, Уровень и Локация, но соответствующей строки в Матрице не найдено.
![Порядок определение характеристик в матрице ставок](/entity-assets/95975ccd-a506-42cf-89d4-6b23be95b299/image15.png)
Тогда для определения ставки себестоимости будет исключена последняя аналитика (Локация) и выполнен поиск по оставшимся двум. Если и при таких условиях не получится найти подходящую строку, будет исключена вторая аналитика (Уровень) и произведен поиск по первой аналитике (Роль). Если не получится найти строку с указанной Ролью, то ставка себестоимости не будет определена.
Оценка себестоимости в проекте по часам, запланированным на Универсальный ресурс, рассчитывается с учетом периода действия матрицы.
Например:
- В команду проекта добавлен Универсальный ресурс «Консультант > L3 Специалист».
- В соответствии с матрицей, действующей на 2024 год, ставка такого ресурса — 1 000 рублей.
- В соответствии с матрицей, действующей на 2025 гол, ставка такого ресурса — 1 100 рублей.
При расчете себестоимости на основе ресурсного плана проекта, себестоимость всех часов, запланированных на 2024 год, будет считаться по ставке 1 000 руб., а на 2024 год — по 1 100 руб.
Другими словами, для каждой ячейки ресурсного плана выполняется поиск матрицы, действующей на указанную дату. В этой матрице ищется строка, соответствующая параметрам ресурса. Далее определяется ставка себестоимости ресурса и рассчитывается себестоимость часов.
В связи с этим крайне не рекомендуется изменять структуру матрицы, так как вполне вероятна ситуация, что у Универсального ресурса не будут заполнены параметры, позволяющие определить его себестоимость в соответствии с новой структурой.
Миграция ставок себестоимости из старых настроек (ролей, уровней и грейдов) пройдет автоматически. Однако вновь созданная структура может быть неоптимальной:
- Ранее ставки для каждой записи задавали отдельно и на любую дату. Например для одно роли первая ставка вводилась в действие с 1 января, а вторая с 1 июля.
- Теперь ставки задаются через матрицы с единым периодом действия.
- В процессе миграции мы создадим столько матриц, сколько потребуется с учетом уникальных дат в старых настройках.
- Рекомендуем оценить результат и принять решение о необходимости ввода новой, уже стандартизированной для компании матрицы.
Надеемся, предложенный обзор изменений будет полезным. За дополнительными разъяснениями и помощью в настройке вы всегда можете обратиться в нашу службу поддержки (support@timetta.com).