LINUX.ORG.RU

Сколько строк кода в месяц пишут на Си

 , , ,


1

3

Интересует, сколько (примерно) строк _рабочего_ кода в месяц - нормальный результат для разработчика фуллтайм? Считается, что область применения разработчику достаточно хорошо известна.

★★★

Последнее исправление: conalex (всего исправлений: 1)

Ответ на: комментарий от conalex

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM «AS IS» WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

процитирую тебе кусочек GPLv3

Harald ★★★★★
()
Ответ на: комментарий от Dudraug

Да, переписывал. Cocomo вроде как учитывает переписывание, поэтому и дает достаточно точное время разработки на основе количества строк кода.

15 строк - это, конечно, итоговое кол-во строк в день, которое как раз и останется в коде.

Xintrea ★★★★★
()
Ответ на: комментарий от conalex

область применения разработчику достаточно хорошо известна

но вод ведь какая штука - не написав ни строчки, ты не сможешь предъявить результат, задача не будет решена.

Бывают такие области применения, где не так уж и важно, за сколько конкретно будет выдан результат. Пара-тройка месяцев (или больше) туда-сюда не должна напрягать. Гораздо важнее - чтобы работало стабильно и проект мог потом развиваться без проблем за счет грамотно спроектированного кода. Большинство Си-шных проектов, вроде как, из этой серии...

И не надо сравнивать «хеловорлд» с реальными задачами - это демонстрирует только шаблонность мышления. Это когда все задачи программирования рассматриваются как нечто однородное - что можно взять и причесать под одну гребенку.

vinvlad ★★
()
Ответ на: комментарий от conalex

... ну и повторю, интерес к вопросу не столько меркантильный, сколько человеческий - просто хотелось услышать примеры, кто на что (был когда-либо) способен.

Понимаете, под настроение можно спокойно выдавать строк по 500 кода в день. Но только в течении какого-то пикового периода разработки - когда мозг постоянно погружен в задачу и работает на повышенных оборотах. Вот только потом за этим обязательно последует период отдыха...)

Но вас же интересует не пиковая производительность, а средняя. Так что, не надо лукавить.

vinvlad ★★
()

про индусов в microsoft уже шутили?

while true do
  begin
    sleep(30);
    break;
  end;
...

kickass
()
Ответ на: комментарий от tailgunner

Сколько народа недавно спустились с деревьев и не слышали о CoCoMo.

Можно много всяких методик расчета задним числом напридумывать ) Вот только надо еще понимать, где и что можно реально применять - чтобы в лужу потом не сесть и не угробить проект просто из-за слишком «оптимистичных» оценок.

Иногда можно просто прикинуть «на глазок», потом умножить это дело на четыре-пять - и это будет гораздо более адекватная методика расчета )))

vinvlad ★★
()
Ответ на: комментарий от vinvlad

Иногда можно просто прикинуть «на глазок», потом умножить это дело на четыре-пять

- Петька, приборы!
- 15!
- Умножь на 4-5!
tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

отлично выполненная работа тоже не должна вознаграждаться

Ты удивишься, но таки да. Опыты на людях показывают, что штрафы/премии понижают продуктивность сколько-нибудь думательной деятельности.

DonkeyHot ★★★★★
()
Ответ на: комментарий от Xintrea

получим 15 строк в день

Эта формула (Person-Months = 2.4 * (KSLOC**1.05)) даёт т.н. «efforts». Даже без менеджмента это должно бы включать придумывание, документирование, тестирование, и хзчто еще. Если последние хорошо специализуются и исполняются отдельными людьми, не пишущими непосредственно код, эти 15 следует разделить на «кодоёмкость». Поверхностный гуглёж говорит о 5..35%, в зависимости от кучи факторов. Это даёт 300...43 строки в день. Я бы сказал, что можно рассчитывать на 150, при умеренной дозе оптимизма.

DonkeyHot ★★★★★
()
Последнее исправление: DonkeyHot (всего исправлений: 1)
Ответ на: комментарий от Dudraug

конечное кол-во строк кода, а где же промежуточное

Оно там в «1.05» спрятано.

DonkeyHot ★★★★★
()
Ответ на: комментарий от tailgunner

- Петька, приборы!
- 15!
- Умножь на 4-5!

