最近, Chappell & Associates 的负责人 David Chappell 发表两篇文章,讲述了软件质量的一些不同方面:功能、架构和流程;质量与用户、开发人员和投资者的关系;以及随着时间的推移,外部软件和内部软件的缺陷会造成的影响。
在文章 The Three Aspects of Software Quality: Functional, Structural, and Process (PDF)中,Chappell 概括了软件质量的三个方面:功能、架构和流程,它们都在某种程度上和关注最终产品或服务的三类人:用户、开发人员和投资者有关。功能质量指的是软件执行其用户所要求的任务的好坏。Chappell 为软件功能质量定义了四个属性:
- 软件符合指定需求
- 软件几乎没有缺陷
- 软件性能正常
- 软件容易上手,操作方便
架构质量衡量的是软件设计的好坏,由以下属性来反映:
- 代码可测试性
- 代码可维护性
- 代码可读性
- 代码效率——是否高效地管理了资源?
- 代码安全性——是否能够预防常见的安全威胁?
尽管在谈论软件质量时,功能质量和架构质量往往位高权重,但 Chappell 认为流程质量同样非常重要,那些耳熟能详的属性包括:
- 软件按时交付
- 软件满足预算
- 有可复用的开发流程,能确保交付优质软件
Chappell 认为,用户最关注的是功能质量,其次是流程质量中的交付日期。开发人员最看重架构质量,因为这会直接影响他们的工作,当然他们也会关注功能质量,虽然不像用户那么看重。同时,他们也在意流程质量,因为“这涉及到很多他们的绩效指标”。项目投资者则重视软件质量的所有方面,他们知道任何方面都对最终结果有影响。
在文章 The Business Value of Software Quality (PDF)中,Chappell 谈论了糟糕的软件质量对商务的影响。他将软件分为两类:外部软件——公司的客户使用的软件,和内部软件——公司自己的职员使用的软件。
Chappell 回顾了一些惨痛事例,如 2011 年 4 月 Sony 旗下 PlayStation Network 的一个安全漏洞,仅仅由于某个数据库的一个已知安全隐患作威作福,7 千万用户遭受波及;还有 2011 年 10 月 RIM 公司某备用系统故障导致它的全球用户受影响整整三天。Chappell 认为,随着时间的推移,此类质量缺陷会给公司带来以下的损失:
- 由于业务流失导致的经济损失
- 由于赔偿导致的经济损失
- 由于客户流失导致的经济损失
- 由于法律诉讼导致的经济损失
- 品牌价值的损失
随着时间的推移,内部软件的糟糕质量可能会造成:
- 用户普及缓慢
- 商业利益缩减
- IT 经理如履薄冰
- IT 部门信誉降低
- 为软件外包提供可乘之机
不论内部软件还是外部软件,为了攀向成功之巅,质量的三个方面:功能、架构、流程都需要好好关注。
评论