How Much Do You Pay Per Line of Code?

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Да, я знаю, “количество строк кода” (LoC) - это очень неправильная метрика. Существует множество статей, написанных об этом, а также известные книги. Однако, я хочу сравнить два проекта, в которых я недавно участвовал, и обсудить некоторые очень интересные цифры.

Первым проектом, в котором я принимал участие, был выполнен традиционной группой программистов, расположенных в одном месте. Их было около 20 (я не считаю менеджеров, аналитиков, владельцев продукта, SCRUM-мастеров и т. д.). Проект представлял собой сайт аукционов с довольно высоким трафиком (более двух миллионов просмотров страниц в день).

Размер основного кода составлял около 200 000 строк, из которых 150 000 были на PHP, 35 000 на JavaScript, а остальные на CSS, XML, Ruby и еще что-то. Я считаю только непустые и без комментариев строки кода, используя cloc.pl.

Это был коммерческий проект, поэтому я не могу раскрыть его название.

Команда находилась в одном офисе в Европе, где все работали “с девяти до пяти”. У нас были встречи, обеды, разговоры вдвоем и много других неформальных коммуникаций. Все задачи отслеживались в JIRA.

Второй проект был открытым исходным кодом на языке Java, разработанным крайне распределенной командой из примерно 15 разработчиков. У нас не было никаких чатов или других неформальных коммуникаций. Мы обсуждали все в вопросах GitHub. Основной код был значительно меньше, всего около 30 тысяч строк, из которых около 90% составлял Java, а остальное - XML.

Оба проекта размещали свои кодовые базы на GitHub. Обе команды разрабатывали в ветках функциональности - даже для небольших исправлений.

Обе команды использовали автоматизацию сборки, непрерывную интеграцию, предварительные сборки, статический анализ и код-ревью. Это указывает на зрелость команд проектов.

Оба проекта удовлетворяли требованиям своих пользователей. Я упоминаю это, чтобы подчеркнуть, что оба проекта создавали ценный и полезный код. Здесь не было мусора и почти не было дублирования кода.

В обоих проектах моя роль называлась главным архитектором, и я знал их финансовые детали. Кроме того, у меня был доступ к обоим репозиториям Git, поэтому я мог измерить, сколько новых строк (или измененных строк) было внесено обеими командами, скажем, за три месяца.

Теперь давайте посмотрим на цифры.

Первый проект (технический) платил примерно 50 000 евро ежегодно хорошему разработчику, что составляло около 5600 долларов в месяц или 35 долларов в час. Второй проект (крайне децентрализованный) платил от 20 до 35 долларов в час только за выполненные задачи в соответствии с одним из принципов XDSD.

Первый проект за три месяца создал 59 тысяч новых строк и удалил 29 тысяч изменений в ветке “master”, что в сумме составляет 88 тысяч строк кода. Для создания этих строк понадобилось около 10 000 человеко-часов (20 программистов, три месяца, 170 рабочих часов в месяц) - что составляет примерно 350 тысяч долларов. Следовательно, проект обошелся в немалую сумму.

Во втором проекте за тот же трехмесячный период было создано 45 тыс. новых строк и удалено 9 тыс., что в сумме составляет 54 тыс. Для завершения этой работы мы потратили всего лишь 7 тыс. долларов (примерно 350 рабочих часов в 650 задачах). Таким образом, стоимость проекта составила всего лишь:

Это также означает, что программисты писали примерно 150 строк в час или более тысячи в день. The Mythical Man-Month говорит о 10 строках в день, что в сто раз меньше, чем мы видели в нашем проекте.

How to Validate the Numbers?

Если вам интересно, я использую hoc, чтобы получить числа из Git (об этом рассказывается вместо SLoC в проекте Hits-of-Code). Вы можете проверить числа для второго проекта на GitHub: jcabi/jcabi-github.

Что я пытаюсь выразить с помощью этих чисел, так это то, что распределенное программирование гораздо более эффективно с точки зрения денег, чем команды, работающие в одном месте. Опять же, я слышу, как вы говорите, что «линия кода» не является правильной метрикой. Но, давайте быть серьезными, $0.13 против $3.98? В тридцать раз дороже?

Сейчас речь уже не идет о метриках. Речь идет о предотвращении расточительных часов работы и огромной потере денег, которая с ними связана.

Конечно, просто сказав своим программистам работать из дома и никогда не приходить в офис, вы не сможете достичь тех же результатов. XDSD не о том. XDSD основана на строгих принципах качества, которые должна соблюдать вся команда.

И когда эти принципы соблюдаются, вы платите в тридцать раз меньше.

Кстати, вот что говорят люди о своих проектах:

“$15–40: betterembsw.blogspot.nl

(Note: The translation remains the same as it is a technical term and a proper noun.)

Какие у вас числа? Пожалуйста, оставьте свои комментарии ниже.

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-17 at 16:45

sixnines availability badge   GitHub stars