原发 http://liuqingyan.blogspot.com/2008/10/blog-post_08.html
高安全性、低缺陷的软件开发将戏剧性的获得美国国家安全局( NSA)的帮助,因为 NSA向开源社区提供了 Tokeneer研究项目。项目的主要意图是展示一款非常安全
的软件如何能合理的开发。 Tokeneer使用 SPARK Ada语言编写,它是一种高级程序
设计语言,设计用于编写高安全应用程序。这里是它的网页, http://www.adacore.com/home/gnatpro/tokeneer/ ,可以下载到源码和文档。比较有趣的是网页上还列出了项目开发的几个数据,这让我们得以管窥一下高质量的软件开发:
总代码行数: 9939 行
总耗时: 260 天
生产率(日均产出代码行数,按总耗时的天数计算): 38 行 /日
生产率(日均产出代码行数,按编码阶段耗时的天数计算): 203 行 /编码日
自交付之日起发现的缺陷数目: 1 个
从这些数据我们还可以推算出,编码阶段耗时约 49天,占整个项目耗时的比例是 18.85%,还不到 20%。
可 以看到,高质量的软件项目,编码的时间比例是很少的,认真的测试和文档很重要,前期调研和良好的设计则是重中之重。 IBM说,设计耗时应当占到 50~60%的比重。调研和设计好比战略战术制定,编码好比战斗,这里反映出的道理就是 "决策要慢,执行要快 "(因为不知道项目人数,所以不好评价生产率 的高低,但是 203 : 38 = 5.34 : 1 的这个速度比基本上可以说明这个一慢一快的事实)。
对比我们身边一些项目的六拍运动(拍脑袋上马,拍肩膀命令,拍胸脯保证,拍桌子呵斥,拍屁股走人,拍大腿后悔),真的是天壤之别呀。所以,我们做任何项目,都要避免做出草率的和违反事物发生发展规律的可笑事情。
之前项目管理培训课上,老师讲项目范围三角形(质量、时间、资源)和灵活性矩阵分析的时候,问道,对于项目经理而言,三角形哪一条边最灵活?我抢答质量, 老师笑了,大家也笑了,其实这是个幽一默的答案,不过这个幽默是黑色的。
其实,现实是理想的背面。所以自己开个作坊,做不出来好东西,怪不得其他任何人,只能怪自己没有 common sense。