Как составить таймшит

Пост о том, почему наши программисты теперь заполняют таймшит не 32, а только 2 минуты и о том, как можно наладить автоматический учет рабочего времени за счет импорта данных из трекинговых систем TFS, Redmine и Jira на Microsoft Project Server.

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

Проблема — бардак в заполнении таймшитов

Для 99% компаний-разработчиков учет рабочего времени программистов нужен как воздух, чтобы считать затраты. Поэтому многие заставляют сотрудников заполнять таймшиты (timesheet, своего рода — табель учета рабочего времени). Часто это подразумевает заполнение вручную таблицы с задачами и потраченным на них временем.

99% программистов, мягко говоря, недолюбливают эту процедуру. Еще бы, отличная перспектива для пятничного вечера — минут 30 сидеть и тупо копипастить все свои задачи за неделю из трекинговой программы в таймшит. А, как известно, когда люди делают тупую и ненавистную работу, то результат бывает так себе. Вот и в нашей компании половина таймшитов в пятничный вечер были далеки от совершенства. В чем это выражалось?

В первую очередь в том, что таймшиты не отражали всех «боевых» задач, которые решали разработчики. Программист мог написать, что просто все 40 часов работал по такому-то проекту. Или мог задачи из одного проекта по ошибке отнести в таймшите к другому.

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

Результат: с задержкой в 3 рабочих дня руководители, наконец, получали отчет по затраченному рабочему времени за прошлую неделю.

Как было. Процедура сбора таймшитов.

Более трех дней

Решение — автоматизация процесса заполнения таймшитов

Решение проблемы выкристаллизовалось постепенно. Мы рассуждали так. Если программист всю свою работу фиксирует в трекере, то почему бы не брать данные о задачах и количестве рабочих часов прямо оттуда? Это позволит быстро получать информацию для анализа трудозатрат, кадрового документооборота и других менеджерских задач. Дальше дело было за малым — найти красивое технологическое решение по интеграции наших трекеров с системой, в которой мы учитываем рабочее время (Microsoft Project Server — подробнее о нем здесь).

Как стало. Процедура заполнения таймшитов

До 100 штук за 2 минуты!
Максимальное время сбора данных — 2 часа 10 минут.

Что мы получили?

В MS Project Server появилась волшебная кнопочка, которая позволяет сделать таймшит за 2 минуты. Заходишь в пятницу в Project Server, он автоматически строит таймшит по данным из трекера за неделю. Туда остается добавить только данные об отгулах, отпуске, больничном, если были. И вуаля — нажимаешь кнопку, подтверждаешь, что все правильно, и таймшит готов.

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

Автоматически заполненный таймшит

Бонусы волшебной кнопки

1. Сэкономили 200 рабочих часов

Если раньше у сотрудника на заполнение таймшитов уходило 30-40 минут, то сейчас 2 минуты. А если пересчитать на 100 человек в месяц, то мы сэкономили около 200 рабочих часов.

Сюда можно добавить еще 32 рабочих часа, которые уходили на проверку правильности заполнения таймшитов, вместо которых теперь уходит только 4 часа в месяц. Экономия времени объясняется просто: теперь в таймшиты выгружаются реальные задачи из трекеров, а не те, которые люди вбили руками.

2. Оперативно получаем аналитику по проектам за неделю

Теперь в 19:00 в пятницу полностью заполнены 91% таймшитов, и у менеджеров есть аналитика трудозатрат по проектам уже в конце недели. Раньше к этому времени было собрано меньше половины.

Пятница, 19:00. Количество полностью заполненных таймшитов

3. Привели к единообразию стандарты ведения всех проектов

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

4. Упростили контроль того, как соблюдается технология ведения проектов

Раньше, чтобы понять, как ведется проект, нужно было вручную заглянуть в трекер. Теперь контроль происходит автоматически при отправке таймшита. Например, если в Redmine не проставлены статусы задач и время на их выполнение, то эти задачи просто не выгрузятся в таймшит. И наоборот, если проектный офис видит правильно заполненный таймшит — это подтверждает, что его автор заполнил все поля в трекинговой программе.

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

5. Получаем аналитику по любым параметрам уже в пятницу

Если раньше аналитика за прошлую неделю приходила к менеджерам только во вторник-среду, то теперь уже в конце текущей недели, вечером в пятницу, 90% информации по таймшитам собрано. На основе ее выстроен OLAP-куб.

