Agile метрики. Часть 4: Метрики из инструментов контроля версий (Source Control tools)

Продолжаем рассматривать agile метрики. В предыдущих частях мы рассмотрели: метрики из Agile Project Tools, метрики Lean Kanban. В этой части мы познакомимся с метриками из инструментов контроля версий.

Системы контроля версий являются фундаментальной частью любой разработки программного обеспечения. Их используют все, даже люди, которые занимаются разработкой самостоятельно, поскольку им также необходимо видеть историю версий и иметь возможность осуществить откат. Существует два распространенных типа систем контроля версий: централизованные системы контроля версий (CVS, такие как SVN) и распределенные системы контроля DVCS, так как они предлагают некоторые важные преимущества. В рамках данного руководства предположим, что используете или можете получить доступ к данным в DVCS. Если вы используете CVS, то у вас будет гораздо меньший набор полезных данных, а так же вы столкнетесь с некоторыми врожденными проблемами, поэтому я рекомендую перейти на DVCS, как только будет возможность.

Количество и процент принятых пул-реквестов (merged pull requests)

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

Продолжительность открытых пул реквестов

Это среднее время, в течении которого пул реквест остается в открытом состоянии. Это одна из интересных метрик “Златовласки”, потому что вы хотите чтобы она была не слишком большой и не слишком низкой, а находилась где-то посередине. Если пул реквесты открыты в течении длительного времени, это может указывать на то, что из-за чьей-то работы ведется много длительных обсуждений. И хотя обсуждения это хорошо, вы не хотите чтобы они продолжались вечно: решение должно быть принято. Если каждый пул реквест находится в открытом состоянии в течении недели, команде будет очень тяжело выполнить значительный объем работы. С другой стороны вы не хотите чтобы этот показатель был низким. Если каждый пул-реквест закрывается за пять минут, это говорит о том, что его никто не просматривает и не проверяет. Это может быть из-за того, что команда неэффективно взаимодействует или из-за того, что кто-то изводит команду, что они “поторопились и продолжали работать!” В любом случае, высокий или низкий показатель – плохой знак, и вам с командой нужно выяснить причину.

Как использовать эту метрику

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

Количество комментариев на пул реквест

Этот показатель немного похож на предыдущий, то вместо измерения среднего времени которое пул реквест открыт мы определяем среднее количество комментариев к пул-реквесту. Также вы должны хотеть чтобы это значение было не слишком высоким (что указывает, что в команде есть проблемы, если кто-то получает 12 комментариев каждый раз при отправке пул-реквеста), но и не слишком низким (если каждый кто отправляет пул реквест получает один или ноль комментариев, значит никто их не смотрит). Используйте этот показатель так же как и продолжительность открытого состояния пул реквеста. Ваша DVCS должна рассчитывать и показывать автоматически этот показатель.

Добавления и удаления кода

Ваша DVCS должна иметь график, который показывает изменения кода (добавления и удаления) с течением времени, обычно измеряемый в CLOC (количество измененных строк кода). Это хороший показатель, на который стоит регулярно обращать внимание. Вы должны искать не только частоту и количество, но и закономерности. По выходным много скачков? Люди работают сверхурочно, что не есть хорошо. Много добавлений и нет удалений? Возможно никто не занимается рефакторингом (поскольку рефакторинг обычно приводит к уменьшению строк кода в системе). Помните, что исходный код – не актив, а ответственность. Лучшая система имеет минимум строк кода, а не миллионы.

Продолжение

В следующей части мы рассмотрим метрики связанные с инструментами CI/CD.