UML软件工程组织

产品开发的组织架构和开发管理
作者:cloudward  出处:互联网

摘要:产品开发的组织架构和产品开发过程管理是一个软件企业开发管理的两个侧面,开发组织架构指软件项目的立项和项目开发有效的人员调配和组织,开发过程管理指在项目确定后,软件开发过程的管理。本文根据作者在建立软件企业管理体系时采用的集成产品开发(IPD)和CMM2级过程控制的基本思想和体会整理而成,着重介绍企业的开发组织和开发过程管理的基本原则,并以IPD和CMM2级的管理思想为基础建立了一套完整的产品开发组织架构和过程管理体系,对提高产品的开发效率和产品研发设计的质量有指导作用。

中图法分类号: TP301  文献标识码:B

1、基于IPD管理思想的产品开发组织架构

产品开发的组织架构指开发项目的立项和如何有效的确定产品开发的人员组织。确定开发产品的立项和合理的调配开发人员组建开发团队是产品开发成功的前提和基础,通过合理的产品立项组织和产品开发过程控制,缩短产品的开发周期,达到资源的合理利用。

1.1、产品开发IPD的基本思想

在产品开发组织中,集成产品开发的基本思想是一套先进、成熟的理论,集成产品开发(Integrated Product Development, 简称IPD)包括产品开发的模式、理念与方法,包含了先进的产品开发理念和开发模式。

集成产品开发(IPD)的基本思想的核心思想包括:

 ·强调产品基于市场开发;新产品开发是一项投资决策。IPD强调要对产品开发进行有效的投资组合分析,开发要以客户需求为核心进行,IPD把正确定义产品概念、市场需求作为流程的第一步,使产品的立项准确;
 ·跨部门、跨系统的协同,采用跨部门的产品开发团队(PDT:Product Development Team),通过有效的沟通、协调以及决策,达到尽快将产品推向市场的目的,强调资源的有效利用和资源整合;
 ·异步开发模式,也称并行工程。通过严密的计划、准确的接口设计,把原来的许多后续活动提前进行,这样可以缩短产品上市时间。
 ·重用性。采用公用构建模块(common building block)提高产品的开发效率。注重技术资源的重用和使用。

1.2、IPD开发模式的优点

产品的开发组织架构主要中依据IPD的基本思想,从企业的流程重组和产品重组的角度使产品的立项开发和产品人力资源有效调配依据一个完整的框架和管理流程,其主要优点在于:

 ①产品研发周期显著缩短;
 ②产品成本降低;
 ③研发费用占总收入的比率降低,人均产出率大幅提高;
 ④产品质量普遍提高;
 ⑤花费在中途废止项目上的费用明现减少。

1.3、基于IPD思想建立的产品开发组织架构

依据IPD框架的基本思想,从企业级的管理角度,构建了一套完整的产品开发组织架构。产品开发体系以矩阵方式组织,划分为产品线和资源线。

产品线是由开发、测试、工程、客户服务等不同部门人员组成的贯穿整个产品开发过程的团队。实行产品经理负责制,由产品经理负责组织产品开发团队(PDT),进行产品的开发、测试、实施和技术支援的组织协调工作;产品开发组织、测试和实施等工作可根据项目大小的需要设项目经理完成具体的开发、测试等工作。

资源线包括开发部,测试部,工程部和技术支援部。各资源部门经理可根据产品开发团队的人员需求情况进行人员调配,组织必要的技术培训和技术指导,以达到资源的合理配置和充分利用。

产品的总体设计和开发管理由产品总体组负责。整体的产品开发组织架构如下:

 
 其中技术总监负责产品的开发和技术管理工作,市场总监负责根据市场需求,协同总体组根据技术实现情况确定产品的立项。

通过矩阵式的资源线和产品线的产品开发组织,使公司产品开发组织灵活,资源调配合理,缩短产品的开发周期,提高产品的开发效率。

2、产品开发的流程化管理