Сколько багов за неделю было исправлено? Сколько часов ушло на каждый из проектов? Где возникли узкие места и почему? Анализировать данные теперь можно более оперативно. Но это не предел. В следующий раз мы расскажем о том, как можно получать сводные данные по всем проектам из трекеров в режиме реального времени при помощи усовершенствованной версии нашего OLAP-куба.

А сейчас подробности, мясо и куски кода.

Автоматизация бизнес-процесса по шагам

Шаг 1. Стандартизировали ведение проектов в разных трекинговых системах

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

Управление проектами в отделах разработки — специализированные трекинговые системы Учет рабочего времени и анализ бизнес-процессов в компании
TFS — для отдела технологий Microsoft. Microsoft Project Server — система для управления портфелями проектов
Jira — проектами, в которых заказчик тоже пользуется системой Jira.
Redmine — для отдела мобильных технологий, Java-разработчиков и дизайнеров.

Стандарты ведения проектов в разных трекерах немного отличались. К примеру, для разных проектов могли быть приняты разные воркфлоу. Или комплексный проект для одного и того же заказчика мог в отделе мобильной разработки (в Redmine) называться, условно, «Мобилка для крутого клиента N», а в отделе веб-разработки (в TFS) «Внутренний сайт компании N».

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

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

Шаг 2. Написали страницу, которая импортирует записи в MS Project Server

Расскажем, как можно сделать такую страницу. Наметим краткий план того, что нужно:

  1. Добавить кнопку в MS Project.
  2. Авторизоваться в трекинговой системе и считать данные по трудозатратам оттуда.
  3. Отобразить полученные данные пользователю для проверки.
  4. Записать данные в MS Project.

2.1. Кнопочка.

Давайте рассмотрим, как можно расширить интерфейс MS Project Server. Поскольку, как всем известно, MS Project Server работает поверх MS SharePoint Server, можно воспользоваться возможностями последнего, чтобы добавлять различные элементы в интерфейс MS Project. В частности, нам нужно было, чтобы пользователь запускал импорт непосредственно из страницы с таймшитом. Для этого в Ribbon таймшита можно добавить специальную кнопочку и связать ее с соответствующим действием. Для того чтобы иметь возможность развернуть это в MS SharePoint необходимо создать Feature, который содержит элемент типа Custom Action.

<CustomAction
          Id="EBT.MSP.TimesheetSync.ImportFromRedmine.CustomAction"
          Location="CommandUI.Ribbon"
          Title="Import data from RedMine" >
	…
  </CustomAction>

Внутри этого CA определяем соответствующее расширение.

<CommandUIDefinition Location="Ribbon.ContextualTabs.Timesheet.Home.Sheet.Controls._children">
…
 </CommandUIDefinition>

Собственно, это довольно хорошо известно.

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

Информации в интернете по этому вопросу не так много, поэтому основным источником информации и является файл pwaribbon. Файл довольно большой, но разобраться в нем можно. После того как мы нашли нужный Location, все просто:

Добавляем в него кнопку.

<Button Id="EBT.MSP.TimesheetSync.Import.ANCHOR.RedmineButton"
                          LabelText="Import from Redmine"
                          Image16by16="/_layouts/15/EBT.MSP.TimesheetSync/img/rm_small.png"                          
                          Command="EBT.MSP.TimesheetSync.Import.ANCHOR.RedmineButton.Command"
                          TemplateAlias="o1" />

И определяем соответствующую команду.

       <CommandUIHandler
            Command="EBT.MSP.TimesheetSync.Import.ANCHOR.JiraButton.Command"
            CommandAction="javascript:function ProjectCenterExtension() {
              var _grid;          // Display surface (a view) of the JS Grid.
              var _satellite;     // Control wrapper for the JS Grid.
              var props = window.timesheetComponent.get_TimesheetSatellite().get_impl()._pageProperties;
              window.location = '_layouts/15/EBT.MSP.TimesheetSync/ImportTimesheetData.aspx?ts=' + props.tsUid + '&prd=' + props.prdUid + '&datasource=jira_ebt';              
            }; 
            ProjectCenterExtension();"
        />

Как видно из приведенного кода, команда просто перенаправляет пользователя на соответствующую страницу типа ApplicationPage. Эта страница, которую мы написали сами. Собственно внутри нее и происходят все дальнейшие «грязные» дела.

