Team Projector — считаем зарплату программистов и выходим в прибыль

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

Team Projector — считаем зарплату программистов и выходим в прибыль

Так вышло, что я очень люблю программировать. Вот уже 15 лет.

Пять лет назад у меня получилось собрать свою команду и начать разрабатывать ПО на заказ. Начиналось все с сайтов, интернет-магазинов, автоматизации бизнес-процессов для российского рынка (PHP, 1С, .NET), дальше — специализация на SPA приложениях Angular + Python для заказчиков из Европы и США.

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

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

Как известно, управлять можно только тем, что можно измерить, что в нашем случае значит: каждая задача должна иметь оценку выполнения (estimate) и фактическое время выполнения в часах (spent).

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

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

Чем же так выгодно когда в команде все «эстимейтят» и «спендят»?

  • Разработчик знает сколько времени работал и какую зарплату получит.
  • Разработчик может получить свою зарплату в любое время.
  • За успехи разработчику начисляются бонусы.
  • Лидер команды знает загруженность разработчиков, их прогресс и эффективность выполнения задач.
  • Менеджер знает затраты на разработку по итерациям и фичам — новым функциям системы.
  • Директор знает прибыль по проектам.
  • Клиент знает прогресс выполнения его проекта и расход бюджета.

Для постановки задач и учета рабочего времени еще в далеком 2016 году мы с командой начали использовать бесплатную community версию GitLab. Далее по API забирать данные в свою Postgres базу и делать сводные отчеты в Google Sheets. И этого хватало на первое время.

Казалось бы, в GitLab все отлично: задачи, итерации, ревью кода, сборки и т.д. — все в одном месте. Но по опыту получилось, что вести одновременно множество проектов и итераций в GitLab крайне неудобно.

У нас разработчики делятся на команды backend и frontend c собственными лидерами. Один и то же разработчик может быть одновременно задействован в нескольких проектах в разное время и т.д.

В GitLab просто нет единого места где можно посмотреть всю сводную информацию по всей компании.

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

Так появился,
Team Projector — открытая командная панель для GitLab, которая:

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

Немного скриншотов

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

В систему мы добавили несколько возможностей которых нет в GitLab:

  • Команды с лидером и разработчиками, например backend и frontend.
  • Тикеты — группировка множества задач для реализации законченного функционала. Задачи могут быть назначены на разных разработчиков, быть в разных проектах. Диаграмма Ганта позволяет понять какие фичи будут доставлены в срок.

  • Роли: лидер команды, менеджер проектов, владелец компании.

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

Но в конечном итоге, мы решили упаковать систему. На текущий момент у нас есть полностью работающая beta-версия — Docker образ с нормальной системой обновлений, так что развернуть и обновлять систему очень легко.

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

Если Вам интересно наше решение, заполняйте форму и мы свяжемся с Вами.

Планы на будущее

  • Матрица компетенций. Карьерный рост разработчиков — это важная часть процесса мотивации. Разработчик видит текущую позицию и часовую ставку, видит путь движения на другие позиции с требуемыми навыками и уровнем который нужно приобрести.
  • Геймификация. Плюшки за вовлеченность и интерес. Разработчик сам создал себе задачу, например, нашёл баг или предложил рефактор. Сам пофиксил, код был принят лидером — получи плюшку.
  • Кросс ревью кода. Система назначает ревью кода между разработчиками с похожими навыками.
  • Рабочие процессы. Например для создания фичи «Логин в систему» нужно осуществить целый процесс: создать задачу дизайнеру на макет и прототип, менеджеру нужно утвердить прототип с заказчиком, далее фронтенд разработчику нужно описать API (REST, GraphQL) который потребуется реализовать на бэкенде, бэкенд разработчику нужно реализовать API, фронт разработчику реализовать интерфейс используя рабочий API, далее тестировщику все проверить. Все задачи будут создаваться автоматически исходя из указанного в «фиче» шаблона процесса перед началом реализации.
  • Тегирование задач по навыкам исходя из описания. Какие навыки нужны чтобы успешно выполнить задачу. Например задачу: «изменить цвет кнопки» — легко выполнит Junior, т.к. навыки: base HTML, base CSS.
  • Автоматическое распределение задач между разработчиками на основании навыков и квалификации. Система находит разработчика исходя из его нагрузки и подходящих навыков для выполнения задачи.
  • Интерфейс заказчика с предоставлением отчета по расходованию бюджета и прогрессу проекта, уведомлениями о выпуске версий с реализованными фичами для проверки и создания списка замечаний.
  • Автоматическая генерация описания задач для программистов. Совместно с другим нашим продуктом — Spec Projector — единым местом формирования проектной документации для ИТ проектов.

Мы хотели выпустить качественный Open Source как дополнение к GitLab, и сейчас наша главная задача понять интерес и спрос на подобный продукт.

Очень интересно узнать Ваше мнение. Спасибо.
Взлетит
Не взлетит

Полезные ссылки

1212
12 комментариев

Красивое, конечно, решение и хорошая проработка.
Только одно НО.
"Справедливое начисление зарплаты" не должно быть привязано ко времени работы программиста.
Это должен понимать любой программист с хотя бы пару годами опыта.
Тут, конечно, есть вытекающие для предпринимателя проблемы – как считать справедливо (по времени, качеству кода, компетенциям, скорости и тд) и оставаться в плюсе, но это уже другой тред.

4
Ответить

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

Ответить

 Например задачу: «изменить цвет кнопки» — легко выполнит Junior, т.к. навыки: base HTML, base CSS.Потом оказалось, что на цвет кнопки был завязан event, что тупо уронило всю разработку на корню. )) Реальный кейс, кстати! ))

2
Ответить

Если только нет код-верью. В мастер изменения без пристального просмотра лидером никак не попадут ;-) Другие разработчики могут только апрувить, то есть говорить, что они согласны с изменениями. А вот если они их проглядели, тогда уже лидер им пришлет дизлайк :-)

1
Ответить

В данном случае справедливое наверное для всех, не только для программиста.

А вообще время - это элемент планирования. Если научится это делать, то это в т.ч. определенный элемент мотивации. Я пытался описать, чем это выгодно для всех. Мы по этой системе работаем уже 2 года и в целом очень привыкли.

Спасибо за отзыв ;-)

1
Ответить