如何定义指标以评估程序员?

How do define a metric in order to evaluate programmers?

假设我们有程序员 A,B,c。质量定义为 bugs/month 的数量,生产率定义为 LOC/month。所以我们有程序员 A,质量 2 和产品。 2500;程序员 B 质量 5 和产品。 500 和程序员 C 质量 25 和产品 200 .我如何定义一个指标来评估哪些程序员是最好的?我在互联网上搜索了一种方法,但没有找到我如何评估程序员的示例。有人可以帮我弄这个吗 ?我真的很感激

可能没有标准的方法来处理这个问题。因为 1. which programer is the best 没有标准定义,如果有接近的东西, 2. 它可能不会依赖于这些指标。因此,您在这里只能进行主观选择。

如问题评论中所述,您必须谨慎选择指标,因为它们不符合表示条件 [1](例如,可以找到反例 - 并且会有很多这种情况)。所以不要相信你可以根据这些指标来判断开发人员,那将是一个大错误,并且公然使用指标适得其反,请参阅 [2] 了解更多详细信息。

但是,我相信这些指标和隐含的主观选择仍然有价值,只要您知道它们在多大程度上是有效的。它们仍然代表一种价值,拥有它们并对其进行监控很有趣:作为数字,它们也可能有助于理解开发的某些方面。

因此,也许建议的答案是基于可视化的答案:将它们很好地绘制(气泡图可能很有趣,或者很好的旧条形图)作为指标,而不是高级特征。您还可以将它们映射到一个比例(虽然很难定义。)以获得标准化指标(例如从 1 到 5)并构建一棵树,如 PolarSys Dashboard.

[1] Fenton, N. (1994)。软件度量:必要的科学基础。 IEEE 软件工程汇刊,20(3),199–206。 doi:10.1109/32.268921

[2] Kaner, C., & Bond, W. P. (2004)。软件工程指标:它们衡量什么以及我们如何知道?方法论,8(6), 1–12.