{"id":14281,"url":"\/distributions\/14281\/click?bit=1&hash=ab757d18c623a4013353d71493ed166f5261785dc223f01a84b7b3412c030874","title":"\u041a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u044e\u0442 \u0442\u0435\u043c\u043f\u044b \u0440\u043e\u0441\u0442\u0430 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u043a\u0438? ","buttonText":"","imageUuid":""}

Собственный планировщик из таск-трекера: визуализируем поток задач небольшой команды

Автор: Станислав Мозгель, руководитель отдела разработки диджитал-агентства DirectLine

В нашем отделе разработки 10 специалистов: 7 разработчиков, 1 веб-технолог и 2 менеджера проектов (PM). Работа команды организована по матричной структуре: каждый PM может ставить задачи разным разработчикам, а у каждого разработчика в плане могут быть задачи от разных PM. В таких условиях особенно важно, чтобы PM могли отслеживать план работы специалистов. В этой заметке расскажем, как мы упростили процесс планирования задач и времени разработчиков с помощью собственноручно созданного планировщика.

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

Как-то мы пробовали сменить матричную структуру на работу группами. Группа — 3-4 разработчика во главе с PM. Задачи и проекты у разных групп не пересекаются (кроме критических ситуаций и аварий). Выяснилось, что при наших масштабах такая структура не позволяет нам быть гибкими. Так, например, у одной группы могла накопиться очередь задач, а у другой в это же время — простой. Поэтому мы вернулись к матричной структуре, где между менеджерами и разработчиками налажена связь «многие-ко-многим». При этом на каждом проекте закреплен ведущий разработчик. Ему задачи отдаются с большим предпочтением, но при этом не исключается взаимозаменяемость и возможность подключить другого разработчика.

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

Готовых подходящих решений для Redmine мы не нашли.

Мы пользуемся Redmine очень давно. Он доработан специально под наши бизнес-процессы и имеет множество интеграций (различные дашборды, отчеты, личный кабинет клиента, биллинг и т.п.), поэтому уходить с него мы не собираемся, даже несмотря на мнение о том, что Redmine «сделан программистами для программистов». Признаемся: несколько попыток у нас уже было, но более удобного решения мы так и не нашли.

Требования к планировщику

Перед началом работы над планировщиком мы сформулировали необходимые требования:

Реализация

Сначала мы пару недель обкатывали подход в Google Календаре. Там мы вручную создавали события для каждой задачи. Потом разработали утилиту на Yii + fullcalendar.js, интегрированную с Redmine по API. Вот что получилось:

Результат

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

Таким образом, все описанные выше требования мы реализовали в нашем планировщике.

Планы

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

  • На выполнение задачи вообще не запланирован ресурс (PM забыл это сделать).
  • Время, запланированное на задачу в планировщике до даты дедлайна, не совпадает с оценкой задачи в часах (ошибка PM или изменение оценки в Redmine).
  • Тикет в Redmine закрыт, но в планировщике остались запланированные на него слоты (задачу сделали раньше, значит лишнее время можно освободить).

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

0
1 комментарий
Семен Смирнов

Непонятна ни проблема, ни что именно вы решили)
Для 7 разработчиков подойдёт любой трекер

Ищу на 100+

Ответить
Развернуть ветку
-2 комментариев
Раскрывать всегда