|
|
  |
| |
|
 |
创新的MATRIX SOLUTION
开发矩阵解决方案
开发矩阵解决方案(Development Matrix
Solutions)是易思博公司对软件开发资源进行有效组织的有效解决方案,该解决方案和易思博的OnTeam项目管理平台共同构成了项目管理中心进行项目管理有效的工具集合。
开发矩阵概念
1、矩阵的源定义:矩阵是数学元素(如联立线性方程的系数)的一组矩形排列,服从特殊的代数运算规律。而矩阵元是在表示量子态的矢量所构成的正交完全集内,一个元素与一指定算符作用于该集内另一个元素所得矢量的标积。
2、矩阵的引申义:这里的"矩阵"是不同于线性代数意义上的概念,暂且把矩阵的某些规律性、纵横性、服从目标项下的整合性引申到软件外包管理过程中。
易思博公司的开发矩阵解决方案就是能使软件开发商(ISV, Independent Software
Vendor)和软件开发小组在软件外包开发过程中获得标准的、最优化的组合程式和管理,从而为更好地进入国际软件外包市场打下基础。
易思博开发矩阵解决方案如下图所示:
在上面的三维矩阵中,x轴代表易思博公司承接的软件项目,y轴代表软件项目开发过程中涉及到的技术方向,z轴代表某个技术方向开发小组的来源。例如,上面的矩阵中就显示了Project
1是由Billing Platform和Telecom两个技术方向的开发小组来组成,而Billing Platform开发小组可能来自易思博公司自己,也可能来自于某一个开发级的合作伙伴;同样地,Telecom开发小组可能来自易思博自己,也可能来自某一个电信方面的开发合作伙伴。这是由这两个技术方向上相关开发小组当时的可用情况决定的。
开发矩阵的特点
矩阵开发解决方案体现了易思博公司对开发资源进行优化组织的思路,该方案具有非常强的系统性和可扩展性。
首先来看一下矩阵开发解决方案的系统性。在中国市场上,存在着一系列软件开发技术水平比较高的开发人员,需要将他们按照各自不同的技术方向和项目背景组织为相关的开发小组,每一个开发小组都能够根据自己的技术特长高效地完成某个软件模块或者子系统的开发。其实,可以将某个技术方向的开发小组看成是完成软件系统某个零部件生产的技术工人,这样,不同的开发小组就成了生产不同软件零部件的车间。易思博就是要有效地组织这些生产车间,然后安排各自不同车间生产出不同的软件零部件,基于生产出来的零部件,完成组装工序,最后形成集成在一起的系统。
其次,再来看一下该开发解决方案的可扩展性。从开发矩阵的结构我们可以非常明显地看到:在某个技术方向上,都不仅仅存在着单一的开发小组,这个方向的开发小组可能存在着很多个,而且这些相同技术方向的开发小组可能来自于不同的软件公司或者团体。这样,在各个技术方向的项目开发方面,都能够基于目前良好的开发力量组织,将相应的开发小组进行组合,形成所需要的开发团队。比如,某个项目的开发可能需要技术方向1方面的开发小组2个,技术方向2方面的开发小组1个,技术方向3方面的开发小组3个等等。那么,这6个技术方向不完全相同、来自于不同软件公司或团体的开发小组就一起来协同完成该软件项目的开发。
开发矩阵的结构
在业务的发展过程中,易思博根据自己的业务发展规模来决定开发矩阵的大小。比如,如果易思博当前正在同时进行的软件开发项目是10个,这10个项目涉及到的技术方向一共是20个,每个技术方向最多需要的开发小组为5个,那么为了保证这10个项目的正常开发进度,易思博公司就应该至少形成一个10×20×5的开发矩阵,当然,这是比较理想的情形。也就是说,每一个单位的开发力量都能够随时为易思博所调用。鉴于易思博和各个开发级合作伙伴合作的紧密程度,在并行处理10个项目时,易思博必须形成一个10×m×n(m>20,n>5)的矩阵才能够保障项目突发性导致的临时开发力量需求。
当然,并不是说,在开发矩阵中的每一个矩阵元素都是非空元素(如果我们在某个技术方向上发展的开发小组没有达到矩阵在该维上的度,那么就说明矩阵在该行或者列上存在着很多的空元素)。这样,实际上就决定了:在很大程度上,易思博开发矩阵是一个稀疏矩阵,即在矩阵中存在着很多的空元素(或者我们也可以将这些元素称为零元素)。这是因为并不是每个项目都会用到全部技术方向的全部的开发小组,可能我们在矩阵中设置了20个技术方向,但是每一个单个的软件项目可能只是用到其中少于5个技术方向的开发要求,也就是说,其中至少15行都是不存在矩阵元素的。这是易思博开发矩阵在结构上一个比较显著的特点。
矩阵的稀疏程度反映了技术方向分类的不同。实际上,矩阵的稀疏程度越高,说明某项目用到的技术相对集中,在项目管理和软件开发等方面将会大大降低复杂度。而矩阵的稀疏程度如果比较低,那么,某个软件项目开发过程中可能涉及到很多种技术,另外,在某种技术方向上可能还不只是涉及到一个开发小组,这样就直接导致了在进行这种类型的项目开发过程中,管理比较复杂。从另外一个角度来讲,如果开发矩阵中的元素多数都集中在开发矩阵的对角线或者对角面上或者附近,则说明开发力量的组织具有极高的有效性和科学性。
完成开发力量的组织只是为后续的项目开发作好了第一步的准备。在进行一系列软件项目开发的过程中,比较核心的过程实际上是软件开发过程的监控和管理,这是项目开发过程中比较复杂同时也是难度比较大的过程。易思博公司有自己核心的技术平台OnTeam,为进行一系列项目开发的管理提供了强大的技术支持后盾。通过规范化、标准化的一系列过程界定,OnTeam很好地实现了软件项目开发过程的管理。具体请参见OnTeam的相关内容介绍。
开发矩阵的扩展
由于信息技术的发展总是日新月异,所以,将来必然会产生各种各样的新技术,由此会产生相应技术方向的软件项目,同时也会产生一系列以新技术为自己的专业技术方向的技术型软件公司。不管将来信息技术发生怎样的变化,易思博的开发矩阵都可以直接在x轴、y轴、z轴三个维度上分别进行扩展,适应新的信息技术时代的要求。
在易思博发展的前期,海外软件项目源不是特别稳定,根据海外项目的获得情况,易思博适当利用自己专职的开发人员来完成某些软件项目的开发,这是易思博矩阵式开发模型的初始情形。随着后期易思博在美国进而欧洲、日本等地软件外包业务的迅速发展,易思博的开发矩阵已经在各个维度上进行了相应的扩展,而且在后续的发展过程中会一直进行扩展,尤其是在软件项目维度(x方向)。
也就是说,易思博公司将更加完善地完成国内开发力量的有效组织,在海外软件项目来源相对稳定,进而会发生很大业务增长的情况下,易思博公司将在充分利用现在自有开发人力资源的情况下,很好地利用开发级合作伙伴的技术资源。来自于不同公司的相同技术特长的技术人员可以组成不同的技术小组,再以小组为单位根据不同的软件项目进行组合,组成一个比较大的项目组。这就类似于按照软件的开发需要将开发人员组织为一个个的基本单元,而每一个单元开发力量都是用于完成软件开发过程中某一个单元任务进而子任务、阶段任务的开发实现。基于开发矩阵解决方案的指导,易思博就能够按照相关的原则和方法完成相对分散的中国开发人员的更加合理化的组织,在遇到相关的软件项目时,就能够基于目前已有的开发小组,选择所需的开发小组组成合适的项目小组,完成所分配软件项目的开发。
矩阵式开发模型对于提高中国软件开发的整体规模和效率将起到极大的推动作用。从人类社会的发展历史来看,一次次的社会化大分工曾经极大地促进了人类社会的进步。现在,软件行业的发展也必定要根据一定的分工来实现软件开发过程中的标准化和规范化管理。因此,易思博的矩阵式开发管理模型就根据开发人员的技术方向和项目背景,同时根据目前开发力量分布的地域性和组织性(目前,软件公司级开发力量的组织还是基本上以开发人员所在的公司为基本的组织单位),将软件开发人员组织成相应的小组。
开发矩阵解决方案的分类
易思博公司的开发矩阵解决方案分为三类:
1、资源优化开发矩阵解决方案
软件公司是典型的知识密集型企业,其中最为关键的要素是各种智力资源的优化组合与配置,包括人力资源、管理决策、时间安排、软件的重用性、软件组件库的建立等。
例如,通过资源优化开发矩阵解决方案能够实现人力资源的合理优化组织,并通过信息反馈,供软件项目执行层或决策层进行分析;也可以实现一个软件外包项目的多种优势资源的智能化组合、对多个同类外包项目的管理等。
主要体现在以下几个方面:
A、采用资源优化开发矩阵解决方案后,其各项性能比传统开发资源配置模式下的各项性能都要优越:
以开发某CRM软件系统为例。传统软件外包与使用资源优化开发矩阵解决方案后的软件开发效果比较见下表。
B、资源优化解决方案的其他内容:软件的重用性优化、软件组件库的建立等。
软件的重用性:采用资源优化开发矩阵解决方案可以帮助软件开发者对数据、源代码、程序、文档等相关资源进行重复利用。这种利用方式可以是单个开发者对某个程序源代码的重用,也可以是在某个单位开发组织内部对部分资源进行共享。
通过资源优化解决方案可以找到软件开发项目相关的所有可重用的数据、源代码、程序、文档等。这样就大大节约了开发成本,缩短了开发周期。
软件组件库:资源优化开发矩阵解决方案对资源优化提出了系统的解决方案。如为了从根本上解决软件开发资源的优化配置,建立了专门的软件组件库。
软件组件库的作用是:按照一定的标准,把被优化的目标资源制成单元化的模块,存储在软件组件库中。在此基础上,为开发者提供智能化的资源优化解决方案。
矩阵开发解决方案按照技术方向以及项目背景对开发力量进行了优化组织,这对于进行组件或者构件的积累非常有帮助。在进行某个软件项目开发的过程中,需要不同特长和技术背景的不同开发小组合作完成开发。由于这些具有特定技术特长的开发小组非常熟练于某种类型软件某个功能模块的开发,在不断的软件项目开发过程中,就能够基于此类软件的开发形成相应的功能组件,从而在以后类似的项目开发过程中,利用历史积累的比较成熟的组件,提高项目的开发进度,加强软件开发的稳定性,同时更进一步提高了软件的重用性。
2、软件工程过程开发矩阵解决方案
软件项目开发活动包括许多子过程,如需求分析、总体设计、详细设计、编码实现、质量测试、试运行、安装、维护等。
软件工程过程开发矩阵解决方案帮助软件外包者制定符合国际标准的开发解决方案,如符合ISO9001、CMM开发标准的解决方案等。
采用软件工程过程开发矩阵解决方案,某电信设备供应商进行了其技术测试平台的开发,达到了在一般传统开发解决方案下无法实现的目标效果:
A、测试平台可自动测试产品的独立可靠性;
B、平台具有较高的兼容、集成智能环境;
C、可全面自动测试管理系统,包括测试数据的管理和权限;
D、测试平台具有多层次、开放的智能化界面;
E、能自动测试产品在监控和运行中的可靠性,以及平行和同步过程的执行性能。
技术、工具、过程是软件工程过程开发矩阵解决方案的关键部分。见下图:
图例说明:本图描述了以软件工程过程开发矩阵解决方案为中心,以三种主要的智能化为思考方向主线,围绕软件开发的各个程序过程所设计的多种解决方案。
 |
