Обычно плохая идея называть своего босса идиотом, поэтому мои предложения начинаются с понимания и обсуждения метрик, а не их отклонения.
Некоторые люди, которые на самом деле не считаются идиотами, использовали метрики, основанные на строках кода. Их использовали Фред Брукс, Барри Бём, Каперс Джонс, Уоттс Хамфрис, Майкл Фаган и Стив Макконнелл. Вы, вероятно, использовали их, даже если просто сказать коллеге, этот модуль Бога состоит из 4000 строк, его нужно разбить на более мелкие классы.
Есть конкретные данные, связанные с этим вопросом, из источника, который многие из нас уважают.
http://www.codinghorror.com/blog/2006/07/diseconomies-of-scale-and-lines-of-code.html
http://www.codinghorror.com/blog/2005/08/are-all-programming-languages-the-same.html
http://discuss.joelonsoftware.com/default.asp?joel.3.286106.22
Я подозреваю, что наилучшее использование строки кода в час программиста - показать, что в течение срока службы проекта это значение будет довольно высоким, но по мере обнаружения и исправления дефектов будут добавляться новые строки кода для решения проблем, которые не были частью первоначальных оценок, и строки кода, удаленные для устранения дублирования и повышения эффективности, покажут, что LOC / час указывает на вещи, отличные от производительности.
- Когда код написан быстро, небрежно, раздуто и без каких-либо попыток рефакторинга, видимая эффективность будет максимальной. Мораль здесь будет в том, что вы должны быть осторожны с тем, что вы измеряете.
- Для конкретного разработчика, если он добавляет или касается большого количества кода на этой неделе, на следующей неделе может возникнуть техническая задолженность, связанная с проверкой, тестированием, отладкой и переработкой кода.
- Некоторые разработчики будут работать с более стабильной скоростью, чем другие. Может оказаться, что они тратят больше всего времени на получение хороших пользовательских историй, очень быстро оборачиваются и проводят соответствующие модульные тесты, а затем оборачиваются и быстро создают код, ориентированный только на пользовательские истории. Суть в том, что разработчики методики, вероятно, быстро развернутся, напишут компактный код и не будут много переделывать, потому что они очень хорошо понимают проблему и решение, прежде чем начнут кодировать. Кажется разумным, что они будут кодировать меньше, потому что они кодируют только после того, как они обдумают это, а не до и после.
- Когда код оценивается на предмет его плотности дефектов, он оказывается менее равномерным. Некоторый код будет отвечать за большинство проблем и дефектов. Это будет кандидатом на переписывание. Когда это произойдет, он станет самым дорогим кодом, потому что благодаря этому высокая степень переделки. Он будет иметь наибольшее количество строк кода (добавлено, удалено, изменено, как может быть сообщено с помощью такого инструмента, как CVS или SVN), но затрачивает наименьшее количество чистых строк кода в час. Это может оказаться комбинацией кода, реализующего наиболее сложную проблему или наиболее сложное решение.
Независимо от того, как получаются споры о производительности программистов в строках кода, вы обнаружите, что вам нужно больше человеческих сил, чем вы можете себе позволить, и система никогда не будет завершена вовремя. Вы настоящие инструменты не метрики. Это использование превосходной методологии, лучшие разработчики, которых вы можете нанять или обучить, а также контроль масштабов и рисков (возможно, с помощью Agile-методов).