提高软件过程改进的实际效果

发表于:2008-11-21 16:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

分享:

  正如前文所述,很多公司往往把注意力放在流程本身的完善上面,始终把制定书面流程作为工作重点,而忽视了流程如何更好的执行,更好的被贯彻到日常工作中。其实,对于大部分的研发人员,甚至包括领导层,都没有太多的时间去阅读繁杂的、枯燥的流程内容,无法记住流程中太多的规定,如果要靠个人的自觉性来保证流程的执行,其难度可想而知。

  笔者所在部门也承担着流程制定和改进的重任,在意识到流程执行不力的真实原因后,决定引入流程自动化工具来保证流程的顺畅执行,让工具通过email的方式来提醒每个人在什么时候 做什么事情。从而避免了大家因为不知道或者忘记了,导致流程没有被执行。

流程管理工具在业界有很多的选择,笔者所在部门经过全面考查,仔细分析各种流程工具的优缺点后,最终选择了美国Serena公司的TeamTrack工作流产品作为我们的流程管理工具。TeamTrack具有流程设计灵活,可视化显示流程执行状态,支持强大的二次开发等特点。有了流程管理工具后,我们把很多的书面流程都转化成了电子化的流程,这样就很方便的把需要多人、跨部门、有上下游协作的工作通过电子化的流程固化下来。大大降低了流程执行的难度,有效的提高了流程执行的效率,收到很好的效果。同时,由于TeamTrack可以很方便的和我们自主开发的综合项目管理系统ProgramConsole有机的结合,可以在ProgramConsole上面进行流程任务的计划、发起和查看状态。

  举例来说,变更管理(Change Control)是过程改进中比较重要的环节,面对瞬息万变的市场需求和公司内部的变化,有效的变更管理可以防止变更在最后一分钟才通知到受影响的部门和个人,最大限度的降低变更带来的负面影响。而变更的种类很多,例如需求变更、计划变更、人员变更等等,所以针对不同的变更,有相应的虚拟组织—“变更管理委员会”(Change Control Board,CCB)来评估和批准变更。通过流程工具的实现,建立变更管理工作流,可以把变更发起、评估、批准、实施等变更生命周期有效的管理起来,自动让一个虚拟团队在一个集中的平台上协同工作,极大的提高了内部的沟通效率。

  我们比喻流程管理工具为过程改进的引擎,它让过程改进的活动有序的转动起来。

  以软件生命周期为主线,构造完整的工具平台

  软件生命周期在不同的公司可能会有不同的描述,但不管是采用传统的瀑布式,还是用RUP的迭代开发,或者是采用Agile(敏捷开发)模式,在微观上,都会存在需求、编码、测试、软件发布等活动。所有的这些活动,其实都有相对应的工具进行辅助执行。以软件生命周期为主线,把各环节的工具整合起来,就可以构造一个完整的过程管理工具集。

  图3展示了我们已经应用的以软件生命周期为主线的,完整的软件工程工具平台。

图3:软件工程工具平台

  图3中列出的工具平台中,项目管理工具ProgramConsole、需求管理工具RequirementConsole、测试管理工具TestConsole、软件发布管理工具ReleaseConsole这四个产品都是笔者所在公司软件工程部结合自己多年的过程改进实施经验,借鉴业界通用的产品,而自行研制开发的。前文已经详细介绍了ProgramConsole和TeamTrack,这里就其他几个产品进行简单的介绍。

  ◆ RequirementConsole, 需求管理工具

  需求管理工具主要是对需求的生命周期进行管理,把需求管理的对象细化。从以前传统的一篇需求文章,细化到一个一个条目化的需求项。这样更方便需求的追踪和验证。

  ◆ TestConsole,测试管理工具

  测试管理工具是对测试活动和测试用例的生命周期进行管理。可以管理从单元测试、集成测试、系统测试、Beta现成测试等所有测试环节的用例数据库,自动汇总测试报告。同时可以集成RequirementConsole,设置需求的测试状态。

  ◆ ReleaseConsole,发布管理工具

  发布管理工具是对发布给客户的软件包进行管理,可以集成自动化编译平台进行自动构建。非常适合多模块的复杂软件包的发布。

  ◆ ClearCase、ClearQuest,配置管理工具

  ClearCase和ClearQuest是IBM Rational的产品,也是业界广泛采用的软件配置管理工具。ClearCase是一个非常优秀的软件源代码版本控制工具。而ClearQuest是一个灵活的缺陷跟踪工具。

  这个工具平台中列出的软件工程工具,它们即可以独立运行,之间又可以互相有机集成。例如RequirementConsole中的需求项可以追踪到TestConsole中的测试用例,这样可以很方便的了解到哪些需求被实现了,是否通过测试。ClearCase中的代码版本修改,可以关联到ClearQuest的具体缺陷,了解是什么原因导致代码的修改。在ReleaseConsole发布的软件版本中,可以了解这个版本解决了哪些ClearQuest中的缺陷,新增了哪些RequirementConsole中的需求。而ProgramConsole可以把一些领导们关心的,分布在各个系统中的数据进行统计,显示在界面上。

  经过两年多的实际应用,我们切实体会到了软件工程工具给我们的软件过程改进带来的实实在在的好处。我们的流程执行更规范了,项目相关人员之间的沟通也更顺畅了,领导层更方便的了解和监控产品开发的全过程,决策也更快速和准确。

  没有最好,只有最适合

  笔者认为,选择工具的原则是“没有最好,只有最适合”。不管是自行开发,还是购买市场上成熟产品,最终的目标是应该选择最适合自己公司实际情况的产品,从而能够解决在过程改进中遇到的实际问题,为提高过程改进的实际效果起到积极的作用。


22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号