А именно:

  1. Авторизация в трекинговой системе и считывание данных.
  2. Отображение этих данных на странице, для того чтобы пользователь мог увидеть, что добавится в его Timesheet.
  3. Запись информации в MS Project.

2.2. Чтение данных

Тут возникло две проблемы:

1. Как авторизоваться в трекерах для получения данных.
2. Как сопоставить пользователя MS Project с пользователем трекинговой системы.

Глобально тут можно выделить 2 подхода. Забегая вперед, скажем, что нам пришлось применить оба подхода для разных трекеров:

  • Завести некого суперпользователя, который может получить все данные из трекера. А далее пытаться сопоставлять имена пользователя MS Project Server и трекеров.
  • «Пробросить» авторизацию из MS Project Server в трекер. Здесь есть очевидный плюс — сопоставление не нужно, можно просто получать записи пользователя по его «проброшенной» учетной записи. Но с этим связаны и некоторые проблемы, о которых чуть позже.

Решение для Redmine и TFS
В нашем конкретном случае эти трекеры «живут» в нашей инфраструктуре, поэтому мы решили пойти первым путем.

В случае Redmine все просто — в Redmine есть функция Log Work, которая работает ровно так, как нужно. То есть человек может зайти в задачу и отметить, сколько часов он потратил на задачу такого-то числа.

Дальше дело техники — сделать представление в базе данных Redmine (у нас Redmine использует MySQL), и все готово. Задача решена, мы можем получить данные.

В случае с системой TFS все чуть сложнее. Такой возможности, как в Redmine, в ней нет. Есть определенные Add-In’ы, которые ее дают, например, www.tfs-timetracker.com — вещь интересная, хотя и недешевая.

Но можно к этой задаче подойти с организационной точки зрения. Как? В TFS есть поле Completed Work, в которое разработчики должны записывать суммарно потраченные часы на задачу. В шаблонах проектов типа Scrum такое поле скрыто, но его можно отобразить. Далее по истории изменений Work Item можно отследить изменение этого поля и понять, когда добавлялись часы, когда, кем и сколько времени было потрачено. Конечно это требует очень плотной работы с трекером со стороны разработчика. Он не может зарепортить время задним числом, но, тем не менее, если все делать вовремя и аккуратно, то такой подход очень неплохо работает. Более того, он заставляет разработчиков вести себя более дисциплинированно.

