频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

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

来源:软件世界 作者:黎学文/胡海涛 出处:巧巧读书 2008-03-21 进入讨论组
下一页 1 2 

很多正在实施软件过程改进的公司或许有这样一些困惑:他们实施过程改进有一段时间了,花费的时间和金钱也不少,但是却为何收效甚微?

的确,不少公司花费了巨资请了CMMI的咨询机构对公司的软件开发过程体系进行咨询和培训,从无到有建立了软件过程改进小组(SEPG),制定了一套比较完善的流程框架体系,同时对研发人员进行过若干次培训。经历了这些努力后,期待着公司研发人员的行为比以前要规范,软件质量比以前要好,客户比以前更满意,但实际情况是这样的吗?答案往往不尽如人意。不少公司甚至出现没有预料到的负面现象:开发人员比以前更抵制流程,流程执行表面化,开发效率反而降低,产品质量没有明显的改善。因此,他们不禁要问,到底是什么出了问题?

笔者所在的公司同样遇到类似的问题,经过长期实践,我们终于发现,造成上述问题的症结主要是在流程的执行环节上,没有一个从上到下的自动化的流程执行体系,导致过程改进始终停留在书面文档上,没有真正落到实处。笔者就这个话题,结合所在公司几年来的实际经验,介绍如何利用软件工程工具来切实提高软件过程改进的实际效果。

发现短板

过程改进的实施是一个综合的系统工程,最终实施的效果取决于多方面的因素。卡内基-梅隆大学软件工程研究所(SEI)很早就描绘出了着名的“质量三角形”,形象地 说明了产品质量和生产率一般是由三个主要的因素决定:人、流程和技术/工具。如图1所示。

提高软件过程改进的实际效果(图一)
图1:质量三角形

其实这个图也可以用时下比较流行的“木桶”理论来进一步的解释,即过程改进的效果是由三块木板拼成的一个木桶,实施效果取决于构成整个木桶的最短的那块木板。我们需要找出其中到底是哪块木板最短。而在实际情况中,我们会发现,大部分公司往往重视的是“流程”和“人”这两块木板,在完善流程和大力培训人员的同时,忽略了“工具”的同步改进。“工具”便成为制约过程改进实施的短板。

项目管理工具为核心

我们知道,大部分的公司或多或少都需要用到项目管理理论中涉及的一些知识体系,如项目计划、风险管理、人力资源管理、沟通管理等等。据我们观察,中小型企业在项目管理的活动中,在工具的运用上还是仅仅限于项目进度的管理,即只管理到计划本身,没有综合管理项目过程中的管理活动。其实流程改进的很多的活动,最终也是会体现在项目管理的活动中,如果忽略这些活动的管理,流程的贯彻和执行就会进入一个黑盒子状态,SEPG的人员不清楚制定的流程是否合理的运用,SQA的人员不清楚流程执行中的细节状态,找不出偏差和问题,公司领导也不知道质量问题的发生根源在哪里。针对项目管理在产品开发过程的重要性,我们考察了业界一些项目管理工具的优缺点后,发现很难有一个现成的工具产品符合我们对项目管理和流程管理有机结合的需求,于是笔者带领了一支有丰富开发经验的技术小组,开始了自行研制开发基于WEB的综合项目管理系统的工作,历时一年之后,我们的系统ProgramConsole开发完成。这个系统在公司推广后,收到很好的效果。ProgramConsole可以很方便的了解到目前全公司各部门正在执行的项目情况,包括计划进度、问题列表、风险列表、流程执行情况、人力资源使用情况和质量情况。同时,由于ProgramConsole设计之初就定位为综合项目管理信息门户,所以集成了即互相独立,又紧密关联的其他工具的内容。这些工具包括流程管理系统、文档管理系统、缺陷跟踪系统、需求管理系统和测试管理等。
以流程管理工具为引擎

流程(Process),即一系列有关联的、有顺序的活动的集合。流程是以前好的经验的总结,是不断重复以前正确做事的方法。更精炼的说,流程要告诉我们的是:正确的人,在正确的时间,做正确的事情,将会得到正确的结果。CMMI其实就是一个以流程改进为核心的一种软件企业能力提高的模型。因此流程改进在一定程度上成为过程改进的核心工作。

一般来说,流程体系可以用一个金字塔来描述,最上面一层是公司级政策性文件(Policy),中间是具体的开发流程,如软件开发流程、测试管理流程等。最下面的是一些更详细的指导文件,如检查表(Checklist)、模板(Template)等等,如图2所示。

提高软件过程改进的实际效果(图二)
图2:流程体系框架

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

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

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

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

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

本文:http://www.qqread.com/soft-engineering/w402366.html 更多文章 更多内容请看常用软件加密宝典杀毒软件专栏软件插件专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章