《管理A++》

edmondsung
edmondsung首页

《管理A++》

A17 管理者只追求可衡量的东西

不知道如何衡量自己所追求目标的管理者,最终只能满足于有相关衡量数据的目标。

Ackoff教授(第51条):Managers who don't know how to measure what they want settle for wanting what they can measure.

Ackoff教授: 

许多人追求高质量的工作与生活,却不知道如何衡量,所以往往转而追求“高标准”的生活(如购置房产、车辆),皆因后者易于量化。遗憾的是,他们误以为生活质量等同于生活标准。事实上,进一步提升已经很高的生活标准,通常会降低生活质量。

同样,人们常常误以为产品或服务的质量(难以量化)与价格(可量化)成正比。然而,价格通常反映的只是产品或服务的生产成本,而非质量,而生产成本又通常与组织的浪费和管理的低效正相关。

与经济学家类似,管理者通常因其难以量化而忽视无须付费的工作。然而,正是这些难以量化的工作,如抚养子女、维系家庭等,往往最为重要。经济学家通常关注那些破坏价值的工作,因其成本可量化,这导致价值判断被颠倒了。例如,长期战争虽然提升了国民生产总值,却显著降低了人民的生活质量。

 

成都某软件开发公司采用敏捷开发方式,每两周进行一次迭代。

我询问某开发组长:“每轮迭代会收集哪些度量指标?”

答:“主要就是衡量开发新功能的速度。”

问:“度量开发的速度只能反映出开发的功能数,无法反映开发的质量。你们如何衡量开发的质量?”

答:“代码开发后须首先通过静态扫描,还有内部自测,从扫描和测试结果评估团队的缺陷和代码异味是否超标。”

问:“是否遇到过产品通过验收却在客户使用时出现报错的情况?”

答:“3个月前曾发生过,我与另一名工程师耗费数周,排查了各类原因,最终才找到根本原因并解决。”

问:“具体是什么问题?”

答:“是编码失误,某个开发者没注意到,在open描述满足后未关闭(close)。该缺陷位于某软件模块的宏部分,我们最初审查相关代码时,没有细查宏包,因而没有怀疑代码本身。”

针对这个缺陷分析案例,我们继续讨论,一致认为如果在开发时用脚本编写自动化单元测试,结合静态扫描和核心代码评审,应能有效避免此类缺陷重现。因此,开发团队在每轮迭代中除了收集速度外,还应收集与质量相关的度量。

关键度量指标

领导仅关注开发团队的生产率,所以只要求每周统计有效代码行数。然而,开发团队在收集此类度量时,还会引发诸多问题:

●   代码开发通常涉及代码的复用,在计算代码行数时,如何界定哪些代码行应计入?哪些不应计入?

●   如何收集相关数据?依赖开发者手动统计?如何确保数据可信,防止随意上报?

即使解决了上述问题,代码行数也不会无限增长,初期或有较大改进空间,到了后期想持续优化就不容易了。

更关键的问题是,若管理者仅关注少数“关键”指标,团队便会聚焦于这些指标,而忽视其他度量指标。例如,代码行数(生产率)受质量的影响显著——如果开发没有做好自测、代码评审和扫描,到了系统测试或验收测试时将暴露出大量缺陷,导致大量返工、降低生产率。因此,建议度量的指标不宜太单一。每轮迭代由团队共同收集并讨论度量数据,成员方能清晰洞察自身的状况,才能发挥度量的真正价值。