Як правило, називати свого начальника ідіотом погано, тому мої пропозиції починаються з розуміння та обговорення показників, а не відкидання їх.
Деякі люди, які насправді не вважаються ідіотами, використовували метрики, засновані на рядках коду. Фред Брукс, Баррі Бум, Каперс Джонс, Уоттс Хамфріс, Майкл Фаган і Стів МакКоннелл усі ними користувалися. Ви, напевно, використовували їх, навіть якщо просто сказати колезі, що цей модуль Бог складає 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).