LINUX.ORG.RU
ФорумTalks

Стоимость строки кода в разных регионах и на удалёнке

 


0

1

Вопрос в контексте Agile разработки по ТЗ, которое может изменяться по ходу проекта. Нередко используют почасовую оплату за потраченное разработчиком время, а я предлагаю вместо этого в контексте поставленной задачи осуществлять биллинг за проделанную работу с помощью учёта количества строк кода, написанного для решения задачи.

Как думаете, сколько стоит качественный отлаженный DRY код в предметной области DevOps, соответствующий всем паттернам, best practices и т.п.?

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

Преимущества учета стоимости кода по количеству написанных строк в Agile-проекте

Учет стоимости кода по количеству написанных строк – подход, который периодически обсуждается в IT-среде, в том числе и в вашем прикреплённом обсуждении. Хотя в современной разработке этот метод считается спорным и не всегда применимым, у него есть определённые преимущества, особенно если речь идёт о специфических задачах (например, DevOps-скрипты, IaC, CLI-утилиты) и при правильной постановке процесса.

1. Прозрачность и простота расчётов

  • Лёгкость измерения: Количество строк кода – объективный, легко измеряемый показатель, который можно быстро получить с помощью инструментов анализа кода.
  • Понятная метрика для заказчика: Заказчик может видеть «осязаемый» результат работы, что важно для непогружённых в детали разработки людей.

2. Мотивация к эффективности

  • Фокус на результат: Такой подход мотивирует разработчика не растягивать задачи, а выдавать конкретный, измеримый результат.
  • Возможность сравнения: Можно сравнивать производительность между разными исполнителями или командами, если задачи типовые и стандартизированы.

3. Гибкость при изменении требований (Agile)

  • Простота пересчёта стоимости: При изменении требований (что часто бывает в Agile), можно быстро пересчитать стоимость, исходя из нового объёма кода.
  • Удобство для коротких итераций: В спринтах, где задачи дробятся на небольшие части, оплата по строкам может быть удобна для микрозадач (например, написание шаблонов, конфигов, скриптов).

4. Контроль качества (при правильной постановке)

  • Возможность учёта сложности: Если в стоимость строки закладывается качество (DRY, тесты, best practices), появляется стимул писать лаконичный и качественный код.
  • Быстрая оценка вклада: В проектах с большим количеством рутинных изменений (например, поддержка DevOps-инфраструктуры), этот подход позволяет быстро оценить вклад каждого разработчика.

5. Применимость к DevOps и инфраструктурным задачам

  • Стандартизированные задачи: В DevOps часто встречаются задачи, где результат – это скрипт или конфиг, и их объём хорошо коррелирует с трудозатратами.
  • Меньше риска «раздувания» кода: Если стоимость строки высокая и есть контроль качества (ревью, автоматические проверки), разработчики заинтересованы писать компактно и эффективно.

Важно!

  • Подход не универсален: Для сложных R&D-задач, архитектурных решений, оптимизаций, где ценность кода не в количестве, а в качестве и уникальности, этот метод не подходит.
  • Риски злоупотреблений: Без контроля качества возможен «честинг» – искусственное раздувание кода, копипаст, бессмысленные строки.
  • Лучше использовать в сочетании с другими метриками: Например, с оплатой за закрытие задач, code review, покрытие тестами и т.п.

Вывод

Учет стоимости кода по количеству строк может быть полезен в узких случаях – для стандартизированных, повторяющихся задач, особенно в области DevOps и инфраструктуры, при условии жёсткого контроля качества и прозрачных критериев оценки. В рамках Agile такой подход может упростить биллинг и сделать процесс более предсказуемым для обеих сторон, однако его не стоит рассматривать как универсальное решение для всех типов проектов.



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

Я за строку --- в ямле беру восемь баксов обычно, правда DRY не получается. За ... беру 5, там пикселей меньше.

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

по исследованиям: для разработки аи до 8 часов человеком не достижим, но после 8 часов (3 дня) это человек становится не достижимым.
то есть первые 3 дня резвись генерь нужный функционал аи, потом ищи человека который может разобратся в лапше (как ни странно код очень хорошо понимаемый) 3-4 часа это сутки готовь 20-40т.

s-warus ★★★★
()
Ответ на: комментарий от irton

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

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

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

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

В пикселях IMHO замороченно считать и лишь добавляет ненужный информационный шум в формулы расчётов.

Думаю, если посмотреть качественные DevOps проекты, сданые по почасовке, где нет лишних строк, код аккуратен, точен и компактен, посчитать в них стоимость строки кода, то в следующих похожих проектах на почасовке стоимость строки кода получится примерно такой же при прочих равных условиях.

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

По крайне мере это отражает трудоёмкость намного лучше чем вообще fixed price фантазии некоторых менеджеров взятые с потолка или ещё неведомо откуда.

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