JIRA
В нашем случае JIRA «хостится» в стороннем окружении. Поэтому ни суперпользователя, ни доступа к ее БД у нас нет. Но зато в JIRA есть замечательный REST API, который предоставляет то, что нужно (https://docs.atlassian.com/jira/REST/cloud/ ).

Чтобы считать данные, нужно авторизоваться по протоколу OAuth. После запуска импорта из JIRA человек перенаправляется на страницу авторизации JIRA, авторизуется там (если пользователь еще не авторизован), после чего возвращается на страницу импорта.

(К сожалению JIRA поддерживает только OAUTH 1, который на текущий момент немного староват, но прорваться можно.) Получив OAUTH token мы:

1. Вытаскиваем имя автора методом

api/v2/myself

И таким образом никакого сопоставления имен не надо, мы просто берем пользователя, который залогинился в JIRA.

2. Далее ищем все задачи, для которых пользователь залогировал время в определенный период.

api/v2/myself/search?jql=worklogDate>={start_date} and worklogDate<{end_date} and timespent>0 and worklogAuthor={author}&fields=summary,project,parent,timeoriginalestimate,{pswa}&startAt=0

На первый взгляд, это все, что нужно, но не совсем. MS Project поддерживает работу в режиме делегата, когда человек что-то делает от имени другого, и наши менеджеры активно этим пользуются. Здесь, конечно, случаются определенные коллизии, поскольку, если человек A олицетворяет в MS Project человека Б (обычно руководитель — подчиненного, либо ответственное лицо — сотрудника), то в JIRA он его не олицетворяет, а остается самим собой. И подобным запросом он получит задачи, назначенные на него самого, то есть на человека А, которые запишутся в timesheet человеку Б. Более того, к сожалению, нет метода (или мы не нашли его), чтобы получить все задачи по всем проектам, в которых указанный пользователь залогировал свои трудозатраты. И это еще не все — человек А вовсе может не иметь в JIRA соответствующих полномочий на чтение нужных задач. Впрочем, последний вопрос можно решить организационно.

Для того чтобы перебрать все задачи, приходится сначала получить все проекты методом:

api/v2/project

Далее пробежаться по всем проектам и достать все задачи.

api/v2/search?jql=project={projectKey}&fields=summary,project,parent,timeoriginalestimate,{pswa}&startAt=0

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

api/v2/issue/{id}/worklog

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

2.3. Отображение данных.

Тут особо рассказать нечего — код на старом добром ASP.Net, который отрисовывает полученные данные.

2.4. Запись данных в Timesheet

Итак, мы перешли на специальную страницу, авторизовались, получили нужные записи, осталось записать их в MS Project. На самом деле у MS Project есть несколько видов API, но, поскольку мы работаем внутри него, мы использовали тот же самый, что используют страницы самого Project’a. API этот выглядит, скажем так, непривычно.

Например, чтобы считать ресурс, нужно вызвать метод.

var dataset = resourceSvc.ReadResource(userId);

И это вполне понятно, но потом придется провести еще много времени, пытаясь понять, где в этом DataSet нужная табличка, строка и колонка. Документации по этому вопросу довольно мало и, честно говоря, ни одного работающего с этим API примера добавления Timesheet Lines в Timesheet мы в интернете не нашли. Но, поковырявшись в «потрохах» MS Project Server с помощью ILSPY, мы в конце концов написали следующий код:

private void ReportTime(Guid timeSheetId, List<TaskData> tasks, Guid projectId)
        {
            var timesheetDs = _timeSheetSvc.ReadTimesheet(timeSheetId);

            TimesheetDataSet.LinesRow[] rows = (TimesheetDataSet.LinesRow[])timesheetDs.Lines.Select();

            bool needUpdate = false;

            foreach (var task in tasks)
            {
                if (!task.Estimation.HasValue && !task.IgnoreEstimation) continue;

                Guid taskId = new Guid(task.Id);
                Guid assnId = new Guid(task.AssnId);
                bool isRowExist = false;
                foreach (var row in rows)
                {
                    if (row.ASSN_UID != assnId) continue;
                    isRowExist = true;
                    AddActual(timesheetDs, task, row);                    
                }

                if (!isRowExist)
                {
                    TimesheetDataSet.LinesRow line = timesheetDs.Lines.NewLinesRow();
                    line.TS_UID = timeSheetId;
                    line.TASK_UID = taskId;
                    line.PROJ_UID = projectId;
                    line.ASSN_UID = assnId;
                    line.TS_LINE_CACHED_ASSIGN_NAME = task.Name;
                    line.TS_LINE_UID = Guid.NewGuid();
                    line.TS_LINE_CLASS_UID = PSLibrary.TimesheetConst.const_StandardLineClassGuid;
                    line.TS_LINE_STATUS = (byte)LineStatus.Pending;
                    line.TS_LINE_VALIDATION_TYPE = (byte)ValidationType.Verified;                    
                    timesheetDs.Lines.AddLinesRow(line);

                    _timeSheetSvc.PrepareTimesheetLine(timeSheetId, ref timesheetDs, new Guid[] { line.TS_LINE_UID });
                    AddActual(timesheetDs, task, line);                    
                }
                needUpdate = true;
            }

            if (needUpdate)
            {
                Guid jobUid = Guid.NewGuid();
                _timeSheetSvc.QueueUpdateTimesheet(jobUid, timeSheetId, timesheetDs.GetChanges() as TimesheetDataSet);

                TaskUtils.WaitForQueue(_queueSvc, jobUid);
            }           
        }

Этот код, собственно, и записывает нужные данные в MS SharePoint. Честно говоря, проблем при работе с MS Project было больше всего. Про это можно написать целую отдельную статью.

Шаг 3. Откатали технологию на тестовой группе пользователей.

Мы внедряли «волшебную кнопку» отдельно для каждого трекера, каждый раз охватывая по ~30% сотрудников, и каждый раз перед полноценным запуском тренировались на небольшой группе из 3-5 «подопытных» пользователей, с которыми в спокойной обстановке проходили весь процесс и доводили его до production ready состояния, чтобы не получить в пятницу вечером шквал вопросов и негодования сразу от 30 человек.

Шаг 4. Собрали обратную связь

Что говорят сотрудники EastBanc Technologies о «волшебной кнопке» для заполнения таймшитов


Юрий Булкин, главный Java-архитектор.

Огонь!!! Когда я первый раз нажал кнопку и тут же увидел полностью заполненный таймшит — я просто глазам не поверил. Мне много раз говорили, что все будет так происходить. И я понимал, как это должно выглядеть. Но когда я сам получил автоматически заполненный двадцатью задачами таймшит, это было так круто, что я только тогда осознал все удобство этой штуки.

Александра Очеретинская, руководитель проектного офиса.

Мы поняли: то, что мы в пятницу заставляем программистов заполнять таймшиты — это неполезная, неинтеллектуальная деятельность. Мы требуем вручную вносить информацию, которая уже существует, просто в другом месте и в другом виде. И мы можем избавить людей от этой ненужной работы. Если люди в любом случае уже работают по задачам, которые заведены в трекерах, то почему бы просто не выгружать эту информацию для учета? Так мы и сделали.

Максим Подусов, инженер-программист.

Намного быстрее стал процесс заполнения таймшитов, минут на 30… Раньше было 32 минуты, а сейчас всего минуты 2.

Василий Лебедев, ведущий инженер-программист.

Классно! Меньше дублирующейся работы, больше детализация тасков. Смотришь, и таймшиты вовремя заполнять начну. :)

