适当的指标帮助进行数据驱动决策的文化。依赖数据使大多数决策是客观而不是主观的。但是,从人的角度收集和分析数据有其自身的挑战。
随着组织规模的线性增长,沟通成本呈几何技术上升。因此,你不能根据工程组织的规模按比例线性地扩展业务。
另外一种解决业务扩展的方法是:让每个人更有生产力。我们需要了解什么让工程师高效,识别在我们的工程过程中低效的地方,并修复识别出来的问题。然后我们将根据需要重复这个循环,进行持续改善。
我们的目标不仅仅是提高软件工程的生产力,而且是高效地、低开销和低管理成本地地做到这一点。
负责提高生产力的团队不仅能够研究工程师们所生产的软件工件,还能够理解软件开发的人性方面,包括个人动机、激励结构以及管理复杂任务的策略。
该团队的目标是采用数据驱动的方法来度量和改进工程生产力。
首先要鉴别它值得度量吗。我们需要知道什么时候一个指标是值得度量的。度量本身很昂贵,它需要人们度量工作流程、分析结果,并将结果发布给公司其他部门度量本身也可能延缓工程组织的其他工作。追踪过程可能改变工程师的行为,掩盖问题。
我们需要考虑以下问题:你期待什么结果,为什么?如果数据支持你的预期结果,将采取什么行动?如果我们得到一个负面的结果,会采取适当的行动吗?谁将决定对结果采取行动,他们将何时采取行动?
在下列情况下度量是不值得的:现在你无力变更流程和工具,任何结果不久都会因为其他因素而无效,结果将仅用作虚荣心指标,以支持你无论如何都要做的事情仅有的度量指标不够精确,不足以度量问题,而且可能会与其他因素混淆。
根据目标和信号来选择有意义的指标(GSM模型)。目标是指期望达到的结果。信号是用来判断我们是否已经得到了最终结果的东西。指标是信号的代理,是我们事实上可以度量的东西。
采取行动并跟踪结果。我们想采取行动,以提高生产力。我们可能建议某个工具增加新特性,改进工具的延迟时间,改进文档,删除过时的流程,甚至改变工程师的激励结构。尽量从工具入手,然后是流程、思维。
选择覆盖生产力所有要素的度量指标,而不是提高某一个方面,牺牲另一个方面。定性指标也是指标,应该与定量指标保持一致。目标是提供建议,并将建议内置于开发人员的工作流程和激励结构中。将行动建议内化到开发人员的日常习惯中,它们就更有可能发生。