sanyo1234
() автор топика
Последнее исправление: sanyo1234 (всего исправлений: 3)
Ответ на: комментарий от dmitry237

Стоимость привязана к коду региона.

На удалёнке ? В рублях за строку ? :)

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

Тебе следует серьёзно рассмотреть релокацию в Таджикистан.
Прекрасная страна, замечательные люди. (Знаю не понаслышке – со многими познакомился в поезде «Москва-Душанбе»).

Из плюсов: с твоими навыками ты легко найдёшь там работу на удалёнке.

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

Из плюсов: с твоими навыками ты легко найдёшь там работу на удалёнке.

А из других локаций не найду?

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

замороченно считать

А ты действительно девопс?

Или в джоб…
Там сразу прибегут 28 свиней и тебе предложат решение бесплатно.

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

А ты действительно девопс?

Написал скрипт, который считает непустые строки кода, длиннее 7 символов, без комментариев, и затраты времени в чате.

ЧЯДН?

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

Вопрос изначально некорректно поставлен. Написание кода у разраба при решении задачи занимает 20-40% общего потраченного времени. Особенно у девопса.

Судя по дальнейшим репликам ТС’а, клоунов ему поставили недостаточно.

t3n3t
()
Ответ на: комментарий от masa

Один инженер уровня Senior/Principal DevOps с соответствующей экспертизой стоит $15-25 в час

Вообще-то 35+, а там от компании (не региона) зависит. 15-25 это джун/миддл.

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

Вот из-за таких как ты нормальные пацаны на форуме и не могут поднять 300-500 в месяц…

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

Вот… Не понимаешь…

Знаешь решение? Ну и иди себе спокойно мимо.
Нерелоканта отправят в джоб, а там уже ему продадут всё что надо.

И что это вот ты такое написал? Однострочник?
Не мог всё тоже самое на полтораста строк размазать?
Типы объявить, классы импортировать, манифест-шманифест…
Два доллара за строчку и вот уже кто-то месячную норму сделал.

А тут ты весь такой в светлобирюзовом.
Стыдно должно быть с такими подсвинками в одном топике сидеть.

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

Написание кода у разраба при решении задачи занимает 20-40% общего потраченного времени.

А причём тут пропорции затрачиваемого времени?

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

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

Количество непустых строк с количеством символов от 7 и более считает? Считает. Компактный DRY/KISS код, что не так? :)

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

По моей методике расчёта комментарии ещё нужно убирать (в т.ч. закомментированный неиспользуемый код).

sanyo1234
() автор топика
Ответ на: комментарий от t3n3t

что не так?

Вот же ты упёртый.
Тебе уже даже на дЕньгах объяснили и всё никак…
Задай этот свой вопрос в джоб, пообещай хотя бы пятихаточку за решение…
Тебе очень быстро и БЕСПЛАТНО нахрюкают что не так.

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

затрат времени на обсуждение проекта отдельно

И при чем тут затрата времени на обсуждение? Я про непосредственно затрачиваемое на решение задачи время. Уже после обсуждения. Это когда мозгами пошевелить надо, прикинуть подходящие инструменты и способы реализации, как минимум. И много чего еще.

Или тебе при обсуждении рассказывают КАК нужно сделать задачу, а не ЧТО должно получиться в итоге? Тогда, конечно, можно строчить код нон-стоп, только это уровень интерна, которого поставили тестами кодовую базу описывать.

t3n3t
()
Ответ на: комментарий от sanyo1234

Добавить пару/тройку символов в регулярку, в зависимости от используемого языка, причем в тот же однострочник. Мда.

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

Добавить пару/тройку символов в регулярку, в зависимости от используемого языка, причем в тот же однострочник. Мда.

Вообще непонятно, на кой ты припёр в ветку свой недокод, и меряешься им. Он тут ненужен и неинтересен, даже если бы и решал задачу полностью.

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

Вообще никак не отражает. И никак не релевантно.

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

Внимание, вопрос: вот ты написал простыню кода согласно DRY/KISS/best-practices (что очень хорошо, тут я только за), а потом понял, что свернул не в ту сторону и придется переписывать. Будешь все вместе считать, и правильный код, и неправильный? По строкам? Каким образом ты объяснишь заказчику, что он должен заплатить за строки кода, которые не пошли в релиз? Не трудочасы, а выкинутые строки?

Вопрос со звездочкой: как ты докажешь существование этих строк заказчику в случае сквиша коммитов в репо перед мерджем в мастер-ветку?

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

Я? Меряюсь? Я поинтересовался сколько времени ушло на реализацию. Фига себе ЧСВ.

t3n3t
()

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

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

Внимание, вопрос: вот ты написал простыню кода согласно DRY/KISS/best-practices (что очень хорошо, тут я только за), а потом понял, что свернул не в ту сторону и придется переписывать.