Меня как-то один знакомый клиент попросил помочь ему с поиском исполнителей на его новый бизнес-проект. Ну нацарапал он какое-то подобие тех-задания - в меру своего смутного понимания :) - и начал рассылать его в разные фирмы... При общении с одной произошёл курьезный случай ) Менеджер фирмы случайно прикрепил к ответу не только файл с «официальными» оценками трудозатрат, но и аналогичный файл «для внутреннего пользования», где цифры были в разы поменьше ))). Пришлось втолковывать клиенту, что никто из программистов, будучи в здравом уме, не вывалит заказчику «оптимистичные» цифры.

Так что, взрослые люди именно так и работают. А вообще, если и можно всерьез полагаться на какие-то методики, то только на такие, где на программиста действительно закладывается строчек 10-15 кода в день, плюс, время на «подумать» )

И уж точно не следует воспринимать результаты расчета трудозатрат по всяким методикам как показания точных приборов - это, скорее, просто способ прикинуть, сколько денег запросить, чтобы не пролететь.

vinvlad ★★
()
Ответ на: комментарий от Dudraug

Кол-во кода вообще не является метрикой, ВООБЩЕ. Есть только одна метрика - это поставленные задачи и то как они решаются

Статистика (доступная нам в результатах её анализа из википедий) говорит, что и «поставленные задачи» и время работы лучше всего(из доступных измерению параметров, вероятно) корелируют с кол-вом строк. Да, связь странная, непонятная и антиочевидная. Но если она какая-то есть, то проявляется в именно так. Вероятно, во многих случаях остальные факторы как-то самоустраняются из «истинных» уравнений.

DonkeyHot ★★★★★
()
Последнее исправление: DonkeyHot (всего исправлений: 1)

Всё не так делается. Надо измерять эффективность написанного кода на реальной работе. Вот, к примеру, сколько простаивает в очереди запрос в ожидании обработки. И бить током разработчика за это ответственного в ягодичные мышцы через стул. По времени простоя. Чем больше очередь, тем сильнее бить. И всё будет быстро и замечательно работать.

crutch_master ★★★★★
()
Ответ на: комментарий от Virtuos86

Так это хорошая обратная связь. Чего-то такого любой пользователь желает разработчику.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 2)

BitBucket говорит, что за год я написал 300 тысяч строк кода и удалил 120 тысяч. Язык Java

anonymous
()
Ответ на: комментарий от vinvlad

История прикольная, но я не понял, причем тут CoCoMo.

точно не следует воспринимать результаты расчета трудозатрат по всяким методикам как показания точных приборов

Тоже см. выше.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

... но я не понял, причем тут CoCoMo.

точно не следует воспринимать результаты расчета трудозатрат по всяким методикам как показания точных приборов

Тоже см. выше.

Просто не надо слишком буквально воспринимать всё, что с пафосом декларируется в различных наукообразных «моделях». Какой только ерундой люди не занимаются, чтобы, к примеру, дисер защитить или там какое-нибудь очередное научно-академическое звание заполучить, плюс, надбавку к зарплате. Потом, естественно, всем этим загаживают мозги наивным студентам и прочим читателям, у которых своей головы на плечах нет и отсутствует способность к самостоятельному мышлению даже в той области деятельности, к которой они имеют непосредственное отношение. Вот этих последних скорее и можно отнести к категории «недавно спустились с деревьев».

vinvlad ★★
()
Ответ на: комментарий от tailgunner

модель, которая основывается на числе строк кода

Там не про неправильную модель, а про плохо подобранные цифры.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

А здесь, в этом топике - о том, что количество LOC вообще бессмысленно.

tailgunner ★★★★★
()
Ответ на: комментарий от DonkeyHot

Статистика (доступная нам в результатах её анализа из википедий) говорит, что и «поставленные задачи» и время работы лучше всего(из доступных измерению параметров, вероятно) корелируют с кол-вом строк.

Ну само собой если задача сделана, то скорее всего это ведет к увеличению строк кода. Иногда наоборот, но чаще именно так. Но вот вопрос, можно ли сказать кто лучше поработал тот кто написал 100 строчек или 1000? Учитывая, что ценность каждой строки в каждом конкретном случае совершенно различна, то кол-во строк нам мало говорит о том насколько хорошо поработал работник.

Dudraug ★★★★★
()
Ответ на: комментарий от conalex

но вод ведь какая штука - не написав ни строчки, ты не сможешь предъявить результат, задача не будет решена.

Я могу удалить строчку, или заменить ее на другую=) Это тоже работа.

