第一章 简介
1.1 研究背景
我之前曾在厦门一家中等规模(合计开发人员50人)的软件公司担任项目经理,开始由于对软件工程的不怎么重视,一些失败的软件项目给我留下了极深的映象。在失败和困惑中,我们开始反思,也总结了一些经验教训。后来,我们在开发过程中引入了MSF(Microsoft Solutions Framework)软件开发模型,并结合公司的具体情况进行了裁减。实践证明,我们的软件工程过程管理能力大为提高,软件的质量也有较大程度的提高,软件的交付期也得到了基本保证,已经没有再发生那种“永远也完不成项目”的情况。
1.2 研究动机
在这篇文章中,主要谈论了在产品开发中的项目管理问题,此处的“产品开发”是指做一个通用的软件产品或者一些具体的领域性系统集成项目。下面我主要结合我们公司实施MSF的情况,谈谈自己对软件工程的一些初步看法。
第二章 MSF概要介绍
MSF主要由几个模型构成,其中包括:组队模型、开发过程模型、应用模型、风险管理模型。下面只对组队模型进行较详细的介绍,其他模型则简要说明,更详细的资料请查阅[2]。
2.1组队模型
MSF把软件开发分成了六个小组,分别是:程序管理组、产品管理组、开发组、用户培训组、测试组、安装管理组。组队的原则是小队(一般3-8人)、多侧面;角色交叉、目标一致;人员技术、业务精;关注能力和交货期;对项目的前景认识一致;人人参与设计;善于总结经验;共同管理、共同决策,项目人员同地工作等。
程序管理组的工作是:
①推动开发过程;
②负责产品规范说明;
③沟通和协调各组关系;
④管理项目进度,报告项目状态;
⑤把握总体决策。
产品管理组的工作是:
①代表客户(customer);
②描述项目产品轮廓;
③负责需求定义;
④平衡功能和进度要求;
⑤负责市场、宣传、公共关系等。
开发组的工作是:
①概要、详细设计;
②完成产品开发;
③准备安装的产品。
测试组的工作是:
①制定测试策略和计划;
②尽可能发现问题。
用户培训组工作是:
①代表终端用户(end user);
②负责用户需求定义;项目管理者联盟文章
③把握可用性和用户性能指标。项目管理培训
安装管理组工作是:
①负责产品安装;
②把握可管理性和可支持性。项目管理培训
各组的地位同等,非领导关系,并充分授权,保证目标清晰一致,由各组的负责人共同管理项目。项目管理者联盟
2.2过程模型项目管理者联盟文章
MSF过程模型主要确立了四个重要的里程碑:前景范围确认、项目规划确认、开发完成、对外发布,通过控制这四个里程碑来分解管理项目过程。
2.3应用模型项目管理论坛
MSF应用模型是分层次的应用模型,大体可分为三层,用户层、业务层和数据层,各层次通过标准组件进行封装,互相通讯调用来完成系统任务。项目管理论坛
2.4风险模型
MSF风险管理过程主要包括:风险识别、风险表述,通过分析、计划、跟踪和控制过程,终解除风险。
第三章 MSF在项目中的具体应用项目经理圈子
3.1组队模型裁减
在中小软件企业中,一般项目的规模不会太大,通常是十几个人,少的只有几个人,所以必须对MSF的组队模型进行简化。通常的做法是划分成三个组,程序管理组:一般对应于原来的项目经理,通常项目经理一个人,如果需要还可以给他配个组手,通常称为“项目秘书”;产品管理和测试组:一般包括MSF中的产品管理组,测试组、用户培训和安装管理,主要代表用户确定软件需求并测试产品是否满足需求;开发组:和MSF的开发组相同。这样的组队,比较符合中小项目的需要,在实践中也证明是比较合理的。