2010年的国家关键词是“结构调整”,许多城市都在积极响应号召,跟随国家的政策。实际上,在IT行业也在进行着结构调整。比如,从利润率偏低的外包转向嵌入式开发等等。这里有许多惨痛的教训,这里以亲身经验总结一下,以诫后来之师。
首先,我要澄清一个概念,我说的嵌入式项目是相对于外包项目。这里的嵌入式项目包括了硬件开发,BSP开发和应用程序开发。
其次,我要介绍一下背景。我即将离职的公司是国内有名的外包企业,在这里我全程接触了这家外包企业所进行的嵌入式项目。这是这个公司某个事业部的第一个正式的嵌入式项目。总体而言,这个项目不顺利,甚至面临着倒牌的危险。我的心情也不好,我虽然说是技术骨干,但对项目的控制是真的无能为力。所以,以我一个BSP开发工程师的角度来总结一下这个项目的始终。
第一,外包的“遗精”。说到这,我想国内多数外包业者都有一个共同的盈利秘诀,当然这些秘诀都是针对客户的,对内部人员都是数见不鲜了。这个遗精 就是虚报人月。人月的概念就是在项目开始前,对项目粗略的估计,大概需要多少人多少月才能完成。从网上看到的数据,外包的利润率最多也就15%,而我的公司我想10%都到不了。所以外包公司节约成本的手段就是,向客户多报人月,然后开发的时候减少人手。这样,10个人月的项目,就落在了5个人的身上。不说,人员素质和人员的工作态度,单单这种猛缩人手的外包做法,就是嵌入式开发的最大风险。
第二,外包的“幼稚”。总体来讲,外包项目的风险不大,虽然利润率偏低。因为外包不出产品,他们不用担心产品的销售问题,只要客户满意,盈利还不是问题。那么,对嵌入式项目来说,风险不仅于此。当前的公司外包主要集中于软件,而把软件项目的风险管理强加于嵌入式项目,那就是水土不服。首先,项目进程。由于包含了硬件开发,那么这又是另外一套时间点了。熟悉硬件开发的都知道,一款电路的出版期间有许多过程,设计电路图,评审,画pcb图,焊接等等。其中的每个过程都非常重要,都有自己固定的时间,也不是说加班就能解决的。如果没有没有在硬件设计阶段留有足够的时间,而是催促加压,那么这个项目必然要后患无穷。这个项目就是这样,在设计和评审阶段匆匆忙忙赶进度,以至于出了3版电路都还没稳定。其次,硬件的风险。硬件的风险应该说大于软件风险。如上描述的,如果硬件电路有问题,那么首先BSP部分就会有问题,BSP工程师一边对着操作系统内核,一边看着电路原理图,一边看着芯片datasheet,一边还要拿着万用表示波器找错误。这意味着,风险传递。如果BSP工程师的素质有问题,我想这个项目到此就应该结束了,不用说应用软件了。
第三,外包的“偏袒”。用一个富有经验的软件经理来带一个嵌入式项目,就能成功吗?这里只说,其中的一个问题。在嵌入式项目中,不免要分成几个部分。硬件部分,bsp部分,应用软件部分。那么软件经理的眼中是什么样子呢?硬件,软件。因为不细分,所以看不到风险。而仅仅这两个部分,有是怎么样的一个投入比例呢?以我当前项目来讲,大概是1/5。这是明显的失误,硬件有基础的作用,而且风险更大,对项目有决定性的作用。硬件的投入甚至应该超过软件投入,这样才能降低风险,有利于软件构建。
以下,是其他的个性缺陷。
1.这是第一个嵌入式项目,可以算得上是招牌项目。但现在却做成了倒牌项目。为什么说这一点,因为对于一个招牌项目来说,利润不是最重要的,而在行业树立一个良好的形象和口碑才是至关重要的。可是,如果第一个项目,在没有经验的情况下,盲目追求利润,大量缩减投入,结果可想而知。我想客户给的资金,必然是有利可图的,但在第一次就唯利是图,砸的必然是自己的招牌。
2.人员素质。做外包和做嵌入式,要求人员素质完全是两个等级。想要一个做外包的人员,学习1个月转移到做嵌入式,那是愚蠢的做法。我不是鄙视外包的人员,我的一句话也得到同事的认可----"一个中专生,培训2个月,就可以做外包了"。当前的外包,是一个什么状态呢?不追求效率,不追求设计,质量保证全靠测试。最后的代码呢?冗长,低效,打着满身的补丁。就这样,公司不想拿高薪聘请有经验的人才,总想投机取巧,最后是得不偿失。我总相信一句话,在嵌入式行业,一个拿着8000月薪的人员的贡献,会多于2个拿着4000人员。
3.人员数量。奉着外包遗精,大幅压缩人手,可是加班真的就能解决问题吗?可以让员工加班,可是可以让制版商的机器加班吗?10人月的项目用5个人支撑,其中的细节可控吗?一旦某一环节有了重大问题,如何集中力量,减小影响呢?
4.资格认定。客户能找到公司,是因为他们对外包公司的软件还是认可的。这是客户的资格认定标准。那么公司对其他公司的资格认定标准是什么?当前项目的硬件是外包的,可是这个公司有什么资格呢?他的法人是我们上司的上司的上司。我考察了一下,这个硬件公司,我简直笑掉了牙,针对我们项目的就一个晕乎乎的员工,在以后接触中,我更是知道了他的水平。有了这种裙带关系,可想而知,在进程推动中,我们多么艰难。上司怕得罪上司的上司,忍气吞声,细声细语,不敢上报风险。对方也是根本不理你,你怎么说,他都是笑呵呵的说我们很努力啊。就这样的状况,不拖后腿才怪!
5.一手遮天,体制陈旧。领导的话就是结论。按理,一个软件经理应该聆听一下硬件开发人员和BSP开发人员的建议,毕竟软件经理的经验在于软件管理,在硬件开发和BSP开发上,还是欠缺的。经验对硬件开发来说,至关重要。软件出bug了可以改,改完了,重新编译就OK了。硬件呢?一旦设计失误,就等于要等下一版了。所以,不假思索的做硬件,就是等于烧钱。
6.配置缺陷。这是所有在外包企业里 硬件开发者的苦恼。在这个企业里,职位的名字有软件工程师,高级软件工程师,软件经理等等。这些跟你好像没有任何关系。我们如何自我定位呢?考核的时候,永远都是转牛角尖的C语言,还有什么软件测评报告。我们的希望有在哪里呢?一个企业,既然要转型,那么在这之前就应该在一些地方铺好路,然后人才会走上去。否则,就是没有决心,玩玩而已。
7.决心。一个企业的发展,多数依赖于总管的意志和思想。如果还是想,稳赚不赔,那就别走这条路。赚钱的买卖没有没有风险的,没有只赚不赔的。今天看好这条路上的利润,明天又怕赔,不肯投入,投鼠忌器,朝三暮四。在项目中,低层员工可以很容易的感受这种忽悠悠的感觉,谁又不是在想自己的前途呢?总管的心态必然影响其他员工,很多人都不能全力以赴。做结构调整,需要破釜沉舟的勇气。
8.心态。这关系到人性的一面。可能会跟某写人相符。低层员工多数考虑的是薪酬和待遇,偶尔有大智的会思考自己的职业规划和方向。中层员工考虑的是如何向上爬。老板想的是,如何少给钱,多干活,他们看得是钱,不管你怎么干。在我们这样一个大企业,各个层次都很鲜明,中层员工很多。老板把你提升的依据就是,你能给我赚钱,赚更多的钱。每个部门,年终的时候都要上交利润,这个时候每个部门的总管都会比较一下,谁交的多,谁就自豪了,这关系到自己的晋级嘛。所以,总管不会拿自己的前程开玩笑,他们不会给你来个大投资,来个高投入高产出高风险的项目。一旦赔了,就是永无翻身了。老板不会因为你的英勇就义,就给你一品官员,至多就是个烈士。另外,在业务好的时候,收入可观,这个时候,比如你交了2000万。就这么连续几年,你都交2000万,突然一年,业务下降,没有多少收入,这个时候怎么办?总管的通常做法是继续2000万。总管他不会,拿500万去上交。第一,太丢人。第二,他自己的收入不减少,年终的时候,把自己的那份拿了,其余剩多少,低下的去分吧。所以,底层员工的命运就是,年景好的时候,总管去吹嘘,铺垫自己的道路,年景不好的时候,拿你来顶罪。其实,底层员工不用呲牙咧嘴,不服气,有本事的可以把总管炒了。
这里,先写这些,算作自己的失败,自己的经验了。从这个项目里,学到的不仅是技术,还有其他的总结。希望这篇文章对自己,对别人在以后的项目中都有所教训。