首页 理论教育 完美软件开发:正交分解逻辑

完美软件开发:正交分解逻辑

时间:2023-11-21 理论教育 版权反馈
【摘要】:对流程的正交性进行干扰的因素实际上随处可见。即使是像CMMI这样经典的方法论,其中仍然会包含着不正交的分解。同时,在IPM过程域中则要求定义项目的工作环境。PP和IPM中的上述两个步骤,事实上包含了非正交的部分。这样一来,PP和IPM所扮演的角色也就不那么清楚了。不同的人对CMMI会有不同的解释,但大多冗长或者不容易懂。CMMI L3及以下的过程域只要能够把握好尺度,其意义毋庸置疑。

完美软件开发:正交分解逻辑

重复做同样的工作会降低效率→在确保流程对既定项目的全面覆盖的同时,要确保流程中的步骤彼此正交→正交的流程是指,流程中的各步骤有明确的焦点,但不重叠。

正交本身是一个数学概念,如果两条直线正交,那么意味着这两个直线相互垂直。而流程中,步骤的正交则是指两个步骤中不做同样的或类似的工作。

比如说,如果在项目的配置管理中已经定义了Check In/Check Out的规则,那么就不需要在Coding Rule再进行定义,否则配置管理和Coding这两个步骤就不是正交的。

不正交的步骤坏处非常明显:为保证一致性会增加额外的维护成本,会导致不必要的文档交叉引用,类似的事情做两次就会导致资源浪费和人员的逆反心理

从技术角度看,使流程中的步骤彼此正交并非是很难的课题,关键是要做到不唯上,不唯书,只唯实。

对流程的正交性进行干扰的因素实际上随处可见。即使是像CMMI这样经典的方法论,其中仍然会包含着不正交的分解。我们来看下面这个例子。

在CMMI中,分别定义了PP(Project Planning)和IPM(Integrated Project Management)两个过程域,这两个过程域彼此间的正交性并不是很好。

比如说,在PP过程域中,要求对项目所需要的设备和工具进行规划。

同时,在IPM过程域中则要求定义项目的工作环境。工作环境的定义相对比较宽泛,也包含了所需要的软硬件。

PP和IPM中的上述两个步骤,事实上包含了非正交的部分。对软硬件等进行规划与对工作环境的规划一定会有重叠部分—虽然可以认为这两个步骤并非完全相同。

这样一来,PP和IPM所扮演的角色也就不那么清楚了。

正常来讲,我们可以认为PP是对项目进行规划,而IPM则是要求在对项目进行规划的时候考虑组织级的因素。但如果IPM对某些具体步骤,比如工作环境的处理进行了定义,那么其自身所扮演的角色也就变得模糊了。

不同的人对CMMI会有不同的解释,但大多冗长或者不容易懂。在这里我们试着用最短的文字和最简单的图形把CMMI描绘出来,也许不十分精确,但应该可以传其神韵。

提炼后的CMMI模型如图3-3所示。

978-7-111-42626-4-Chapter03-4.jpg(www.xing528.com)

图3-3 素描CMMI

其中,

计划可以对应到:PP(Project Planning),IPM(Integrated Project Management),QPM(Quantitative Project Management),RSKM(Risk Management)。

实施可以对应到:TS(Technical Solution),PI(Product Integration),RD(Requirements Development),REQM(Requirements Management)。

检查可以对应到:VER(Verification),VAL(Validation),PMC(Project Monitoring and Control),PPQA(Process and Product Quality Assurance),OPP(Organizational Process Performance)。

分析可以对应到:MA(Measurement and Analysis),CAR(Causal Analysis and Resolution)。

改善可以对应到:OPF(Organizational Process Focus),OID(Organizational Innovation and Deployment)。

培训可以对应到:OT(Organizational Training Process)。

信息的保存和管理可以对应到:CM(Configuration Management)。

展开到组织级可以对应到:OPD(Organizational Process Definition)。

做选择和决定可以对应到:DAR(Decision Analysis and Resolution)。

把图3-3递归到每个过程域内部,就又可以得到大部分的GP(Generic Practice)和SP(Specific Practice)。

CMMI L3及以下的过程域只要能够把握好尺度,其意义毋庸置疑。四、五级则本质上和2.2.6中的逻辑链冲突。我们在2.2.6中曾经提到,由于软件自身是一种固化的思维,度量上具有一定的模糊性,因此精细化的量化管理很难用在软件项目之中,而四、五级所要求的正是很精细的量化管理,也许也可以找到一个平衡点作为两者交汇处,但这显然是一个更大的课题,本书就不予论述了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