一,
在我们进行产品开发管理的过程中,任何一个中型以上的产品开发,一般都是一个集成产品开发的过程,这其实我们看待产品开发的角度与层次,让我分层次来看一个IT公司的管理:
1,一个常规IT公司从运作角度来说,按产品的生成消亡来看,分为市场阶段,产品阶段,开发阶段,发布交付阶段,维护阶段。根据这些阶段相应承担其责的部门应有,市场部门(sales,marketing),产品部门(product),
RD部门(R&D),测试部门,支持部门(FAE,Call Service).同时,相应的支持部门还会有人力资源部门(HR)财务部门(Finance),运维部门(OM,Operation&Maintain).那么产品集成开发与软件工程所涉及的部门当属R&D,Product,Testing,Technical Support.HR,
2,从集成产品开发角度,系统工程组从产品部门得到需求(也可以从客户)进行需求分析,然后进行产品集成系统设计(可以增加系统分析与设计部门),然后以SOW(任务分配书)形式分给不同软件项目组,不同硬件组,同时配备给他们相应的测试组,最后产品测试组装,发布。那么软件工程的理论(具体的方法学)可以应用到软件项目组中。(当然,软件工程中的方法学也是一个与组织相关的系统工程,也有自己的组织方法,比如要进行培训,要进行人力资源配合,要进行组织的不断改进与变化)。比如CMM就有适用于软件开发的SW-CMM也有适用于其它开发(如硬件相关产品的开发)P-CMM,为了简化,我们就只注重SW-CMM那么集成产品开发中,软件开发项目组,才是SW-CMM大显身手的地方,当然软件开发中也有系统与架构设计这一环节,所以IPD(Integerated Product Development)强调是较高层次的组织协调与系统分析,而软件工程方法注重是软件开发及相关过程的方法论。这样容易理解集成产品开发与软件工程之间的关系。接下来我们来学习一下软件工程中的方法学:CMM,RUP,XP。
a,CMM:
根据软件开发经验,对软件开发过程进行识别,标明,识别其中关键的部分(KPA),这些部分对软件产品的开发起决定性或至关重要的作用,一个软件开发企业,建立这些部分规则,及好的实践方法,这样这个企业组织就能够成功应对各种软件产品的开发,当然这些关健部分只所以成为关健部分,都是以软件开发经验作为依据,客观,实用,当然一个企业不可能短时间内全部对这些部分进行关注与达到一定的组织能力。于是CMM(Capability of Mature Model)对这些部分进行按级别划分,企业可以一步一步,实现这些部分,这些部分按着级别,逐渐对开发组织进行越来越清晰的认识与越来越有效的管理。所以这些部分是分层次的。如果不做好第二层,就不可能做好第三层次。
这些部分也可以按过程过化分,一个产品的软件开发过程,其中有数年过程
基本过程:也可以看作产品的生命周期过程。
需求过程,开发过程,验证过程,发布过程,维护过程。
质量过程:
组织过程:
b,RUP(Rational Unite Process)
这是一套对软件开发过程的方法学,强调以架构为中心,迭代式渐近开发方法来完成产品的开发周期。
也就是说是重点在于产品开发生命周期的一种方法学
c,XP (Extremely Process)
算是一种Alige Process,强调面对需求快速变化的项目,强调快速的结对编程,开发产物的组内透明,与重构。也就是说是重点在于产品开发生命周期的一种方法学