在阅读《现代软件工程—构建之法》后的思考问题
在阅读《现代软件工程—构建之法》后,有这样几个值得思考的问题:
1.我们都知道PSP是个人开发流程,在书中第34页也介绍了个人开发流程的任务清单,包括计划(明确需求和其他相关因素),开发(分析需求,生成设计文档,设计复审,代码规范,具体设计,具体编码,代码复审,测试),记录用时,测试报告,计算工作量,事后总结,提出过程改进计划这些内容。作者提供了2011年收集的两组统计数据,对比大学四年级学生与工作三年的软件工程师在PSP阶段用时的对比,从表中对比我们可以发现大学生在需求分析和测试阶段用时明显比工程师要短,但编码时间却比工程师长许多。这是什么原因导致的呢?我们在个人开发软件过程中应该注意哪些问题?
2.开发软件最重要的一步就是需求分析,即确定开发产品的功能,那当我们开发出一款具备用户需求的所有功能且测试功能都可用后,能否说这款产品就是一款好的产品,让用户满意的产品?当然不能,还得考虑用户体验,软件的各部分功能就相当于一个产品的各个零件,具备所有零件的产品就可用了吗,例如生活中常用的插板,用的插板上面有两孔和三孔的,看起来挺好的,既能插两孔也能插三孔,但实际用的时候也许会发现具备两个功能的插板却不能同时插,这会让人很抓狂。所以用户体验也是极其重要的一方面,那对于我们来说,开发一个具有友好用户体验的产品应该注意哪些方面呢?怎么去获取用户对于一款产品的使用喜好呢,开发出令用户满意的软件呢?
3.听过这么一句话:所有能够顾促进质量提高的事情都QA应该参与,QA就是质量的把控和监督者,QA不应当局限于"测试分析"、"测试设计"、"测试执行"等等,那么作为一个QA应该从哪些方面关注软件产品质量?书中第14章,讲述了软件的质量=程序的质量+软件工程的质量,提到软件工程质量可以用一套比较成熟的理论CMMI(能力成熟度模型集成),帮助企业进行对软件工程过程的管理和改进,增强开发制造能力,从而能按时地,不超预算地制造质量的软件。那CMMI适用于什么样的公司或者团队?CMMI怎么用?怎么将它应用到具体工作中?