Как оценить вклад отдельного человека в программный проект?[закрыто]

StackOverflow https://stackoverflow.com/questions/2437881

  •  19-09-2019
  •  | 
  •  

Вопрос

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

Оценка очень субъективна (по крайней мере, для меня сейчас), но я не знаю ни одного инструмента, который давал бы хотя бы субъективную оценку.Я знаю о Sloccount, который определяет общее количество усилий с использованием строк кода, но не для каждого разработчика.

Мое представление об идеальном инструменте для этой цели было бы:

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

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

Если такого инструмента нет, то нет ли смысла в том, чтобы иметь такой инструмент?Или вы верите в "Я работаю, я не измеряю"?В конце концов, это требует времени.Возможно, руководителю проекта следует проводить эту оценку постоянно, скажем, еженедельно.Существуют ли какие-то стандарты?Да, стандартизация сложна, потому что каждый проект преследует разные цели, но, возможно, это должно означать, что должно быть несколько стандартов, а не их полное отсутствие.Это похоже на то, как компания оценивается на рынке.

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

Нет правильного решения

Другие советы

Я действительно сомневаюсь, что существует какой-либо надежный способ измерения вклада отдельного человека в решение.Иногда переписывание некоторого сложного устаревшего кода, которое приводит к меньшему количеству строк кода, менее сложному решению (меньшая цикломатическая сложность и т.д.), Может рассматриваться как довольно значительный вклад, в то время как в других случаях удаление ценного кода, охватывающего крайние случаи, что приводит к той же статистике (меньше строк кода, меньший CC и т.д.), Определенно является чем-то плохим.Все сводится к людям, доверию и сотрудничеству, индивидуализм в команде почти всегда неправильный, и я бы предпочел избегать его и уж тем более не использовать как фактор мотивации.

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

Было также проведено несколько исследований, в которых пытались использовать информацию из средства отслеживания ошибок.Например, определить разработчика, который с большей вероятностью внесет ошибки.Но трудно быть объективным (блестящий разработчик, которому поручена наиболее важная часть системы, все равно с большей вероятностью внесет критические ошибки).

На самом деле это трудно монетизировать задачи разработки.Какова стоимость ошибки?В чем выгода рефакторинга?Однако это был бы один из способов оценить вклад разработчика.

Последним классным инструментом, который я видел в подобном роде, был Игровой Плагин для Хадсона непрерывная интеграция система.Каждому разработчику присваивается оценка в соответствии с его действиями

  • -10, если они нарушат сборку
  • -1 за нарушение теста
  • +1 за исправление теста
  • и т.д.

Это опять же способ как-то оценить вклад разработчика.

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

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

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

Мартин

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

В книге Страуструпа по C ++ я однажды прочитал "Не пытайтесь решать социальные проблемы техническими средствами".

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

enter image description here

Думая как ИТ-энтузиаст и помешанный на контроле, это не должно быть очень сложно - внедрить обучаемое программное обеспечение для машинного обучения, которое использует контроль версий, базу данных ошибок и т.д. И предоставляет данные о производительности в реальном времени для каждого участника.Например.Для этого можно было бы использовать R, KNIME или WEKA.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top