2

我从事一个软件项目,并想估计我在软件开发中投入的总贡献的百分比。有什么工具可以做到这一点吗?例如,这样的工具可用于评估或谈判。毕竟,我们为钱而工作(是的,不仅仅是钱,重点仍然存在)。我认为最重要的事情已经足够挥手了。

估计是非常主观的(至少现在对我来说),但我不知道有任何工具甚至可以提供主观估计。我知道 Sloccount 使用代码行说明了总工作量,但不是基于每个开发人员。

我对此目的的理想工具的想法是:

  • 衡量代码的复杂度(越复杂就是越努力,但越努力不一定贡献越大)
  • 衡量软件的可分解性/灵活性(可分解性越多越好)
  • 使用了多少库代码——使用库代码加快了开发过程,增加了相关风险,并要求开发人员从以前了解或了解库。
  • 足够聪明地区分“谁编写了代码”、“谁复制了代码”和“谁缩进了代码”。

很难区分实现的复杂性和问题的内在复杂性。如果有的话,也许可以与等效的开源对应物进行比较,或者单独对每个子模块进行比较。

如果没有这样的工具,那么拥有这样的工具就没有优点吗?还是您相信“我工作,我不测量”?毕竟这需要时间。也许项目经理应该连续进行这种估算,比如每周一次。有什么标准吗?是的,标准化很困难,因为每个项目都有不同的目标,但这也许意味着应该有多个标准,而不是根本没有标准。这看起来类似于公司在市场上的估值。

更新:在看到一些初步答案后:想象一个只输出百分比的工具是没有意义的。是否有工具可以帮助人类(尤其是管理者)做出更好的决策?或者什么是做出更好决策的充分统计数据?这些统计数据可用吗?

4

5 回答 5

2

我真的怀疑是否有任何可靠值得信赖的方法来衡量个人对解决方案的贡献。有时重写一些复杂的遗留代码会导致更少的代码行,不太复杂的解决方案(更小的圈复杂度等)可以被视为一个非常重要的贡献,而在其他情况下删除有价值的代码覆盖导致相同统计数据的边缘情况(更少的代码行,更小的CC等)绝对是坏事。这一切都归结为人,信任与合作,团队中的个人主义几乎总是错误的,我宁愿避免它,尤其是不要将其用作激励因素。

于 2010-03-13T09:50:32.693 回答
2

这本身就是一个研究课题。有几种工具试图定义代码所有权等指标。还有其他方法可以解决协作开发的其他方面,例如我们可以在代码中拥有的可信赖性。

还有几项研究试图使用来自错误跟踪器的信息。例如,识别更可能引入错误的开发人员。但是很难做到客观(被分配了系统最关键部分的优秀开发人员仍然更有可能引入关键错误)。

实际上很难将开发任务货币化。一个错误的成本是多少?重构的好处是什么?然而,这将是估计开发人员贡献的一种方法。

我看到的最后一个很酷的工具是Hudson持续集成系统的游戏插件。根据每个开发人员的操作为他们分配一个分数

  • -10 如果他们破坏了构建
  • -1 用于打破测试
  • +1 用于修复测试
  • 等等

这又是一种以某种方式评估开发人员贡献的方法。

总而言之,我确实觉得你要求的东西是存在的,但还很不成熟。

于 2010-03-13T10:29:03.770 回答
0

我认为您无法获得评估您在项目中所占份额的工具。测量源线都很好,但源的质量如何?如果这项工作可以在 20 年之内轻松完成,那么您不会希望有人将 200 行源代码的功劳归于...

另外,想一想我的雇主,很多人以代码以外的方式为项目做出贡献。我能想到的直接例子是项目经理和测试人员——他们都是必不可少的,他们都理应得到一些赞誉。

马丁

于 2010-03-13T09:52:16.437 回答
0

我唯一能想到的就是投票系统。我完全不知道这是否适用于您的团队或任何地方 - 但我敢肯定,您将需要人工来对代码质量进行任何现实的估计。

于 2010-03-13T10:04:02.283 回答
0

在 Stroustrup 的 C++ 书中,我读过一次“不要试图用技术手段解决社会问题”。

以编程的方式思考,通过一起进行代码审查并就相关主题进行讨论,可以非常快速地评估程序员的态度和能力。

在此处输入图像描述

作为一个 IT 爱好者和控制狂,这应该不是很难,实现一个可教的机器学习软件,它使用版本控制、错误数据库等,并为每个人提供实时性能数据贡献者。例如,R、KNIME 或 WEKA 可以用于此。

于 2015-08-14T08:32:01.280 回答