构建之法14、15章总结
第14章
这一章讲的是质量保障。在我们做软件的时候,最重要的是质量,如果做成功的软件质量不过关,那无疑是白费心血,浪费时间。程序的质量体现在软件外在功能的质量,用户体验的质量,国际化的质量,安全性的质量等等。
软件开发过程中有三个主要的特性:好、快、便宜,即软件需要在成本、功能、时间三方面满足利益相关者的需求。一个团队可以靠很多方法来提高程序的质量,比如交付前不断测试,修改,也可以在软件发布之后再一直进行修复问题,但是软件工程的质量需要长期的过程来提高。
软件工程的质量体现在:软件开发过程的可见性;软件开发过程的风险控制;软件内部模块,项目中间阶段的交付质量,项目管理工具的因素;软件开发成本的控制;内部质量指标的完成情况。衡量软件工程的质量有一套比较成熟的理论,CCMI。CCMI的实施能够提高企业的管理水平,降低企业的成本。在一个团队中需要有一个人专门对软件进行测试,这样分工可以有效提高团队的效率,也可以尽可能保证软件的质量。但是有专门的人负责并不意味着团队的个人不需要关注软件的质量。
第15章
这一章主要讲的是软件的稳定和发布阶段。软件经过计划、设计、开发等阶段,最后就需要发布了。但是软件发布也不是一件简单的事情。发布软件需要考虑是在软件的缺陷全部完善之后再发布,还是在不影响使用的情况下先发布,后期再进行更新。
发布时,软件团队的各个角色代表会组成一个会诊小组,负责处理每一个影响产品发布的问题,他们可以选择是否立即修复问题,或者延迟修复。在稳定阶段的初期,团队只需要决定修复哪些缺陷,然后团队成员再进行必要的设计、实现、测试工作,但是项目进展和发布日期不断临近,团队还要保证修改不会影响软件的发布。
有时候,软件修复需要一整个模块的修改,这是需要慎重修改的地方。修复软件有几种招数:设计变更、ZBB、最后回归测试、砍掉功能、修复Bug的门槛逐渐提高、逐步冻结。发布软件时,出现不同频率和不同覆盖范围的渐进发布。