В нашей отрасли существует суеверное мнение, что подсчет LOC не имеет значения для измерения производительности разработчиков. В этой статье я развенчаю это убеждение и покажу, что это одна из важных метрик для измерения производительности. LOC — не единственная метрика, и есть исключения, когда она совершенно не важна, но она все равно гораздо важнее, чем утверждает большинство разработчиков, и отмахивание от ее неважности часто является костылем для ленивых разработчиков программного обеспечения, за который они прячутся, чтобы никто не заметил, что они не делают свою работу.
Однажды я работал в одной компании архитектором. В моей команде было 8 разработчиков, которыми я должен был управлять. Однажды я просмотрел все репозитории, чтобы оценить работу своей команды, и за 2 месяца во всей нашей кодовой базе было изменено 23 строки кода. 23 строки изменений за два месяца для 8 разработчиков. Средний показатель по отрасли составляет от 325 до 750 LOC в месяц на одного разработчика. Это означает, что моя команда в целом выполнила примерно 0,6% от среднего показателя по отрасли. Я попытался связаться со своим начальством по этому поводу, не называя имен и не обвиняя членов моей команды в чем-либо. Мне было сказано «прекратить выполнять работу. От меня не ожидали таких результатов». Через неделю я уволился…
LOC — не единственная важная метрика, и есть разработчики, которые делают отличную работу, даже если они редко или вообще никогда не коммитят код в ваши git-репозитории. Примером из Aista является Мохсен, который просыпается в 7 утра, работает без перерыва как минимум до 6 вечера и всегда доступен в случае необходимости. Однако его работа заключается не в фиксации кода, а в обслуживании нашего кластера Kubernetes, и он прекрасно справляется и с этим. Другими примерами могут быть инженеры по тестированию, которые могут отлично справляться со своей работой, даже если они редко, а то и вообще никогда не коммитят код в git-репозитории. Существуют и другие исключения из правил, когда разработчики программного обеспечения, которые никогда не зафиксировали ни одной строчки кода, могут быть чрезвычайно ценными для вашей организации, как это было показано выше на примере Мохсена. Однако если ваша работа заключается в создании программного обеспечения путем кодирования, и вы выдаете 2,6 строк кода в месяц, кто-то должен поговорить с вами о вашей производительности.
Отсюда следует, что когда (большинство) разработчиков программного обеспечения заявляют, что LOC совершенно не имеет значения, на самом деле они говорят следующее.
Я ленивый, я не люблю работать, но я люблю получать деньги.
В этот момент я гарантирую, что какой-нибудь разработчик программного обеспечения выскочит из леса и расскажет вам, что он создал бота для внесения одного изменения в свою кодовую базу, чтобы затем автоматически зафиксировать его в git — я должен знать, потому что это был единственный способ, с помощью которого кто-то смог обогнать меня на GitHub для страны Кипр. Подсчет LOC сам по себе бессмысленен по этим причинам, но наличие человека, который читает коммиты и проверяет, что люди действительно выполняют работу, проверяя изменения в кодовой базе, убеждаясь, что вещи действительно сделаны, имеет решающее значение для организации, которая сосредоточена на выполнении работы. И если кто-то в вашей организации сейчас возражает против этого утверждения, вам следует пересмотреть свою стратегию найма…
Свободные наездники или «серферы», не выполняющие свою работу, разрушают мораль всех остальных в вашей организации, поскольку каждый может ясно видеть своими глазами, кто выполняет и делает свою работу, а кто нет. Таким образом, LOC является одной из важных метрик для измерения производительности разработчиков. Это не единственная метрика, и есть исключения, где она не уместна, но она уместна как общее эмпирическое правило…
И сегодня измерить LOC очень просто благодаря Линусу Торвальдсу и git … 😉