虽然CMMI,RUP,XP,等等软件过程框架和方法风靡一时,但是业内人士都有一个不争的事实:真正有效的过程改进其实很少发生。
问题关键在哪里呢,在于软件过程改进的方式!
一般的软件过程改进都是建立一个“良好的过程规范”,这个规范可能是CMMI那样主要强调过程质量标准的,也可能像RUP和XP那样比较强调实施路线图的,但是,这样的过程改进都有一个很大的成本风险:先有帽子,然后再说脑袋如何如何。
呵呵,明显的不合逻辑。
火龙果软件基于多年来自一线的过程改进实践经验,建立了一套自己的有效过程改进理论“MyProcess”。MyProcess的改进过程的核心思路如下图所示:
图1:MyProcess过程改进模型
火龙果MyProcess是一个基于过程现状问题的过程改进方法,关注您的当前过程基础与问题,不提倡海市蜃楼式的过程改进,核心宗旨:
- 可行的才是有效的
- 基于当前过程基础
- 关注现在过程问题
- 参考先进过程经验
- 采用进化式的改进
- 改进永无止境
|
MyProcess首先强调关注当前组织中过程的问题,为了避免什么都改进,什么都改进不了的尴尬局面,把过程的问题具体化为项目中的过程问题,首先对项目进行历史再现,然后进行深入的诊断,发现问题,改进问题,把改进好的过程应用于新的项目,对于有普遍意义的实践提升为规范,然后再对规范理论化,形成过程理论。
过程改进涉及到软件工程组织的工作方式、方法和环境的改进,尤其涉及到人员观念和工作习惯的改变,客观的说不应该是一个急进的过程,而是一个结合组织当前的过程问题,逐步改造的过程,所以过程改进模型应该提供一个具体的演进的路线图,而这个演进的路线图可以像CMMI那样分为多个级别,然后逐步改进,但是分级的问题就是对客户的问题进行了主观的分级,虽然这也是基于大量的过程经验得出的,但是很难一下适应客户当前改进的需要,因为改进可能并不是组织当前最关键的目标,一般是辅助或者支持性的目标,所以改进的过程模型应该有另外一种层次出现:不局限于具体的过程域,而强调一种基本的过程改进方式,MyProcess正式关注于这个方面,可以带来一个更灵活和客观的思路。
这样说并不是说CMMI,RUP,XP是无效的过程或者过程改进模型,这些将是我们宝贵的工程资产,在改进过程中,对于面向特定问题的时候,我们依然可以从以上的过程中获得参考。
过程实践-过程规范-过程理论,三者循序发展,互相促进,最重要的,是使改进者在不断的问题改进过程中享用改进带来的价值,而不是长期迷失于改进所带来的痛苦。
MyProcess已经经过多个真实的客户的实践案例,证明 “真正有效的过程改进”将不再是先知们的梦想。我们确信,通过我们与您得的共同努力,一定能够建立适应您的软件开发过程,它将不会仅仅作为一个花瓶,您所得到的,将是一个真正的利器。
作为软件团队的原动力,随着软件规模的扩大,软件过程成为制约项目和产品成败的决定性因素之一,日益开发团队和客户方的重视。如何有效地改进软件过程,成为必须要解决的关键问题。只有积累软件过程改进经验,集成技术与管理为系统的软件过程方案,通过基于实践的软件过程改进方法,您一定能够有效地进行软件过程改进。
为了把错综复杂的过程元素整理清楚,在MyProcess过程构建过程中,我们采用对象模型分析了过程模型,过程元模型如下:
图2:火龙果MyProcess过程元模型
其中元素说明:
- 人员:过程中的具体工作人员,例如:张三,李四,王五。
- 工作:过程中为了实现特定目的执行的行为,例如:需求、分析、架构设计、编码、测试。
- 工具:辅助软件工程实施工具,例如:Rose , CVS , LoadRunner,Nunit,Project
- 过程:集成了人员、工作、工具连续的行为过程,例如:软件开发过程,需求过程,测试过程。
- 工件:过程中或者过程结束的时候产生的工作对象实体,例如:需求说明书、测试计划、源代码,部署单元。
- 角色:对人员进行的抽象,例如:系统分析员,设计师,程序员,测试工程师。
- 模板:对工件的规范化,例如:需求说明书模板,设计模型模板,代码模板
- 过程指南:指导如何进行过程的行动路线图,例如:软件开发过程指南,测试过程指南。
- 工作指南:对具体工作进行指导的路线图,例如:需求分析指南,架构设计指南
- 工作计划:把工作按照时间进行进度编排,成为实施的具体计划,例如:项目工作计划,开发工作计划。
本过程元模型可以清晰地表达过程有关的元素及其关系,对需要制定或者应用过程的人员提供必要的指示,在实际工作中,应该针对具体的工作和过程进行具体化,例如可以针对UP进行具体化,结合项目具体情况对UP进行剪裁,成为能够指导具体项目的过程定义。 |