一、技术架构
技术架构决定开发线路。这个技术架构是成熟的还是不成熟的,对于项目进度的影响非常大。对于不成熟的技术架构,要两条腿走路,一个是谋求外部资源的支持,通过引进强力外援来将不成熟的技术架构变成成熟的技术架构,这是一条比较简洁的有效的方法,但是怎样找到这样的强援呢?另一个是内部的技术摸索,这个路子就比较艰苦了,不确定的因素也比较大,在不得已的情况也只能采取这种方式,更多的情况可能是二者相互结合。
二、项目的规模
需求决定项目的规模。在项目开始的时候,需求分析还没有做,项目的规模不能完全确定,所以需要估算,而且还需要根据技术架构结合起来考虑。考虑项目规模的目的是衡量项目的工作量,从而为下一步工作做准备。
三、外部资源
在内部资源匮乏的情况下,可以考虑借用外部资源。一个是把项目推出去,把项目外包,这样做的好处是省心,缺点是不容易控制;另一个是把外部优秀的人员借进项目内使用。
这样做的好处是项目控制有力,项目组成员可以学到一些好东西,而且可以不用长期养这些优秀的人(他们的成本往往很高),缺点是在本项目中对这些人员的支出会很高,公司会比较费心,如何建立与外部资源的信任关系也是一个问题。
四、产能
公司实力的增长是其产能的增长,产能包括市场能力和项目开发能力。但就项目开发能力而言,开发人员的多少只是开发能力一个指标,但这个计算不是很准确,核心的指标应该是公司在单位时间内所能开发的标准规模的项目是多少,同时能支持多少个这样的项目正常进行。
项目规模有大有小,对生产能力的消耗也不一样,为了可比性,需要将项目的规模折算成标准规模项目。比如我们定义标准规模项目为10人月(人月是一个平均值,是指平均一个人一个月所能完成的项目实体内容的数量),一个20人月的项目就可以折算为2个标准项目。
在软件企业里,可以将增加开发人员的数量作为扩大生产能力的一个途径,但新手的工作效率与老手的工作效率是不一样的,新手的一个人月不等于老手的一个人月。在一个项目里一般可以容忍一定比例的新手加入到项目中而不会影响到项目的质量和进度。这比例一定要把握好,超过这个比例就可能出问题。
由于老手的数量有限,可投入到扩张项目的资源就有限,所以自身的扩张一定是有限制的。换一种思路,培训是否可以改善新人的技术水平?应该说这是可以的,但是有限的,没有经过项目的磨练总要差很多。总之,公司扩张是必要的,但不能盲目扩张,招进新人是必须的,但不能盲目招人,新人的比例要有限制。