Волшебные метрики для разработчика: как взглянуть правде в глаза и стать продуктивнее
Ты — разработчик. Тебе кажется, что код летит со скоростью света, баги исчезают на расстоянии взгляда, а дедлайны сами переносятся? Поздравляю! Ты в мире иллюзий. Настало время применить волшебные метрики, которые мгновенно раскроют твои скрытые проблемы и помогут стать продуктивнее. Держись, мы погружаемся в магию цифр и статистики!
1. Количество Commits на задачу (Commits per Task) Как узнать, когда ты страдаешь от синдрома “победить баг через серию магических действий”? Если ты видишь, что на одну задачу уходит 25 коммитов, а в комментариях к ним можно составить мемуары, то вот она — твоя проблема. Правильная метрика: 3-5 коммитов на одну задачу. Всё, что выше — это магия вуду, а не разработка. Собирайся с мыслями и чаще коммить осмысленно.
2. Среднее время между багами (Mean Time to Bug) Сколько проходит времени между тем, как ты закрываешь баг и открываешь следующий? Если это время измеряется в минутах — значит, где-то на твоём столе лежит амулет проклятых билдов. Хороший знак — когда между закрытием одного бага и открытием нового проходит хотя бы день. Если же баги начинают появляться быстрее, чем кофе остывает на столе, пора задуматься о качестве кода.
3. Velocity (Скорость спринта) Ты справляешься с задачами так быстро, как хотелось бы? Внимание, это не магическая метрика, которую можно подменить настройками в Jira. Velocity — это реальная оценка твоей продуктивности. Если из спринта в спринт твоя скорость падает, скорее всего, ты уже заблудился в темном лесу дебагинга и рефакторинга. Попробуй не брать на себя слишком много задач и сосредоточься на тех, что действительно важны.
4. Cycle Time (Цикл выполнения задачи) Сколько времени проходит с момента, как ты взял задачу в работу, до момента её сдачи? Если ты взял баг, а закрыл его только спустя неделю, может, ты не разработчик, а хранитель склепа задач. Следи за Cycle Time и стремись сократить это время, чтобы каждый день приносил ощутимые результаты. Если цикл затягивается, раздели задачу на более мелкие этапы. Маленькие победы лучше, чем затяжные войны.
5. Code Churn (Трепет кода) Сколько кода ты переписываешь после первого коммита? Если тебе приходится переписывать больше 30% того, что ты уже написал, это тревожный знак. Зачастую это означает, что ты кодишь без плана — как волшебник, который читает заклинание с оборванного свитка. Прекращай кастовать рандомные куски кода и начинай планировать архитектуру до того, как ударишь по клавишам.
6. Pull Request Review Time (Время ревью) Сколько времени уходит на проверку твоих Pull Request'ов? Если твои PR висят, как тёмное облако над всей командой, есть шанс, что коллеги просто боятся в это погружаться. Оптимальное время на ревью — не больше суток. Если же это занимает неделю, может, ты написал не код, а целую трилогию в духе «Властелина колец». Держи PR короче, проще и понятнее.
7. Bug Rate (Процент багов на код) Как часто после твоих релизов находят баги? Здесь всё просто: если каждая вторая строка кода — это новый баг, значит, кодить ты начал на тёмной стороне Силы. Отследи количество багов после каждого релиза и стремись к их сокращению. В идеале — меньше одного бага на релиз. Но не будем ставить сверхцели — на первом этапе хотя бы стремись к тому, чтобы багов было меньше, чем новых фич.
8. Time to Merge (Время с момента создания PR до его слияния) Сколько времени проходит с момента создания PR до его слияния? Если PR висит в ожидании merge, как неопределённый зельевар на экзамене в Хогвартсе, значит, ты теряешь драгоценное время. Оптимизируй процессы ревью и старайся добиваться, чтобы PR не зависал дольше суток.
9. Work in Progress (WIP) Limits Сколько задач ты ведёшь одновременно? Если у тебя в работе пять задач, и ни одна не движется к завершению — поздравляю, ты мастер жонглирования, но не продуктивности. Введение лимитов на WIP поможет сфокусироваться на завершении задач, а не на постоянном переключении контекста.
· 17.09.2024
Прям по пунктам поедем.
1. При разработке большой фичи или нужно заводить несколько веток (для подобного придумали TBD и ее вариации), или делать много коммитов. А коммитить лучше небольшими частями — все же так проще сделать откат в случае чего, отыскать коммит, где родилась какая-то бага или даже банально потом кто-нибудь может забрать нужную часть кода cherry pick’ом. В Вашем случае придется ждать пока вкатят еще один крупный коммит и тащить к себе фигову гору изменений.
2. Баги могут открываться часто при рефакторинге, например. Если про кривом ТЗ (или когда оно формируется «на лету»). В общем тоже фигню несете.
3. В адекватных командах 20-30% спринта закладывается как раз (неожиданно!) на рефакторинг. А продуктивность измеряется не количеством задач, а value в конце спринта — можно весь спринт возиться со сложной интеграцией, а можно набрать тасок в стиле «надо поле добавить»/«нам бы заголовочек пихнуть»/«кнопку надо перекрасить» — и по Вашей логике продуктивнее второй разработчик?
4. см. 3
5. Актуально только для Senior/Lead позиций или тех, кто имеет отношение к постановке задач. Обычно все прорабатывается еще на этапе планирования.
6. Кастомная реализация I2C нервно ржет в сторонке. А еще — если не TBDшите, то на объемных задачах PR будут тоже объемные.
7. См. пункт про динамически формирующиеся ТЗ (кстати, повторяетесь).
8. Опять повторяетесь. А еще упускаете момент запуска различных пайплайнов с автотестами. А еще мануальное тестирование. Или льем код без QA, негодник?
9. Стоило бы уточнить — какие именно задачи имеются ввиду. Одних долгоиграющих на онбординг новичков в любой крупной компании наберешь с десяток сразу. Или на планирование.
В общем не слушайте особо автора, дети. Очередной изнасилованный нейросетью маркетолог. Набирайтесь опыта в реальных командах, смотрите на процессы и выключайте мозг — и будет вам счастье.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён