Учет трудозатрат в проекте T&M средствами Google Sheets

При работе команды специалистов с моделью оплаты time & materials (aka T&M, оплата по факту выполненных работ и затраченных ресурсов) в небольших командах разработки встает вопрос как учитывать трудозатраты и другие ресурсы, как рассчитывать размер выплаты для заказчика, как рассчитывать размер платежей специалистам в команде, как вести учет всех этих расчетов, где хранить договоренности, которые меняются во времени.

Есть несколько вариантов решения задачи, в этой статье я опишу довольно простой в освоении и применении на практике прием с помощью Google Spreadsheets (https://www.google.com/sheets/about/).
Описанный инструмент дает гибкость при формировании расчетов, разделяет доступ между участниками, позволяет вернуться к прошлым выплатам, расследовать инциденты с небьющимися данными в отчетах и расширять для своих нужд.

Начнем с примера:

Здесь продемонстрированы расчеты для проекта с именем ProjectName, с командой из двух специалистов: Иван Иванов, разработчик и Петр Петров, тестировщик. Команда уже получила одну выплату в январе 2022, а вторую выплату, с названием периода “Февраль 2022”, все еще ждут от заказчика, при этом продолжают работы.

В принципе самого примера может быть достаточно для того, кто в достаточной мере знаком с Google Sheets, но мы пройдем по всему процессу.

Для этого осветим процесс первоначального создания инструмента для проекта, создания периода оплаты и проведения выплат.

Создание системы учета

Идея в том, что под каждый проект, в котором есть отдельный заказчик, которому вы выставляете счета вы заводите отдельную систему учета в виде отдельной папки на GoogleDrive.

В эту папку вы копируете документы из примера и заполняете их специфичными для проекта данными.

Папку можно назвать как-то вроде “Учет трудозатрат проекта ProjectName”.

Создание таймшитов

Для каждого участника проекта вы создаете отдельный Google Sheet (здесь и далее называю его таймшит), с произвольным именем, но мне привычна номенклатура “Учет трудозатрат Имя Фамилия. Проект НазваниеПроекта”. Доступ на запись к этому документу вы даете специалисту (и только ему, у заказчика будет доступ в другом документе), который будет вести в нем учет своих рабочих часов.

В шаблоне уже описана инструкция с примером заполнения, обратите на нее внимание специалиста.

Инструкция содержит только важные моменты, о которые обычно спотыкаются.

В том числе важно, чтобы специалист оставлял пустым поле “Период оплаты”, чтобы заказчик видел правильный предварительный расчет.

Поля которые следует заполнять специалисту помечены зеленым цветом, а руководителем проекта — синим.

Теперь от специалиста требуется заполнять свой таймшит, когда это делать — ваше дело. Важно, чтобы перед закрытием периода таймшит был актуален. Лучше сразу приучить специалистов вносить работы ежедневно. В таком случае ему не придется вспоминать работы в конце месяца, а заказчику будет видна динамика прироста затрат.

Создание отчета для заказчика

После того как таймшиты созданы, вы создаете документ с общими затратами, который содержит расчеты для выплаты заказчиком за определенный период.

Для этого используем Google Sheet “Отчет по общим затратам. Проект ProjectName” как шаблон, затем для каждого созданного таймшита создаем вкладку с именем и фамилией специалиста как в примере. Здесь точность написания уже важна, потому что по этому имени отчет будет обращаться за данными. В каждой вкладке мы используем формулу =IMPORTRANGE("1OElIxefrBVPVXMUFFDC-Ze1jj5Egm4IOXEu7aTOtYC8", "timesheet!A:D")
для импорта тех полей из таймшита специалиста, которые хотим показать заказчику.

1OElIxefrBVPVXMUFFDC-Ze1jj5Egm4IOXEu7aTOtYC8 в данном примере — это идентификатор документа, который мы достали из ссылки на документ с таймшитом специалиста:

https://docs.google.com/spreadsheets/d/1OElIxefrBVPVXMUFFDC-Ze1jj5Egm4IOXEu7aTOtYC8/edit#gid=623721750

На самом деле импортировать документ можно используя ссылку целиком, но скорее из эстетических соображений я использую только идентификатор из ссылки.

При вводе формулы Google Sheet попросит подтвердить доступ к другому документу, следует разрешить ему это.

Удаляем примеры периодов оплаты (в примере “Февраль 2022” и “Январь 2022”).

Теперь во вкладке “Текущий период” заполняем сведения о команде: Имя Фамилия нужно указать в точности как в названии вкладки, роль (только для понимания заказчиком), стоимость часа работы специалиста для заказчика в нужной вам валюте (вероятно потребуется скорректировать заголовки столбцов).

Поля, которые стоит заполнить сейчас помечены зеленым, поля, которые нужно будет заполнить в момент закрытия периода — синим, поля, которые рассчитываются автоматически — желтым.

Доступ к этому отчету мы даем заказчику, но не специалистам. Я рекомендую передавать заказчику доступ на комментирование.

В этом документе заказчик видит работы специалистов в том виде в котором они их записывают во вкладках с таймшитами, видит предварительный итог на настоящий момент во вкладке “Текущий период”, а после формирования периода еще будет видеть расчеты за прошедшие периоды оплат.

Создание отчета для внутренних нужд

Если вы используете этот инструмент не только для расчета счетов заказчику, но и для расчета выплат сотрудникам, то вам нужно создать файл с внутренними расчетами.

В примере он называется “КОНФИДЕНЦИАЛЬНО. Распределение выплат. Проект ProjectName”.

Этот документ отличается только способом расчетов импортированных часов, поэтому с документом нужно проделать то же самое, что и с отчетом по общим затратам для заказчика.

В этом документе мы будем видеть итог работы команды, в том числе задолженность заказчика, нашу задолженность перед разработчиками и выручку за период.

К этому файлу не даем доступ ни заказчику ни специалистам.

Закрытие периода оплаты

После создания документов для расчетов команда работает вплоть до момента, когда потребуется расчет с заказчиком за проделанную работу.

В этот момент мы должны наименовать период оплаты, проставить его в таймшитах специалистов, затем создать вкладки в отчетах и проставить период оплаты в них.

Мы чаще всего выставляем счета заказчику один раз в месяц, поэтому именование периода совпадает с ближайшим месяцем с годом, например Январь 2022 для работ в январе 2022 года.

Но в общем случае период можно именовать как угодно, важно, чтобы название совпадало в таймшитах и в отчетах.

Итак, настал момент выставления счета, мы выбираем подходящее имя, например “Январь 2022”.

Период оплаты в таймшитах

В таймшитах каждого специалиста в поле “Период оплаты” мы проставляем это значение для тех работ, которые хотим чтобы попали в этот период оплаты.

Технически это проще сделать так: в первой пустой ячейке прописываем период, выделяем ячейку, жмем Ctrl+C, выделяем все ячейки в которых нужно проставить период и жмем Ctrl+V.

Период оплаты в отчетах

В отчетах по общим затратам и внутреннем создаем по вкладке с именем совпадающим с периодом оплаты, например "Январь 2022" (совпадение необязательно для расчетов, но так удобнее).

Для этого лучше продублировать вкладку “Текущий период” и переименовать ее.

Если с момента последней оплаты в команде произошли изменения то самое время внести их в отчеты, как мы делали это при их создании.

После этого заполняем название периода в полях “Период” для каждого специалиста, техника та же, через Ctrl+C и Ctrl+V.

Я еще передвигаю предыдущий период куда-нибудь за вкладки с таймшитами, чтобы не мешал, но к нему можно было вернуться при необходимости.

Теперь в отчете для заказчика на вкладке с выбранным периодом оплаты находится расчет, на который вы можете сослаться выставляя счет.

Если заказчик захочет деталей, ему доступны таймшиты с записями специалистов.

Кроме того, заказчик может запросить детали в комментариях к любой из ячеек в документе если ему дали правильный доступ.

Ход оплаты

После того как период оплаты сформирован, вы отправляете заказчику счета, акты и прочую документацию которая требуется. Эти документы вы создаете своими силами, представленный инструмент эту задачу не решает, хотя я иногда использую и его для формирования актов, но это уже требует индивидуального подхода.

К отчету для заказчика мы возвращаемся в момент получения оплаты, чтобы отметить поступление оплаты для себя и заказчика (см. вкладку “Январь 2022”).

Затем нам потребуется внутренний отчет для того, чтобы рассчитаться со специалистами.

В отчете мы видим сумму которую нужно перечислить специалисту, и мы можем использовать сгенерированный текст для того чтобы отправить его на согласование специалисту перед расчетом, можно забрать его копированием из ячейки:
Иван Иванов | Проект ProjectName | Период: Январь 2022 | Часов: 2 | Ставка (RUB): 800 | Всего (RUB): 1600
при этом вы можете изменить шаблон для генерации этого сообщения под свои нужды.

Особое внимание обращаю на то, что инструмент никаким образом не учитывает налоги, взносы и прочие платежи, которые вы должны сделать и отчитаться для того, чтобы соблюсти требования законов той страны в которой работаете.

По мере выплат специалистам в их таймшитах отмечаем произведенную оплату, для себя и специалиста.

На этом период оплаты закрыт, к нему можно будет вернуться в будущем, например для ретроспективного анализа.

Когда придет время следующего периода оплаты, повторяем процедуру.

Преимущества

Гибкость

Описанный инструмент хорош тем, что его легко адаптировать под нужды конкретного периода. Например вы можете вписать в отчет с затратами аренду вычислительных мощностей, приобретение каких-то ресурсов для решения задач проекта. Решается задача изменения ставки специалиста во время периода оплаты или работа в нескольких ролях с разными ставками.

Разделение доступа

Основная задача применения инструмента — это разделение доступа для всех участников. Специалист знает только о своей работе, затраченных часах и статусе оплаты с ним.

Заказчик видит трудозатраты и условия сотрудничества команды с ним.

Вы, как руководитель команды видите все детали.

Возможность ретроспективы

В отличии от других, более простых калькуляторов затрат, в этом можно обратиться к истории расчетов. Часто это бывает нужно, чтобы сравнить платежи в разных периодах, среднюю ставку специалиста.

Расширяемость

Если у вас есть кто-то, кому вы можете поручить управление инструментом, то можно использовать механизм “Protect range” для защиты уже закрытых периодов оплаты от случайной модификации.

Вы можете расширить таймшиты и отчеты любыми требуемыми вами полями и вкладками. Например в отчеты можно добавить расчет стоимости всех работ с аналитикой за весь период проекта. Я не стал добавлять его здесь, чтобы не затенить основную идею инструмента.

Защита от изменений задним числом

Если появились сомнения, или данные не бьются, в Google документах есть прекрасный механизм истории документов, всегда можно докопаться до того, кто сломал расчет.

Заключение

Еще раз акцентирую внимание на том, что описанный инструмент никаким образом не решает задачу отчетности перед государством в юрисдикции которого вы работаете.

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

33
1 комментарий

Полезно!

Ответить