和西安软件公司同行讨论下软件质量管理
在西安软件业起步的时候,西安软件公司在质量管理方面比较落后,大部分的西安软件公司没有设置专门的测试组织和招聘专职的测试人员。软件产品的质量完全依赖于程序设计和编写者的技术水平和工作效果。这种依赖使得软件产品的质量水平低下。
虽然西安一些西安软件公司在2000年左右开始建立内部的测试小组,但仍然只起到了“事后检验”(即在已集成的版本上进行的一些基于用户操作层面上的测试和检验)的功能,大部分产品质量缺陷仍然无法及时和较全面的被发现和解决,更不用说“预防缺陷”。即使这种具有“事后检验”功能的测试小组被建立,但由于没有必要的支持 ,以及人力资源投入严重不足,导致测试小组在软件质量上的贡献和业绩表现并不佳。同时由于对产品质量的认识缺乏全面的理解,仅仅建立一个测试小组对产品质量的提升很有限。
由于质量分布于具体的过程,过程需要良好地衔接起来才能够协调工作。工件的管理作为软件开发工作中的基础性工作,起到了关键性作用。
一般情况下,软件开发公司至少具备三个职能组:产品组(或需求组)、程序组、测试组,而配置管理组往往被忽略。在很长的一段时间里(有的企业至今仍未建立配置管理组织),大多数小型软件开发企业对资产管理的理解不够全面,认为只要管理好当前已编译好的产品就足够了,用户使用说明书、设计文档、程序代码、第三方组件(产品)几乎都是只储存于个人计算机硬盘上,企业没有专门的储存空间的相应的完善的管理机制,值得一提的是,开发流程(工序流程)也需要纳入资产里面。
软件开发公司的工件得不到好的管理,使得团队工作经常性地遇到:找不到文档、死文档越来越多、版本错误的问题。而这些问题是造成了软件开发公司的工作效率和质量大降重要原因之一。工件的管理在较大规模的团队中更为重要。工件是团队协作的主要依据,也可以作为沟通的桥梁!
所以,提升软件产品的质量,首先应当做好配置管理工作,识别软件资产内容、对软件资产进行有效的管理,提供必要的开发环境支持,减少不必要的文档检索时间,快速地获取到正确的文档(或代码),加快项目的迭代过程,提高迭代频率。
正因为它需要经历若干个开发过程和若干个专业人员,其质量特性之间也可能存在较大的差异,需要不同的控制方法和具备相关技能的检验人员。如需求质量和程序代码的质量,前者需要非常了解用户需求,与用户接触密切,以及具有对市场的把握能力。后者则需要掌握程序编写技术、调试技术、设计能力和项目开发经验。在实际项目实践中,当然不可以按照“需求分析”分配“需求测试人员”,“系统设计”分配“系统测试人员”这样的形式去投入和安排资源,但是我们可以针对项目自身的特点(比如哪个环节的工作质量比较差,容易出错)来加强人员培训和投入人力资源。我们更加趋向于提升各生产环节的人员自身的工作质量,因为这样更及时发现问题和解决问题,更加符合经济性原则。
组织是工作有序进行的基本保障。项目管理团队热衷于制定制度和规范,规范和制度的执行效果却很少关注。建立一个过程改进小组,有利于制度的规范的实施,这个小组可以定期向项目管理团队提供项目状态报告(如评审会议情况、需求变更情况、每周产品缺陷趋势图、任务完成状态图、工作质量状态报告)。这样可以做到项目管理团队在第一时间获悉存在的问题和及时地解决问题。过程改进小组的工作职能并不一定要与CMMI描述的那样,我们可以根据实际情况定义它的工作职能,而且这个定义也是一个动态、持续改进的过程。