产品开发过程的管理,指产品开发项目确定后,进行产品开发,形成可交付使用的软件产品的过程。在产品的开发过程中,如何作好开发过程的管理和控制,是保证产品开发质量和开发进度的关键。

产品的立项、开发和实施是以结构化的工作流程的方式开展的。产品的生命周期,分为产品的需求分析与立项,总体计划,开发,测试,工程实施,技术支援等阶段。

在产品开发控制中,应根据产品的生命周期进行流程化管理。总体的开发流程为:



 下面根据产品的开发流程给出各阶段的输入、任务、输出。

 2.1 产品需求分析与立项

2.1.1 输入

市场部的产品合同、客户需求以及技术总监的签署意见; 各产品经理的定期产品开发情况报告。

2.1.2 任务

进行产品的系统总体,确定产品的技术方案; 根据产品经理定期的产品开发情况报告,对产品开发中出现的问题,及时协调解决。

2.1.3 输出

 由技术总监和相关人员组织评审产品总体设计方案,确定产品总体设计说明书;
 根据产品总体设计说明书和产品的商务合同,技术总监下达产品开发启动说明书,确定产品经理;
 根据各产品经理定期的产品开发情况报告以及问题解决情况,汇总形成产品开发情况报告,报技术总监及相关人员。

2.1.4 责任人

技术总监,总体组

2.2 总体计划

2.2.1 输入

 产品开发启动说明书;
 产品总体设计说明书;
 产品的合同;
 客户需求;
 产品开发团队人员配置情况。

2.2.2 任务

 根据产品总体设计和产品开发启动说明书,和各资源经理协商,组建开发团队;
 确定产品开发经理、产品测试经理、产品实施经理、产品客服经理;
 制定产品总体开发计划;
 跟踪产品总体开发计划执行情况,协调解决计划执行中出现的问题;
 定期形成产品开发情况报告。

2.2.3 输出

 高效的产品开发团队;
 总体产品开发计划;
 及时跟踪总体产品开发计划执行情况,发现问题及时解决,并定期形成产品开发情况报告;
 总体产品开发计划报技术总监和产品总体组批准生效;
 批准后的总体产品开发计划下发给产品开发经理、测试经理、产品实施经理和产品客服经理;
 开发情况报告定期报给产品总体组;
 交付使用的软件产品。

2.2.4 责任人

产品经理

2.3 开发

2.3.1 输入

 总体产品开发计划;
 产品合同;
 客户需求;
 开发经理必要的技术指导和产品开发相关的技术资源。

2.3.2 任务

 确定客户需求,形成产品需求规格说明书;
 根据总体产品开发计划、开发组人员配备情况和产品需求规格说明书,确定产品开发计划;
 根据确定的需求规格说明书,组织开发人员进行系统的详细设计;
 跟踪开发过程中需求的实现情况,保证产品需求的实现;
 有效的进行开发过程中的配置管理;
 有效的组织、指导、协调开发工作,进行开发小组内的工作任务分配;
 跟踪产品开发计划执行情况,定期形成产品开发情况报告。

2.3.3 输出

 产品需求规格说明书,报产品经理、产品总体组评审,并和客户进行确认后生效;
 产品开发计划,报产品经理,组织开发经理和相关人员评审,确认后生效;
 产品需求实现情况表,产品配置库情况表;
 定期形成开发情况报告,并报产品经理;
 交付满足客户需求的产品;
 产品安装使用说明书。

2.3.4 责任人

 开发项目经理

2.4 测试

2.4.1 输入

 产品需求规格说明书;
 产品使用说明书;
 测试经理的必要指导,并提供相关技术资料;
 总体产品开发计划。

2.4.2 任务

 根据需求规格说明书、产品总体开发计划和产品安装使用说明书制定产品测试计划,编写测试用例;
 组织开发人员进行产品测试;
 对测试结果进行记录,形成测试报告;
 跟踪测试过程中出现的问题,和产品开发经理协商,跟踪确认解决;
 跟踪测试计划执行情况,定期形成产品测试情况报告。