ты знаешь, как написать хеловорлд на си? ты можешь сказать, сколько тебе потребуется времени, чтобы показать результат - рабочий код хеловорлда и какого он будет объема? думаю, да. почему? потому что

Не бери крайние случаяи. Обычно оценки в разработке ПО очень примерные и имеют довольно внушительный рендж. Если не вдаваться в методики оценки кода, то в общем случае это (оптимистичная оцнка)+(оценка рисков).

поправь меня еще раз, если я ошибаюсь.

А вот тебе пример из жизни.

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

Было два варианта написать код вручную под конкретное железо(под другое железо имплементация уже была), или использовать библиотеку. Использование библиотеки подразумевало: 1) изучение ее API; 2) написание статического(на хардкоде) тестового примера; 3) изучение точности вычислений; 4) измерение перформанса; 5) написание доп. кода (либа требует другое размещение в памяти и немного доп. мат. действий). 6) тестирвание этого препроцессинга на точность и перформанс 7) склеивание всего вместе 8) тестирвоание 9) подбор лучшей конфигурации 10) небольшие оптимизации.

В итоге на написание реализации с библиотекой ушло если и меньше времени, чем если бы мы писали сами, то не значительно.

В итоге мы имеем реализацию под либу на 50 строк. И потенциально 500-1000 строк кода в ручной реализации от которой мы отказались. Время почти одинаковое ушло бы. Задача решена.

Объяснять чем либа лучше своего костыля надо?

И вот теперь вопрос, можно ли считать, что человек сделавший это через либу в 50 строк поработал в 10 раз хуже того кто сделал это вручную?=)

Dudraug ★★★★★
()

Очень плохая идея оценивать разработчика по кол-ву строк в месяц.

sergej ★★★★★
()
Ответ на: комментарий от Dudraug

кто лучше поработал?

Это оффтопик, в оригинальном вопросе об этом ничего не было. Анонимус с первой страницы, притащил этого «strawman"а, и вы зачем-то с ним боретесь.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

В топике вопрос о том сколько строк пишет разрабочик на си и си++ в месяц. Очевидно, что ответ «сколько угодно». Это может быть и 5000, и 1000, и 50. И одно, и второе, и третье - это норма.

Dudraug ★★★★★
()

Вообще тут в вопросе фундаментальная ошибка. Основная работа программиста - это не писать строчки кода, а решать инжереные задачи. И время тратится именно на решение задач и проблем. Строчки - это лишь метод решения.

Dudraug ★★★★★
()

Оценивать программиста по строчкам кода - это тоже самое, что оценивать таксиста по кол-ву км которые он проехал.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

все модели оценки «неправильные»

Думаю, неточность != смещённость.

DonkeyHot ★★★★★
()
Ответ на: комментарий от Dudraug

В топике вопрос о том сколько строк пишет разрабочик

Да. Без какого бы то ни было намёка на попытку оценки его по этому параметру.

DonkeyHot ★★★★★
()
Последнее исправление: DonkeyHot (всего исправлений: 1)
Ответ на: комментарий от DonkeyHot

Так ответ в том, что ответа на этот вопрос нет, именно потому что в зависимости от задач и специфики по разному=)

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

что ответа на этот вопрос нет

Средний по планете всегда есть. Если эти «в зависимости» поуточнять, можно получить средние по больнице, палате, полу, национальности, третьей букве логина, возрасту, чему угодно ещё. При достаточном кол-ве/точности параметров можно даже работающие формулы получить. Специальная наука для этого есть.

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

штрафы/премии понижают продуктивность сколько-нибудь думательной деятельности.

от каждого по способностям, каждому по потребностям? или всем одинаково?

anonymous
()
Ответ на: комментарий от Dudraug

вот опять двадцать пять. для чего я написал

Считается, что область применения разработчику достаточно хорошо известна.

???

дружище, послушай ДонКихот'а

В топике вопрос о том сколько строк пишет разрабочик

Да. Без какого бы то ни было намёка на попытку оценки его по этому параметру.

conalex ★★★
() автор топика
Ответ на: комментарий от Dudraug

с тем же успехом можно сказать, что основная задача таксиста - изучать город и подъезды к учреждениям, обстановку с пробками, погодные условия и вопще - истрорию наземного транспорта в конкретно взятой стране, а не катать пассажиров. еще бы! это намного важнее! а если кто спросит скольких пассажиров ты отвез за месяц - слать лесом.

