【发布时间】:2008-12-21 23:51:14
【问题描述】:
这个问题最初是问“您在软件开发组织中使用什么 KPI”。不幸的是,KPI 似乎是一个四个字母的词,直接的假设是 KPI 总是被误用(也许是?)。
因此,我希望改进这个问题,以达到我最初认为 KPI 有用的基本目标。假设您有一些关于您(或您的组织)如何开发软件的流程。其次,假设您(或您的团队)希望在开发和交付软件方面做得更好。最后,假设改进的方法之一是改进您的流程。
鉴于所有这些,您如何知道您的流程改进是否产生了积极影响?如果这些是KPI,或 [SMART 目标](http://en.wikipedia.org/wiki/SMART_(project_management) 请提供您认为有效的个人或团体 KPI/SMART 目标。如果是其他机制,请说明什么是的。最后,我想,如果你认为改进流程不是一件有用的事情,我想你也可以解释一下。
我认为有用的改进领域是:质量、发布的及时性、生产力、灵活性。如果个人或开发人员团队还有其他方面的信息,那将会很有趣。
澄清说明:
问题不在于如何最好地适应或改变流程,或者什么是好的流程改进流程(无论是改善、回顾等)。也不是关于根本原因分析或用于确定流程的哪些特定方面应该改进的其他方法。
使用措施来确定是否已实现流程改进,不应与正在进行的流程改进相混淆。 (这是一件好事,但这不是问题所在!)
进程可以是任何东西; scrum,敏捷,极端,瀑布,临时。这个问题不在于哪种流程最适合某些类型的软件开发,而是如何随着时间的推移改进该流程。
显然,具体的指标将取决于所涉及的过程,以及试图改进的感知问题。这个问题只是为了获取所用指标的示例,这些指标显然会跨越许多不同的流程和改进领域。
指标不必是一直使用的东西,例如,它可以只在测试流程更改是否有效时使用。 (例如,在时间或金钱方面,始终测量和跟踪可能太昂贵了,因此您只需跟踪它就会调整流程)。
如果实施不当,指标的使用可能会在开发人员游戏系统或其他方面产生不利影响,这是理所当然的。假设实施流程变更的人意识到了这个问题并采取了有效的措施来缓解它。
所有软件组织都不同,它们与公司的适应方式不同,因此公司内部对他们的具体期望也不同,但我认为产品质量、生产力、灵活性和发布及时性适用于大多数人,如果不是的话所有组织。 (根据具体组织的不同,重点明显不同。)
这个问题与源代码行无关!特别是,我对衡量程序员的生产力不感兴趣,尤其是在 SLOC 或修复的错误数量方面,或任何其他幼稚的衡量标准方面。我对团队或个人衡量他们改进的更高层次的方式感兴趣。我对使用单个 KPI 来衡量任何人的绩效不感兴趣。我我有兴趣使用一系列 KPI 来衡量和改进我团队的软件开发流程。
我知道关于 KPI 被滥用和无效的恐怖故事(您无需费力搜索即可找到它们),但我无法相信没有人试图不断改进他们的流程,所以肯定有一些 KPI 的好例子。
我完全了解适用于单个软件程序员的简单指标的缺点。我真的希望获得人们认为有用的 KPI 或替代策略的示例,而不是我不应该使用 KPI 的所有原因。
我最感兴趣的是与大型公司内的开发组织相关的流程和绩效,而不是整个软件开发公司。例如,软件公司应该确保产品具有适合市场的功能,但通常这是产品管理的角色,而不是工程。是的,关于工程师应该参与产品管理的原因和程度,还有一个完整的其他讨论,但这是一个单独的讨论。
【问题讨论】:
-
“请不要就 KPI 不起作用的所有原因提供答案。” - 祝你好运!
-
好吧,已经有很多这样的东西了!如果人们不使用 KPI,他们如何知道他们的流程(敏捷、极端、Scrum、瀑布等)是否有效?他们如何判断流程是否正在改进?人们不能只是猜测(我希望!)。