精益软件度量——实践者的观察与思考读书笔记一
风险源于不确定性,然而软件之所以为“软”,就是由其生命周期中所面对的变化和不确定所决定的,从另一个角度讲,不确定性又是与创新如影随形。
精益软件开发的度量体系
度量本身不是目的,是手段。
在很多情况下,数据的生产者不是数据的使用者;数据的生产者没什么动力去分辨信息的价值,也不关心信息准确与否;数据的生产者关心的是数据是否会对自己带来惩罚或是收益,而不是数据跟软件开发的关系;在很多管理者的认识当中,度量的主要目的,是确保事情在掌控之中,为的是获得可靠性和安全感;相对于“更高效的开发软件”这样模糊的目标而言,很多一线人员对度量指标的使用其实更加一个简单、清晰、朴实——一旦开发除了问题,一个自我保护的理由就是“我已经满足了度量的要求了呀”。
精益的一个核心理念是持续改进。在理念上,我们希望把度量的重心从“控制”转向“改进”。虽然控制和改进都是对系统采取的干预性措施,“控制”给人造成的心理暗示是围绕着静态目标而行动;而“改进”则将动态的目标植入人们的思维模式。这有助于我们在识别软件开发的成功路径时,由可靠性转向一个更广泛的视角。
在这样的理念指导下,度量体系的作用就是提供信息来帮我们知道现在哪里,距离目标到底有多远,我们是否在向目标前进,进展的程度如何。因此,简单的说,度量是通过对目标位置、相对位置、移动方向的描述,帮助组织达成其业务目标。
度量是什么
度量是在一个特定组织上下文中形成的一系列共识:度量的一个重要意义是统一思想、统一方式,从而使不同的人能够在一致的基准上进行沟通,减少产生误解的可能性。在一个软件开发组织里,度量统一的不仅仅是度量单位、度量对象、度量手段,更重要的是统一对目标的认识。
度量是将经验模型向量化模型进行匹配的尝试:量化模型就是通常所指的硬数据、硬指标,这是大多数管理人员想看到的。
度量是包含人、流程、组织和工具的一个动态系统:如果把软件开发组织看做一个动态的系统,度量实际是作为反馈机制来对这个系统产生作用的。
度量不是什么
度量不是软件开发固有的活动:度量本身并不对客户直接可见,不是作为产品或服务的一部分为客户直接创造价值,因此根据精益的理念,应该尽可能减少。
度量应该避免跟绩效直接相关
度量不是免费的
软件开发中并不是所有的目的都要用度量来达成,度量也不是帮助达成所有目标的灵丹妙药。