SUN的帖子
关于。。。。。的思考 中说到系统分析员的职责之一是将系统纵向划分,也就是将系统划分成一个个的模块:
定义模块的功能,模块的实现,模块的流程,模块级别,模块之间的关系;职责之二是根据系统开发的技术,所使用的基
础类库来总结出一个BASE模块为整个系统提供基础服务,并提供编码规范,命名规则的文 档,界面开发规范文档等等。
我对第一个职责没什么意见,但是第二个职责交给系统分析人员做,是否有越俎代庖之嫌?
说到底,系统分析人员在项目组里只是一个较高级设计人员而已,他对组中其他成员,对其他项目,对整个组织并没有约束
的义务和权力。整个项目软件开发能力的进化,并不能由系统分析人员来负责。
CMM里面有一个概念--基线Baseline。SUN的帖子中提到的Common组件、BASE模块,甚至各种各样的规范,其实只是基线
的一部分而已。所有的这些技术和非技术知识的沉淀,加上实施的最佳实践(best practice),构成了整个组织的软件能力
基线。而整个组织的基线,应该由有足够权限的组织领导者,例如CTO来掌管。
一个组织的基线库可能是非常丰富的,并不是每一项都适合一个特定的项目,所以对于项目实施者来说,要做的是以下三件事情:
1)项目准备阶段,从基线库中提取当前项目所需的各种基线形成项目基线集,并进行人员的培训;
2)项目实施阶段,对项目基线集进行跟踪,对改进部分形成基线修改建议书,并在项目中有限度地进行验证和实施;
3)项目总结阶段,向上级提交基线修改建议书,并附上实验数据。
即使是这三件事,也不是系统分析员应该做的。系统分析员就应该专注于系统分析的工作(也即SUN一文提及的第一职责),
其余的关于软件能力基线的问题,完全可以交给项目的配置管理人员来负责。
例如软件开发工具的统一选择和培训,开发环境的配置和管理,文档规范和代码规范的评审和管理,这些本来就是配置管理人员
的职责。而第三方构件组件控件和基线中的公共模块,从本质上说,不也是软件开发工具的一部分么?
在项目管理的发展趋势中,配置管理人员的权责是越来越大,很多时候甚至兼任了QA的职责。把软件基线交给这样的专门
人员,让系统分析人员从繁琐的管理工作中抽身出来,好好地完成更有挑战性的设计工作吧!
eXcel Wong
最后更新:19:31:59 Thursday, May 19, 2005