在北约组织举办“软件工程大会”40 周年之际──正是在这里首次提出了软件工程规范,Tom DeMarco 开始反思规范的发展,包括他对软件度量的先期发展方向的影响。“不能度量,就无法控制”,DeMarco 的这句名言被引用甚多,然而现在他怀疑这是否把我们引离了计算机的本质:“更重要的目标是进行转变,编写可以改变世界或者可以改变企业及企业运作模式的软件。”他的这一结论,最先出现在《IEEE 软件》七八月刊的“软件工程概念已是明日黄花?”[pdf] 一文中。
这篇文章中,DeMarco 是这样定义“软件工程”的:
软件工程包含一组特定的规范:定义好的流程、评审及走查、需求工程、跟踪矩阵、度量、精确质量控制、严格的计划和跟踪、编码和文档标准。所有这些都为了努力做到预期和实际结果的一致。
–Tom DeMarco
对敏捷实践者来说,DeMarco 可能因为与 Tim Lister 在 1987 合著的《人件》一书更广为人知。但是又有多少人会注意到他在 1982 年编写的颇具影响力的《控制软件开发项目:管理,测算和评价》这本书呢?DeMarco 在文章中首先就回顾了这本书:
经过反思,我开始怀疑:
- 这些建议在当时正确吗?
- 现在仍然有用吗?
- 对任何成功的软件开发项目,我是否仍然认为度量必不可少?
我的答案是不,不,不!
–Tom DeMarco
通过对这本书的反思,他发现了更多的真相,同时也指出软件工程规范与物理学这样的自然科学不同:“软件开发…度量…须持怀疑态度。”他继而把这本书与交付价值关联起来,并且建议说:
“…你越关注于控制,项目交付的价值就可能越低。对我来说,有个问题比怎样控制软件项目更重要,到底为什么我们在做那么多无甚价值的项目?”
–Tom DeMarco [emphasis added]
在得出结论之前,他简要描述了一个更为适用的增量管理的方法,其要旨与敏捷团队和它们的客户非常类似。
项目不需要控制,或者只需要很少的控制,我真的能说这样没问题吗?几乎可以这样说。首先我们需要选择一些精确控制对它们没有很大影响的项目。然后不管我们花多大力气来控制,都要降低我们对能够控制多少的期望。
–Tom DeMarco
参见原文: DeMarco Reflects on 40 Years of Software Engineering Evolution
评论