在PMBOK中,将项目相关的组织结构,分成了职能型、矩阵型和项目型三大类。这种组织结构的分类是组织级的,需要与组织内外各方面的条件相适应。
针对软件公司而言,由于主要处于乙方地位(即使是甲方内部的部门,相对于其他业务部门而言其实也是乙方),而且软件的实施过程也经常体现为项目的管理方式,所以在一些软件公司中就比较偏重项目管理,甚至把公司的运营管理模式也建立为项目型的。经过多年的实践和反思,我认为软件公司一定不能是项目型的组织结构。
软件产业是知识经济的典型代表。软件的创造者将其头脑中的知识经验,以软件的形式固化下来,并利用软件的易复制性进行广泛的销售。软件的复制过程非常廉价,而软件中所蕴含的知识经验却往往是众多专家长期知识经验的总结和升华。所以软件的核心价值不在于其介质载体,而在于其内容。就像书籍一样,其价值绝非在于纸张和印刷本身。因此,软件产业的商业模式,核心应体现为智力密集型,软件公司中确实也是绝大部分成本都体现为人力成本。所以开发软件的过程具有很高的成本,然后以低廉的成本进行复制,通过大量的销售来分摊成本,从而获得较高的利润回报。这是软件产业应有的商业模式,微软就是这样的典型。
有许多软件公司不是开发软件产品的,无法实现类似微软公司那样的商业模式。这些公司承接一个个项目,在项目中按照客户的需求定制开发软件,结果就相当于开发了一个软件只销售一次,这种情况下其价格应该是非常高的,使得甲乙双方都面临一定的压力。在这种情况下,软件公司都必然的努力寻求软件复用,在不同项目之间寻找相近、可服用的软件模块,从而降低后续项目的开发成本,缩短开发周期,降低开发风险。作为甲方来说也更愿意接受这样的开发模式,同样可以降低甲方的价格压力和项目风险。软件复用是这类非产品的软件公司降低成本和风险的主要出路。从更深层来说,软件复用使得项目中开发出来的软件模块具有可继承性,能够在更多的项目中被复用,间接实现一个软件模块的多次销售。
要复用项目成果,就必须避免每个项目都是“狗熊掰棒子”,要对软件(模块)的生命周期进行管理,使得软件(模块)具有更好的通用性,这与开发产品的思路是相近的。显然,此时的软件生命周期是大于项目生命周期的,也就要求有超越项目的对软件生命周期进行管理的职能存在。软件(模块)在项目中被复用,并在项目中被不断丰富和完善,对此最有利的组织结构就是矩阵型,软件生命周期的管理与项目生命周期的管理,形成矩阵关系。如果是纯项目型的,则会失去对软件生命周期的管理,难以在项目之间形成对软件的复用,结果导致公司缺乏积累,项目成本难以降低。
目前市场中对于软件项目经常以工作量计价,把人按照角色分成几档,每档有一个单价标准,然后根据各种角色在项目中投入的工作量计算项目总价。这种计价方式使软件产业变成了劳动力密集型,而把软件开发本身所需要的知识经验抛在一边,这时的软件开发人员也就变成了蓝领工人,软件公司也会更加注重人力的销售,而不愿意承担领域专家的高成本。久而久之,软件公司将失去活力,最后退化成为软件人力资源外包公司。
这一点对于甲方中负责软件的部门更为重要。甲方中的软件部门,必须要对软件生命周期负责,项目只是实现软件生命周期的具体过程,除了项目以外,在软件维护中还有许多非项目的软件升级的过程,同样需要进行管理,要保证不同项目、不同维护的过程中,软件生命周期的延续性和一致性。
发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)