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

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

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

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

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

如果没有这样的工具,那么拥有这样的工具就没有任何价值了吗?或者你相信“我做工作,我不衡量”?毕竟需要时间。也许项目经理应该连续(例如每周)进行此估算。有什么标准吗?是的,标准化很困难,因为每个项目都有不同的目标,但这也许意味着应该有多个标准,而不是根本没有标准。这看起来类似于公司在市场上的估值方式。

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

没有正确的解决方案

其他提示

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

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

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

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

我看到的最后一个很酷的工具是 游戏插件 为哈德逊 持续集成 系统。根据每个开发人员的行为为其分配分数

  • -10 如果他们破坏了构建
  • -1 表示破坏测试
  • +1 修复测试
  • ETC。

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

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

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

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

马丁

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

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

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

enter image description here

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top