Original size 1140x1600

Fix, Commit, Repeat. Анализ исправления багов в процессе разработки

PROTECT STATUS: not protected
The project is taking part in the competition

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

big
Original size 962x223

График коммитов в GitHub, использование heatmap в реальной жизни

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

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

Это попытка визуально зафиксировать ритм разработки и показать, как выглядит коллективный цикл fix, commit, repeat на уровне GitHub.

big
Original size 1140x376

1. Из чего состоит поток коммитов

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

Original size 1226x610

Высокая доля категории Other (~33%) показывает, что значительная часть коммитов не укладывается в простые шаблоны сообщений. Это отражает реальность разработки: коммит-месседжи часто пишутся на ходу, и стандартизация соблюдается не всегда. Поэтому далее анализ фокусируется на тех паттернах, которые можно надёжно выделить — один из таких bugfix-коммиты.

2. Ритм разработки: когда люди коммитят

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

Original size 1372x477

Heatmap коммитов любой части разработки

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

3. Когда чинят ошибки

Original size 1288x470

heatmap коммитов починки кода, так называемых bugfiхов

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

Тепловая карта bugfix-коммитов позволяет выделить не только общий ритм исправлений, но и конкретные пики активности. Основной максимум приходится на дневные часы будних дней, приблизительно с 12:00 до 15:00 UTC. Этот период совпадает с активной фазой разработки и тестирования, когда обнаруженные ошибки оперативно исправляются и фиксируются в репозитории.

Помимо основного пика, на графике отчётливо видны вторичные вечерние пики, особенно в промежутке с 19:00 до 22:00 UTC. Их наличие указывает на то, что исправления ошибок часто продолжаются за пределами стандартного рабочего дня. Такие пики могут быть связаны с дедлайнами, интеграцией изменений, сборками или срочными хотфиксами, когда стабильность проекта становится критичной.

4. Моменты суеты

Чтобы проверить гипотезу о «декабрьском разгоне», которая явно есть хотя бы у студентов вышки, сравним динамику коммитов в декабре и июле (как базовом спокойном месяце) для 2020 годов. Данные агрегируются по дням, а сэмплируются до 25000 коммитов на каждый месяц, чтобы сохранить сопоставимость и не перегружать обработку.

Original size 1359x600
Original size 1539x596

График отражает среднее количество коммитов по дням месяца для июля и декабря 2020 года. Даже при ограниченном объёме данных можно заметить различия в характере активности между «нейтральным» летним месяцем и концом года. В июле активность выглядит более ровной: после краткого спада в начале месяца поток коммитов стабилизируется и демонстрирует повторяющиеся недельные колебания. Это соответствует относительно предсказуемому рабочему ритму без выраженных внешних триггеров. Декабрь, напротив, показывает более неровный и импульсивный профиль. Уже в первой половине месяца заметны резкие всплески активности, включая выраженный пик в середине месяца. Такие пики могут быть связаны с подготовкой к релизам, закрытием задач и попытками завершить работу до конца года.

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

We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more