【IT168 专稿】IT168发布的《中国IT应用技术蓝皮书2006-2007》显示,中国软件行业的职业结构是严重失衡的。那么,是什么造成了这种失衡?失衡所带来的后果是什么?如何调整职业结构使趋于正常?
1. 失衡的软件职业结构
在上一篇文章中,我们分析了IT168发布的《中国IT应用技术蓝皮书2006-2007》(以下简称蓝皮书)的职业结构部分的数据,从中总结出按照传统软件工程理论来划分的四类职业所占比例。为清楚起见,现将比例数据罗列如下:
项目经理 占11.7%
系统分析员 占7.8%
高级程序员 占15.1%
程序员 占17.3%
现在让我们来具体分析一下这组数据。软件多以项目开发的形式出现,因此,我们不妨以项目为单位来考察职业结构的比例,并假设一个项目组只有一个项目经理。这容易理解,自古以来,天无二日,国无二主,项目组有如一个小国,虽然现在更流行以“团队(team)”称呼之,道理还是一样的。将比例数据按项目经理作归一化处理后,我们可以得到一个项目组中各种角色的人数:
项目经理 1.0人
系统分析员 0.7人
高级程序员 1.3人
程序员 1.5人
也就是说,在统计意义上,中国的软件项目组中,有1个项目经理,0.7个系统分析员,1.3个高级程序员,1.5个程序员。这与我们通常认为比较合理的1:2:4:8至1:5:25:125相去甚远。 这说明什么呢?难道说项目组不按合理的比例配置角色吗?非也,我相信大多数项目组的人员比例都在合理范围之内。譬如一个15个人的项目组,我们多半会设1个项目经理,2个系统分析员,4个高程,8个程序员,符合1:2:4:8的比例;一个40个人的项目组,则会有1个项目经理,3个系统分析员,9个高程,27个程序员,也符合1:3:9:27的比例。当然,实际项目的人员配比不可能如此教条,可能这个角色多一两个,那个角色少一两个,也未尝不可,不过,平均下来还是成比例的。
既然独立地看,大多数项目的人员配比是合理的,为什么统计数据却如此的不成比例呢?其实问题的关键就在于两个字:规模。
2. 五脏不全的麻雀
容易看出,如果按照金字塔的比例配置角色,即便是最低的1:2:4:8的比例,我们也需要15个人。这意味着,如果项目组少于15个人,那么我们就无法按金字塔比例配置角色。
15个人是个什么概念呢?蓝皮书的另一组数据给了我们一个参考。在企业开发人才数量的调查结果中,三分之一的IT企业开发人员不足10人,又有另外三分之一的企业开发人员不足50人,也就是说,中国约有一半左右的软件企业,即使全军出动,也搭不起一个小规模项目的架子。
这就是中国软件项目的现状。大部分的软件公司,聚三五个乌合之众,扯一面“科技有限公司”的大旗,就敢在IT战场上揭竿而起,占山为王。这样的草莽,寨子里没有充足的粮草,喽罗们未经正规的训练,在正面战场上没有实力和外来军团抗衡,所以只好使出闪挪腾移的手段,以游击战的形式,在次要战场上分点残羹剩饭。
可以想见,这么多不成规模的软件企业,他们所承担的项目,又哪里能成规模呢?譬如,一个不足10人的软件公司,一年的所有人力资源也就120个人月,这样的公司,要生存下去,除了不断地“打单”,别无他法。大单子固然没有他们的份儿,小单子也因为同行竞争太激烈,利润变得微薄无比。据说5年前一个普通的企业网站,合同金额动辄上万,而今在远离市的区荒郊野外,你也可以在“老军医”“专治性病”的招贴旁边,看到“做网站380元全包”的IT广告。以如此催人泪下的利润,小公司每年不接下几十个项目,很快就要关门大吉。这样平均下来,一个项目的规模,也就三五个人月而已。
一个三五个人月的项目组,就像一只麻雀,而这只麻雀不可能五脏俱全了。当然,脑袋肯定要有的,其他如尾巴、羽毛、脚甚至翅膀等等,只好能省就省了。所以,项目虽小,负责人必须要有,因此项目经理一定要任命一个。至于系统分析员、高级程序员和程序员,项目的那点利润哪够他们吃喝的,都免了吧。好在客户也不懂什么系统分析啊、概要设计啊这些高科技的“黑话”,大多数时候,他们只在乎有那么一个人在负责他们出钱搞的东西。
这就是为什么我们会有“1个项目经理,0.7个系统分析员,1.3个高级程序员,1.5个程序员”这么有个性的职业结构比例。项目规模小导致了项目组残缺不全,利润捉襟见肘使老板不得不砍掉程序员的预算,而企业实力不济,则是隐藏在失衡的职业结构背后的真正原因。
3. 上架的鸭子
按照“1个项目经理,0.7个系统分析员,1.3个高级程序员,1.5个程序员”这样的比例,我们发现,每四个半软件人才中,我们就有一个项目经理!这个比例之高,在世界范围内恐怕也是很少有的了。
照道理说,项目经理多应该是好事啊,说明我们项目管理人才济济,项目管理水平非常高超,现在满世界缺的不就是管理人才吗?尤其是软件这样的高科技行业,哪年我们的决策部门不铆足了劲高呼要提高管理水平呢?
这让我想起了10年前我第一次做项目经理的时候。
事情往往如此,要么不来,要么一切都来得很突然。那天我刚从外地出差回来,在电脑里整理资料。为了一个项目,我和另外三个同事在客户现场封闭了3个月,刚刚拿出可以交差的厚厚的需求规格说明书,终于被恩准返回公司,正在做最后的校对。开发部经理突然找到我,说要跟我谈一谈。
我有点激动,因为知道肯定是好事。我到这家公司就是封闭的这3个月,这3个月来,我非常卖命地工作,经理每隔半个月就表扬我一次,因此,我心里暗暗猜测,或许我该升官发财了?
果然,经理先是通知我提前3个月转正,然后告诉我要任命我为项目经理。
那时我不很确定项目经理到底是什么东西,只知道是管项目的,比什么程序员、高级程序员和系统分析员都厉害,他们全要听项目经理的。
人都有权力欲望,尤其是男人,而一直被人呼来唤去的程序员更是求“权”若渴,因此,我站起来有点结巴地表示一定不辜负经理的期望,同时想象着自己作为项目经理叱诧风云的形象,飘飘然有点不知所以。
第二天我就走马上任了,顶着项目经理的新头衔,坐公交车转长途大巴再搭摩托,来到了东莞的一家家具厂,履行我项目经理的职责。与我同行的,只有我的背包,连程序员都没有一个,不但丝毫体验不到前呼后拥的招摇,反而觉得自己比做程序员的时候还孤单。
后来我才知道,整个项目就我一个人。 我相信不少项目经理,有着和我类似的“仕途”经历,因为在此后的职业生涯中,我自己就如法炮制了很多个这样的项目经理。新项目来了,现招项目经理已经来不及了,而且项目的预算也不允许安插一个真正的项目经理在里面,因此只好把目光投向现有的开发人员,从中挑选出一个看上去顺眼一点的开发人员,火线入党,克日上任。
在我被赶鸭子上架为项目经理之前,我没有接受过任何项目管理的培训,更谈不上项目管理的经验了。事实上,大部分公司都不肯花费这笔或多或少的培训成本,甚至有些公司根本就不知道项目经理还需要培训这回事。
在国外项目管理已经成为一项专门的职业时,我们的软件行业还没有认识到项目管理的必要性。很多老板依然把项目管理当成是一项技术活儿,认为只要会编程序,就会管项目,而程序编得越好,项目就管得越好。大批本可以凭借写代码扬名立万的优秀程序员,自觉或不自觉地走上了项目经理之路,成为既不通管理又不精技术的半吊子。
一群快活的鸭子,突然被赶到树上,要求它们学会飞行。鸭子们很努力,可是终究翅膀太小,哪怕竭尽全力,也只能在空中划出一条很短的弧线。
4. 被低估的管理价值
如果问问你身边的项目经理,你会发现,很多项目经理其实并不止做项目经理的事。名义上他们是项目经理,实际上他们往往身兼多职。越是小规模项目,这种现象越突出。
我第一次做项目经理的时候,是为一个家具厂开发一个管理信息系统。项目只有我一个人,我自然是当仁不让的项目经理。经理教导我项目经理要有计划性,所以在长途大巴上我就制定了一份计划的腹稿,整个项目的规模是一个人月。倒不是我自己和自己过不去,老板给的时间就是一个人一个月;经理又嘱咐我项目经理要经常和项目成员沟通,于是每天晚上我都会和自己开例会,颇有古人“吾日三省吾身”的风范。我通常在洗澡前开例会,因为洗澡要靠一个小功率的热得快烧水,时间至少半小时以上,所以例会时间充足。
作为项目经理,我的工作仅此而已,其他的事情,就和项目经理的头衔无关了。那时的管理信息系统很简单,其实就是一个网络,再加上几个Foxpro编写的程序而已。唯一复杂一点的,是家具厂要求的一个板材切割程序,问题的核心是一个运筹学的最优化命题:给定一批板材和家具样式,如何切割才能最大限度地减少边角料。我经过思考,认定这事儿需要系统分析员来干,系统分析员要给出一个数学模型,然后程序员才能编程序。不过既然经理说过了我必须孤军奋战,我也就不指望有什么援兵了,于是晚上我就放下项目经理的架子,成了一个系统分析员。
除了系统分析员,我还是负责概要设计的高级程序员,负责编码的程序员,负责讲课的培训师,负责写手册的文档编写员,最匪夷所思的是,我还是负责网络布线的网络工程人员。
如果说系统分析还和软件开发有点搭界的话,架设网线就无论如何也不该程序员来干了吧?那时还没有无线网络,而家具厂又占地庞大,仓库、厂房和办公楼分布在方圆百多米的范围内。按流程应该网络工程人员来布线的,但显然公司认为我闲着也是闲着,所以又命令我变身为一个网络工程人员。布线花了我将近一周的时间,等最后一条架空网线拉通时,我的轻功大有长进,恐高症也不治而愈。
我一直不明白,为什么公司会让一个项目经理干这么多不该他做干的活儿,管这么多不该他管的事儿。直到几年后的某一天,偶然听我在华为的同学聊起他们的ERP系统,我才恍然大悟。据说Oracle的ERP软件是免费送给华为的,不过Oracle一分钱也没有亏,因为一个Oracle的ERP顾问,一天的咨询费用是1000元。不是人民币,是美元。
我明白了为什么公司会让项目经理花上一个星期的时间去布网线,因为中国的项目经理实在太便宜了。项目经理一周的薪水,不会比一个网络工程人员一周的薪水加上往返路费来的多,而我没记错的话,那时从广州到东莞,来回路费仅20多元。
在很多软件公司里,项目经理已经成为“杂工”的代名词。管理的价值被严重低估,所谓向管理要效益,只不过是一句流行的废话,和饭后的一声饱嗝没有什么区别。管理的价值既然已经不被高看,作为项目管理者的项目经理,自然也就不那么重要了,要求不妨低一点,薪水不妨少一点,只要名片上印上项目经理的头衔就行了。
当然,这个世界是公平的,当管理者的价值被低估的时候,管理者为你创造的价值确实就是那么低。
5. 路漫漫其修远兮
在写这篇稿子时候,有一个念头挥之不去,随着稿子接近尾声,这个念头愈发清晰:既然我这么大费周章地分析了统计数据,罗列了中国软件的种种弊端,那么我是不是应该给中国软件开一剂药方呢?不然的话,读者不免怀疑,我写这篇文章的目的是什么。只看病,不开方,这样不合常理啊。
几番求索以后,我终于还是决定放弃这个不自量力的念头。既没有聪明的头脑,也没有深远的目光,我哪有资格给中国软件开什么药方呢?我想我还是做一个旁观者,把自己所见所闻写成文字,借助网络的力量,让更多的人看到中国软件的弊端,思考中国软件的出路,创造中国软件的未来吧。