Ирина Мананникова, руководитель проектов

Конкретно в своей работе я избавилась от однообразного, рутинного ручного процесса еженедельной проверки таймшитов (трудозатрат). Быстрота заполнения таймшитов — это приятный бонус. А главной целью было — оперативно получать прозрачную и понятную картину по проектам в трекерах. Цель достигнута, в конце каждой недели у нас есть практически на 100% актуальная информация по каждому проекту по итогам прошедшей недели.

Шаг 5. Profit!

Наслаждаемся жизнью и эффективно используем освободившееся время.

Немного познавательной истории таймшита и современном положении дел.

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

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

История

Таймшиты вошли в обиход в 19 веке под названием Time book (1). В русском языке более распространен термин Табель учета. Термин происходит от немецкого Tabelle (2), который в свою очередь берет начало от латинского tabula — таблица. Однако в программном обеспечение чаще используется термин Таймшит.

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

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

На протяжение 19-20 веков развивалась и автоматизация заполнения и контроля таймшитов. В середине 20-го века получили распространение так называемые контрольные часы (их еще назвали хронографами и хронотипами). Эти приборы выставляли на проходной. При помощи контрольных часов сотрудники, проходящие на территорию предприятия и выходящие с нее, проставляли отметки на табельных карточках, специально для того предназначенных. Время на карточках отпечатывалось автоматически.

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

Применение

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

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

Полученную информацию можно использовать:

  1. Для расчета показателей по сотрудникам и подразделениям, таким как: утилизация, коммерческая утилизация, выручка на сотрудника, себестоимость на сотрудника и прочего.
  2. Для расчета показателей проектов и программ: себестоимости, выручки, прибыли и прочего.
  3. Для клиентского биллинга, т. е. определения стоимости выполненных работ по схеме «Время и затраты».

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

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

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

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

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

Для HR-специалистов учет рабочего времени дает сведения о загрузке сотрудников, выполняемых типах работ, что позволяет лучше управлять персоналом, не допуская «выгорания» или простоя.

Современная реализация

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

Чаще всего встречаются два типа таймшитов.

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

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

Какой тип таймшита выбрать?

  • Стандартный таймшит оптимален, если у пользователя на период таймшита (например, неделю) в работе не более 15-20 задач. В таком случае ему лишь один раз нужно выбрать задачу, над которой он работает, а далее по дням указывать трудозатраты.
  • Журнальный таймшит востребован, когда уже не хватает стандартного таймшита. Например, сотрудник оказывает бухгалтерские консультации клиентам на потоке. Клиентов много и типов вопросов много. На практике бывает более 100 разнообразных выполняемых задач за неделю, при этом каждую задачу нужно учесть отдельно, поскольку этого требует биллинг с детализацией работ. В таком случае проще каждую работу заводить отдельной строкой, что и позволяет сделать журнальный таймшит. При этом заполнение журнального таймшита более трудоемко поскольку требуется каждый раз выбирать задачу.

Сравнение с учетом рабочего времени через задачи

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

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

В отличии систем управления задачами таймшит дает ряд преимуществ:

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

В том числе благодаря этим преимуществам таймшит, как способ учета времени — де-факто стандарт в области профессиональных услуг.

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

