[chjmailbox]的博客:
http://chenji.mypm.net
软件项目管理过程改进与认知过程(2)

把软件开发过程作为一个信息加工过程,可以从人类认知过程的信息加工理论中得到很多启发

软件开发过程的SW-PASS模型,将软件生产的过程表示为由计划过程(Planning)、注意力过程(Attention)、同时性加工过程(Simultaneous processing)和继时性加工过程(Successive processing)核心过程构成的有机整体。

2 SW-PASS模型

注意力过程是所有过程的基础,是最低层次和最基本的过程,使敏捷过程实现快速的市场反应和合理的资源配置;加工过程处于中间层次,同时性过程和继时性过程实现业务需求向软件产品的编码过程;计划过程是主动适应市场变化的源动力,是系统中最高级的层次。三个层次4个过程以信息的加工处理为中心形成了有机整体。

首先,基于认知过程模型的软件过程基础是注意过程,强调的是注意的选择性和反应的速度。软件过程是以商业目标驱动的,这一点在新的软件工程方法中尤其突出。但事实上,目前软件过程中对业务需求和商业机会的适应很难令人满意。软件开发者和客户都为“什么是需求”而困惑,原因是需求调查与分析的范围过广而难有焦点;因为对每一个需求特性没有建立快速的反馈机制,对于过程的敏捷性得以实现的基础,软件组织在以往过程管理中忽视了如何把注意力集中于一个业务需求的焦点而执行快速的应对流程。注意过程在CMM和敏捷方法中都有很多体现,如CMM中的SSMSPTOOPFDPTCM等,而在敏捷方法中注意力更是其快速、适应和客户满意度的竞争力源泉。

注意是由商业目标驱动的,包括注意的选择和反应的速度。而注意的选择性在软件开发组织中意味着开发者需要暂时的放弃,XP方法中的YAGNI原则和测试在先方法是注意选择性的例子。在软件开发过程中的注意选择主要应该是理性的。XP的计划博弈是在客户与开发者共同参与的博弈过程中对开发焦点进行的选择。FDD把特性放在开发流程的首要位置,而由特性来驱动后序的软件开发,也是为了使开发工作能够找到稳定的焦点。为了提高反应的速度,敏捷方法中有很多的原则,如:小版本,测试在先,40 小时工作制,简单设计,迭代方法的应用等。目的在于在一定时间内把开发工作集中于尽量小的目标从而得到快速的交付物。

在焦点集中快速反应的注意机制基础上,存在两种信息加工过程:同时性加工过程和继时性加工过程。传统的过程管理理论过于强调过程的顺序性的特点,在继时性加工过程上的分析很多,如CMMPRSQASQM等,而在同时性加工能力的提高上则范围过窄,如SCMISMSPE。信息加工的主要功能是接受、加工、维护输入的信息,同时性加工进行同步性的整合,如以体系结构为中心的软件过程和持续集成、设计模式,继时性加工进行信息的序列组织,如瀑布模型、迭代方法。过于强调过程的顺序性而忽视同时性、并发性,造成在很多软件组织中,一两个人组成的项目团队可以快速、高效的完成优秀的软件产品,而当成员增加时,效率就大大下降,软件功能不能使客户满意,这不能简单地解释为沟通协调问题,更多的是过程的同时性加工能力太差。分析模式和设计模式概念的提出对过程的同时性加工能力和继时性加工能力提高有极大的意义,可以解决以体系结构为中心的开发过程的结构重用问题,大大提高了体系结构的清晰性和成熟性。

为了提高同时性加工的速度。XP方法中提出了隐喻方法,试图在模式和体系结构之外找到一个沟通成本更少,内涵更丰富的原型,提高开发的同时性加工能力,但实践证明,隐喻是XP中很不成功的一个部分,也说明同时性加工过程的问题比想象中更难解决。XP的另一些方法——持续集成、重构是非常成功的同时性加工过程,持续集成使组织在任何时候都能提供一个可交付的系统全貌,频繁地进行功能的全面检验。而重构是为了打破原有迭代和模块开发造成的混乱状况,革命性地对系统的内部结构进行新的模式识别和模式创新。

计划过程是软件过程中的最高层次,为组织提供了分析活动、解决问题、评价成果的能力。计划过程是CMM的强项,如SPPRMTPICQPMPCM等,也是PMBOK很重视的方面。敏捷方法中不强调计划,但不是不强调计划过程,如XP中的小版本、计划博弈、结对编程、测试在先等都是很强的计划过程。

注意、信息加工和计划过程共同作用,相互影响。

 

chjmailbox 发表于 2007/2/2 8:13:00 阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志

发表评论:

    昵称:
    密码:
    主页:
    标题:
公 告
登 陆
日志日历
搜 索
日 志
评 论
链 接
统 计