2.4.3 输出

 产品测试计划,报产品经理,评审确认后生效;
 测试报告,报产品经理和产品开发经理;
 产品测试情况报告,报产品经理;
 经过测试的产品。

2.4.4 责任人

 测试项目经理

2.5 工程实施

2.5.1 输入

 开发完成的可交付使用产品;
 总体产品开发计划;
 产品安装使用说明书;
 客户需求和实施现场情况。

2.5.2 任务

 根据产品总体开发计划、客户现场的实际情况制定产品的实施计划;
 执行产品实施计划,有效的组织实施人员进行产品的实施;
 跟踪产品实施情况,协调解决定产品实施中出现的问题,定期形成产品实施情况报告。

2.5.3 输出

 产品实施计划,报产品经理审批后生效执行;
 产品实施情况报告,报产品经理;
 客户产品验收报告,实施后的产品,可交付客户使用。

2.5.4 责任人

 工程经理

2.6 技术支援

2.6.1 输入

 已交付使用的软件产品;
 客户的咨询或服务请求。

2.6.2 任务

 解决客户提出的问题;
 组织客服人员记录问题的解决情况;
 对解决不了的问题,及时反馈给产品经理;
 定期形成客服情况报告;
 根据客服问题的记录以及客户的反馈意见,对产品的开发提出意见或建议,促进产品的设计和开发。

2.6.3 输出

 产品客服情况报告,记录客服情况和客户意见,报产品经理;
 产品开发的意见和建议,报产品经理。

2.6.4 责任人

 客户服务经理

 3、基于CMM2的产品开发过程的文档化管理

软件能力成熟度模型CMM(capability Maturity Model),简称CMM,它是对于软件组织在定义、实施、度量、控制和改善软件过程的实践中各个发展阶段的描述,由卡内基.梅隆大学的软件工程协会(Software Engineering Institute, 简称SEI) 提出并完善,目的是通过一个合理的体系模型来对软件组织开发能力进行合理有效的评估,帮助软件组织在模型实施的过程中提高软件过程管理能力,降低软件系统开发风险,在预定的项目周期和预算内开发出高质量的软件产品。CMM共分5级,CMM2级是可重复级,强调软件开发过程是有纪律的,可控的,其中文档化是开发过程管理和控制的基础。

在产品开发的不同阶段,基于CMM2级过程控制的基本思想,进行项目计划、计划的跟踪监控,进行文档化管理。

开发过程的文档化管理是开发过程控制的重要环节,文档化管理的意义主要在于:

 ·文档化管理是软件开发过程管理制度化、规范化管理的基础,通过开发组织和产品开发过程的文档化管理保证产品开发过程是有序和有纪律的;
 ·文档化管理也是有效保存公司技术资源和管理资源的基础;
 ·文档化管理也是产品开发过程跟踪控制和产品开发过程有效沟通的基础;
 ·通过文档化的管理,定期的进行产品开发情况汇报和产品评审,也是质量考核的基础和依据。

在整个项目执行过程中,阶段性的计划,以及计划执行情况的跟踪反馈非常重要,因为只有通过对项目计划执行情况的跟踪,才能发现并及时解决项目执行过程中的问题,控制项目的执行过程,使项目按计划完成。

整个管理体系中的文档包括管理文档和技术文档,整个文档管理体系应根据实际要求制定相应的模版,以便于企业整体的文档标准化管理。

总结

在产品组织中,如何依据市场的需求进行产品的立项是一关键环节。而在产品开发启动后,如何做好过程控制,按计划进行产品开发,是产品开发过程的又一重要环节。本文依据IPD的管理思想和CMM2及过程控制的理论,建立了一套软件企业的产品开发组织和过程管理的管理体系框架,适合中小企业用于产品的开发和过程管理。


版权所有:UML软件工程组织