Ссылки

  1. https://en.wikipedia.org/wiki/Time_book
  2. https://de.wikipedia.org/wiki/Tabelle
  3. https://geektimes.ru/post/177987/

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

Таймшит позволит:

  • Рассчитать рентабельность проектов и понять, где компания работает в минус
  • Оценить эффективное рабочее время сотрудников. На основе этих данных можно скорректировать стоимость часа сотрудника/грейда
  • Оценить время на “шаблонные” или похожие процессы, если они имеются и скорректировать нормативы по этим процессам

Для кого подходит

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

Для разовых, но продолжительных/многоэтапных проектов: разработка “убийцы” facebook или uber, аудит бухгалтерии, разработка маркетинговой стратегии, подготовка цикла статей для PR-кампании и так далее.

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

Чем таймшит лучше, чем таск-трекеры с возможностью учета времени?

Например, в Битрикс24 есть функция “учет рабочего времени по задаче” или в Trello при закрытии задачи можно записать потраченное время.

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

Вся фишка в удобности:

  • С помощью таймшитов можно замерять время, которое тратится не только на задачи по проекту, но также на не проектные задачи (обед, отдых, коммуникация внутри компании и др.). 3 клика за 10 секунд и отметка о выполнении задачи готова. В таск-трекере на каждую не целевую задачу нужно создавать задачу по шаблону — это дополнительное время.
  • Допустим, у smm агентства 10 проектов, в которых каждую неделю нужно подготавливать контент (придумывать креатив, дизайнить изображение, настраивать таргетинг, согласовывать контент с клиентом), отмечать трудозатраты по этим проектам в таймшите не составит труда. С таск-трекерами сначала придется найти нужную задачу, а только потом вносить данные.

  • Сведение данных. Чтобы посчитать загрузку сотрудников, их эффективное рабочее время и рентабельность проектов необходимо собрать информацию с таск-трекеров, а потом перенести ее в google sheets или excel с управленческой отчетностью (либо в любой другой инструмент). С таймшитом в google sheets можно легко фильтровать данные и передавать их в нужную таблицу в режиме онлайн. Менеджеру проектов остается только наблюдать за корректным и своевременным заполнением таймшитов.

По нашему личному опыту (аутсорсинг бухгалтерии) переход на таймшиты позволил сократить время на ежедневную отчетность сотрудников с 15-25 минут, до 5-10 минут и повысить лояльность персонала к системе отчетности — работать с таймшитами оказалось намного удобней, и сотрудники стали меньше “сопротивляться” замерам и точней отображать данные.

Результат: скорректировали чеки проектов, которые раньше “казались” нам рентабельными и уточнили нормативы по процессам.

Какие минусы у таймшитов?

  • Нет возможности отслеживать статус по задаче и вести обсуждение по задаче/проекту. Однако в google sheets можно сделать «Франкенштейна»: таймшит + тасктрекер. Вопрос в удобстве, реализации и в вашем желании этим заниматься.
  • Сотрудники могут некорректно отображать затрачиваемое время и отторгать систему, вообщем бойкотировать систему. Но это проблемы корп культуры, а не инструмента.
  • Расфокусировка внимания — CRM, таск-трекер, таймшит, другой софт для работы. Чем больше окон, тем ниже производительность.
  • Возможно, нелогично использовать таймшиты, если у вас 2 проекта с 3 задачами.

Решения на рынке

На западном рынке этот инструмент достаточно распространен и есть сервисы с “красивым интерфейсом” например тут. Также есть решения на российском рынке тут. Но честно, мы пробовали демо-доступы таких сервисов и в плане удобства google sheets ничем не уступает, если, конечно, вам не нужен gps трекинг, мобильное приложение и не хочется “допиливать” google sheets.

Надеемся, что этот материал и наш опыт был полезен. Если у вас возникнут какие-либо вопросы по учету времени или управленческому учету, то мы с радостью на них ответим.

Поделитесь своим опытом учета времени сотрудников в комментариях. Интересно послушать к каким инструментам вы пришли и какой эффективности добились.

Таймшит (англ. time
sheet
, от time —
время и sheet — лист, ведомость) —
судовой документ, составляемый в портах,
в котором производится расчёт времени,
необходимого на грузовые операции в
данном порту, и ведётся учёт фактически
затраченного времени. В таймшите
указываются также размер премии,
причитающейся грузовладельцу за
досрочное окончание погрузки или
выгрузки, или уплачиваемое судовладельцу
штрафа за перерасход времени и задержки
судна.