3、外包市场开发矩阵解决方案
外包市场的开拓与管理是每一个软件外包企业经营过程中的重要过程。软件外包的市场开拓主要采用B2B的形式。
从宏观角度分析,该方案又分为外包需求方、供应方的解决方案。从市场生态链环节来看,又分为:
开发矩阵解决方案的优势
在公司设计战略、软件开发组织、外包市场运作等方面,应用开发矩阵解决方案能够为软件外包公司实现企业利润的最大化和成本的最小化。它由多个开放的界面、可扩展、标准的解决方案组成,这些系统的解决方案对软件企业的软件基础性结构、外包服务、智能化商务等方面将增加巨大价值。
开发矩阵解决方案是帮助企业实现软件商业智能化的一种解决方案。开发矩阵解决方案体现在以下方面:降低开发成本、增加销售收入和利润、提高开发效率和软件质量。以开发矩阵解决方案中的资源优化开发矩阵解决方案为例:
①目标
软件企业最主要的资源是开发资源的配置,软件开发人员和时间进度配置等要素的最优化会直接影响软件开发的最终成本。帮助软件企业,实现在软件外包过程中软件资源配置的最优化(Optimization)和智能化(Intelligence)是此解决方案的目标。
②解决方案剖析
若把每一影响软件企业开发成本的"元素"作为解决方案最优化的因素,这些"元素"相互优化组合,则构成了矩阵式的解决方案。
按软件开发过程进行分段,把每一个过程所需人员进行细分,若用开发矩阵解决方案,实践证明,智能化的配置比人工化配置效率明显提高,成本显著降低。见下表:
采用开发矩阵解决方案后,从价值模式角度进行分析:
|
|