conalex ★★★
() автор топика
Последнее исправление: conalex (всего исправлений: 1)
Ответ на: комментарий от conalex

вот опять двадцать пять. для чего я написал

Еще раз, «область применения хорошо известна» - это тоже самое, что сказать «человек всегда знает все что произойдет завтра». Еще раз ТАК НЕ БЫВАЕТ, НЕ.БЫВАЕТ. Всегда есть то что инженер не знает и иследует. Или мы говорим про стажеров-студентов и монкей-кодеров.

В топике вопрос о том сколько строк пишет разрабочик

Так еще раз, ответ по разному. Совершенно. В один месяц я могу 4000 написать, в друго 500. А подсчитать среднее, ну я не знаю... это как средняя зарплата ей богу.

Dudraug ★★★★★
()
Ответ на: комментарий от conalex

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

Dudraug ★★★★★
()
Ответ на: комментарий от conalex

И что ты заладил как мантру про «область применения хорошо известна». Ты хоть раз занимался разработкой отличной от того чтобы загодить что тебе скажет под диктовку синьор? Архитектурными, инфраструктурными задачами, разработкой фич, оптимизацией под реал-тайм, оценкой сроков?

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

Для продумывания архитектуры есть синьоры и архитекторы. Если бы мне было интересно узнать про их работу - я бы спросил «сколько архитектурных решений нормально выдавать за месяц». но не спросил. догадываешься - почему?

синьоры и архитекторы - тоже программисты, конечно. Но тогда и диспетчер таксопарка - таксист.

conalex ★★★
() автор топика
Ответ на: комментарий от Dudraug

это может быть слабо связано (если я верно понял) в какие-то из дней в году, когда удалось развести жирного клиента на бабло. но говорить, что зарплата таксиста слабо связана с откатанными километрами вопще - может говорить только «архитектор» 3)

conalex ★★★
() автор топика
Последнее исправление: conalex (всего исправлений: 1)
Ответ на: комментарий от conalex

синьоры и архитекторы - тоже программисты, конечно. Но тогда и диспетчер таксопарка - таксист.

Ты вообще сколько работал в программирование. Даже мидл решает архитектурные, инфрастуктурные, оценночные, оптимизационные задачи, очень часто на равне с синьором. Или тебя интересует только производительность джуниоров? Назови тогда хотя бы область=) Ты же понимаешь, что клепать запросики к бд и запиливать реал-тайм код под новые стандарты связи например - это сильно разные области.

Dudraug ★★★★★
()
Ответ на: комментарий от Dudraug

Ты хоть раз занимался разработкой отличной от того чтобы загодить что тебе скажет под диктовку синьор?

встречный вопрос - ты вопще код-то писал когда-нибудь?

не. вот серьезно. накинь оценку сколько кода ты написал за свою профессиональную карьеру программиста? это несложно. тут вон народ с удовольствием делится. и ты давай поделись, раз уж так.

заметь, ответ на вопрос «сколько кода ты написал» не предполагает рассуждений о его качестве. линеек сколько и все.

conalex ★★★
() автор топика
Последнее исправление: conalex (всего исправлений: 1)
Ответ на: комментарий от Dudraug

бгг. а ты - сколько?

какая разница - какая область? сказано же

Считается, что область применения разработчику достаточно хорошо известна.

бгг.

conalex ★★★
() автор топика
Последнее исправление: conalex (всего исправлений: 1)
Ответ на: комментарий от conalex

но говорить, что зарплата таксиста слабо связана с откатанными километрами вопще - может говорить только «архитектор»

Там слишком много других факторов которые влияют на зарабатывание бабла. Прям совсем много, я на такси катаюсь часто и вижу насколько по разному работают таксисты. Ты платишь таксисту в яндекс-такси фиксированную сумму, она не сильно завист от того каким маршрутом поедет таксист и как простоит в пробке. таксист может же как дебил поехать по навигатору или зная город объехать пробки и светофоры сэкономить себе же минут 10, а потом быстро подъехав на след заказ еще минут 5. Итого 15 спасеных минут за поездку. в итоге там где один таксист отвезвет 2 пассажиров, другой отвезет 3-4. Еще и за счет скила потратит меньше бензина.

Dudraug ★★★★★
()
Ответ на: комментарий от conalex

Я прилично, мне в голову никогда не приходило считать кол-во строк которые кто-то, будь то студент или синьор, пишут за месяц. Даже не интересовало. Просто даже мысли такой не было.

Dudraug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.