Не припомню такого у себя. Возможно это специфика твоей работы, но я таким не занимаюсь к счастью.

Будешь все вместе считать, и правильный код, и неправильный? По строкам? Каким образом ты объяснишь заказчику, что он должен заплатить за строки кода, которые не пошли в релиз?

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

Не трудочасы, а выкинутые строки?

А выкинутые по твоей вине трудочасы запихнуть в счёт по твоему хорошо? Вот он твой attitude?

sanyo1234
() автор топика
Ответ на: комментарий от necromant

Как оценивать отрицательное количество строк будете?

Ну, это даже я могу забесплатно ответить…
Удалил сто строк кода?
Внеси в кассу по $15..25 за строчку, в зависимости от региона.

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

Ты что, всё это время весь этот свой бред писал ВСЕРЬЁЗ???

Твой бред про реллокацию в Таджикистан видел, да.

А где ты увидел тут мой якобы бред???

sanyo1234
() автор топика
Ответ на: комментарий от t3n3t

Вмешиваться в чужой диалог,

Именно этим ты и занимаешься, красуясь ошмётками своего ненужного в этой ветке кода.

sanyo1234
() автор топика
Ответ на: комментарий от frob

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

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

А выкинутые по твоей вине трудочасы запихнуть в счёт по твоему хорошо

Гримассы загнивающего капитализма.
На работу приходит опаздывая минимум на 15 минут, проходит через заднюю дверь, чтоб не зажопил начальник, час пялится в экран, после обеда тоже… В общем в неделю действительно работает где-то минут 15.

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

Возможно это специфика твоей работы, но я таким не занимаюсь к счастью.

Это специфика всей отрасли. Что-то мне подсказывает что ты в команде никогда не работал. Или с заказчиками, которые сначала все хотели в докере, но на днях увидели видос про подман. Хотя это уже из девопсовской специфики, я в оной ненастоящий сварщик.

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

Ииии… потраченное тобою же время по твоей супер-пупер методике уходит в стол бесплатно, поздравляю.

А выкинутые по твоей вине трудочасы запихнуть в счёт по твоему хорошо? Вот он твой attitude?

Что значит по моей? У меня есть рассчетное время, предварительно согласованное с заказчиком. Вот в этот дедлайн я должен уложиться. Как - мои проблемы, не заказчика. Норм так передернул.

t3n3t
()
Ответ на: комментарий от sanyo1234

переходя на личности

Вот этот момент ты как-то тактично упустил, да? :)

красуясь

Мимо. Я задал вопрос по существу топика - сколько на реализацию данного функционала ушло времени? Надо было еще про количество строчек кода уточнить, а то непонятно вышло, каюсь.

своего ненужного в этой ветке кода.

Это базовый функционал gnu-утилиты grep, а не мой код, окстить. Best practices как оно есть - без подтягивания лишних сущностей и зависимостей.

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

Это специфика всей отрасли. Что-то мне подсказывает что ты в команде никогда не работал. Или с заказчиками, которые сначала все хотели в докере, но на днях увидели видос про подман. Хотя это уже из девопсовской специфики, я в оной ненастоящий сварщик.

Обычно в пределах ещё несданной фазы работ очень кардинальных изменений нет, а те, что есть не наносят особого вреда моим затратам на небольшой рефакторинг, оставаясь в рамках моей методики подсчёта стоимости.

Ииии… потраченное тобою же время по твоей супер-пупер методике уходит в стол бесплатно, поздравляю.

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

Что значит по моей? У меня есть рассчетное время, предварительно согласованное с заказчиком. Вот в этот дедлайн я должен уложиться. Как - мои проблемы, не заказчика. Норм так передернул.

Ога, а если не укладываешься, то будешь упрощать, ухудшать качество и т.п.?

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

Ога, а если не укладываешься, то будешь упрощать, ухудшать качество и т.п.?

Как ты говоришь: обычно такое происходит очень редко. Нет, не буду. Доделаю как надо, без допоплаты. Это, во-первых, обозначется в договоре, во-вторых, это подразумевает деловая этика.

Ну и в нормальной практике разработки такого вообще не бывает. Бывает только у фрилансеров на потоке. И что-то мне подсказывает…

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

Я задал вопрос по существу топика - сколько на реализацию данного функционала ушло времени? Надо было еще про количество строчек кода уточнить, а то непонятно вышло, каюсь.

Я обязан перед тобой отчитываться? Сделаю тебе одолжение, количество строк - одна на удаление незначащих (пустых и коротких) строк и одна на удаление комментариев, если тебе это так важно.

sanyo1234
() автор топика
Ответ на: комментарий от t3n3t

И что-то мне подсказывает…

Что по моей методике расчёта получается экономичнее при том же уровне качества?

sanyo1234
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)