Таймшит
содержит: название
судна; время его прибытия в порт;
дату и час вручения капитанского нотиса
о готовности судна к грузовым операциям;
дату и час принятия капитанского
нотиса фрахтователями (грузополучателями)
или их агентами; время начала
погрузки-выгрузки; время начала учёта
сталийного времени (согласно
условиям чартера);
ежесуточный учёт времени стоянки судна
в хронологическом порядке; сталийное
время (по чартеру); время в пользу
судовладельца или фрахтователя
(грузополучателя), исходя из которого
определяют соответственно сумму
демереджа или диспача. Таймшит подписывают
капитан судна и фрахтователи
(грузополучатели) или их агенты.

Time
Sheet
SHEX
uu

Условия
и оговорки чартера:

  1. Ошибка
    в
    SOF:
    в
    части
    “Daily Records” дата
    “Loading commenced” указано
    24.11.02 07:20, а
    выше,
    в
    части
    “Statement Of Facts” – 24.11.12 07.40.

  1. Отсчёт
    сталийного времени начинается с момента
    принятия
    N.O.R.

  1. В
    условии способ зачисления непроизводственного
    времени в сталии указан “SHEX”
    (Sundays
    & Holidays
    Excluded),
    однако возможны два варианта:


SHEX
uu
(unless
used)
– время считается сталийным, если
выполняются погрузочно-разгрузочные
операции;


SHEX
eiu
(even
if
used)
– время не считается сталийным, даже
если погрузочно-разгрузочные работы
выполняются.

Принимается
условие
SHEX
uu,
т.к. оно применяется чаще всего.

  1. Окончанием
    сталийного времени считается момент
    завершения
    Final
    Draft
    Survey,
    поскольку на практике в чартерах
    преобладает именно эта оговорка.

5. Расчет вознаграждения агента за судозаход

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

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

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

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

Условие:

Вид
судоходства: трамповое

Вид
плавания: загранплавание

Модуль
судна: Wусл
= 250000 м3

Порт
захода: Южный

Груз:
кормовой ячмень

Вид
операций: погрузка

Время
стоянки: 14 суток

Расчёт
агентского вознаграждения:

  1. Расчёт
    ставки платы за агентирование судов,
    заходящих для перегрузки навалочных
    и насыпных грузов (за судозаход):

3484
+ (250 – 92) * 28 = 7908 $

Т.к.
время стоянки судна составляет 14 суток
(>10 суток), а за каждые последующие 5
суток взимается дополнительная плата
в размере 15% от базового агентского
вознаграждения, то окончательная плата
будет составлять:

7908
* 1,15 = 9094,2
$

  1. Плата
    за дополнительные услуги:


проведение
банковских операций: 190
$


плата
за аренду канала связи: 190 * 1,5 = 285
$

  1. Ставка
    платы за услуги супервайзеров: 2190
    $

ВСЕГО:
9094,2 + 190 + 285 + 2190 = 11759,2 $

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

Тайм-шит

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

Какие столбцы заносятся в табель:

  1. Название задачи.
  2. Время начала выполнения задачи.
  3. Комментарии или детали задачи.
  4. Время окончания задачи.
  5. Аналитический столбец.

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

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

Одним из ярчайших представителей такого рода программ является ЛидерТаск. Попробуйте его в действии прямо сейчас:

Пройдите тест и получите гарантированный бонус!

Вопрос

Поздравляем, вы прошли тест!

Вы в курсе как правильно управлять и планировать, но совершенству нет предела. Именно поэтому мы дарим вам скидку 15% на нашу программу, с которой вы будете на самой вершине эффективного управления.

Ваш купон для покупки:

Fromtest

Купить со скидкой

Поздравляем, вы прошли тест!

Поздравляем, вы прошли тест!

Вы на начальном пути к эффективному управлению, но чтобы стать Гуру на 100%. Вам предстоит идти дальше, учиться и нарабатывать навык. Мы дарим вам книгу «Секреты управления временем» и верим, что в ближайшее время вы постигнете азы эффективного управления.

Скачать книгу

Понравилась статья? Поделить с друзьями:
  • Как найти площадь поверхности куба формулы
  • Как найти ранг матрицы с параметром
  • Как найти энергию активации графически
  • Как найти лучшие билеты на самолет
  • Как можно найти любимый фильм