winston 发表于 2008-1-4 11:11:19

转帖 - 你所不知道的华为(华为人的自省)

华为的狼性文化人所共知,但华为内部员工在论坛上激昂陈词,抨击华为制度的种种弊端,你又所知多少?一起来讨论一下中国最顶级最让人尊敬的企业背后,不为人知的细节吧。


一、名存实亡的“民主生活会”

华为曾经有个很好的制度,叫做“民主生活会”。据老员工回忆,在以前的民主生活会上大家不论职位高低,都可以完全放开的批评与自我批评,既可以敞开心扉的审视反醒自我,在大家目前说出自己的问题,然后知耻后勇,改正缺点。也能当面指出别人(包括与会的最高领导)的问题,令其改正。如果有些问题很尖锐,实在不好让某人在众人面前难堪,甚至可以先“请”某人去外面“休息”一下,然后在大家面前指出其缺点,会后再有主管私下告诉这个人,促其改正。也可以指出当前团队存在的任何问题,完全不必担心主管之后给你穿小鞋。也可以指出自己生活中碰到的困难和问题寻求大家的帮助。

真是一个很好的制度,这个制度是任正非从毛泽东治党的做法中借鉴的。一个团队如果内部有问题不能够很快解决,就会导致团队成员的情绪越来越差,导致团队队员之间的隔阂越来越严重,严重影响整个团队的能力,这在组织行为学上称为“组织毒素”。华为的“民主生活会”是排除组织毒素非常有效的手段。

但是,那只是创业初期的回忆而已。现在的民主生活会完全陷入一种形式主义,每次开会,大家都默不做声,任是主管催来催去,还是推三阻四。以前有外包员工开会的时候,更是一言不发。除非是些刚毕业的不知道行情的菜鸟,真的以为现在的民主生活会还是当年的民主生活会,主动坦白的自己的不足之处。结果是一个会两个小时开下来基本是主管说了些无关痛痒、老生常谈的问题,最多也是带头反醒自己的某个小缺点。民主生活会已经完全是形同虚设,开的唯一理由只是这个东西是华为当年的“好传统”,“不能放弃”。

导致这种情况的原因就是公司人员极剧扩张之后,管理作风越来越官僚,尤其主管已经变得高高在上,不能接受下属的批评了。主管都不带头自我批评,何况下的人。现在的华为和创业期的华为作风已经越来越不同了。民主生活会就是验证华为官僚作风严重程度的最好的镜子。

曾经的华为往往发一封邮件可以解决的问题,在两三年时间里就变得,发邮件不行,必须还要打个电话催一下;到打一个电话还不行,还要多个电话催才行。这是官僚作风盛行的又一个例子。

二、所谓的弹性工作制

当时在学校去参加华为的宣讲会,听说华为还有弹性工作制,研发人员可以选择晚一点上班只要晚上加班把时间补回来就行了。当时听这个感觉很好,觉得华为这点很“人性化”,简直就和微软差不多了。学生在毕业之前和走上社会之后,幼稚的程度是没法比的。

待到真的工作之后才逐渐理解了“弹性工作制”。研发人员上午可以晚一小时上班,这样白天的工时是7小时,一周就少了5小时,为了补足这5个小时,就要有三天晚上(周一、二、四)加班到9点,补6个小时,凑足40小时工时。

刚进去的时候很奇怪,怎么研发人员都是弹性工作制,早上没有人是按开始时间来上班的。我很郁闷,因为我不想晚上加班,想在白天干完8小时。

直到一年多以后才弄清楚为什么所有的研发人员都选择了“‘弹性’工作制”。和我合租一同事说,他们项目组有个哥们刚进来不懂行情,没有选弹性工作制,每天比别人早来一个小时,晚上不加班。结果一个月后,他们经理直接找他谈话:你为什么一个月来,晚上经常比大家早走两小时?这哥们被经理谈过一次话以后,就再也没有比别人早来一小时,而“选择”了“‘弹性’工作制”。

原来如此,你早比大家来一小时,大家都没有看见。你晚上不加班,比大家早走两小时,大家都看见了。虽然都是干满了40小时一周,但是你这样让大家很不平衡。

而华为采用“弹性工作制”的重要原因,恐怕还不是大家心理是否平衡的问题。而是为了晚上让你留下来加那个班,大家都知道,晚上加班,一加就没个底,这才是问题的关键。华为的项目没有不紧的,不加班大部分项目几乎就是不可能完成的任务。

所以你早上比大家提前、晚上不加班是允许的。所以一般的公司中午休息时间为1小时,华为中午的休息时间却是一个半小时到两个小时,为的就是让你白天“工时不够”晚上加个班。华为是无论如何不能离开加班的,所以华为的研发人员都“选择”了弹性工作制。

所谓的“弹性工作制”,早就演变成了一个“硬性晚上加班制”。

自从刘新宇事件被媒体大肆报道在面对媒体的重重压力之后,“弹性工作制”才真正的有了“弹性”。

三、华为的企业文化

什么是企业文化?有人说,某某公司太差了,一点企业文化也没有,认为好的东西才是企业文化,认为公司多组织员工的业余活动就是企业文化。我认为所有的公司都有自己的企业文化,企业文化就是一个企业的性格、这个企业的员工的言行的方式,不管是好的,还是坏的,都是企业文化的一部分。

华为的企业文化是什么?据说任正非都说不清楚华为企业文化到底是什么。我等小兵就不知道了,当初参加大队培训,教材上说“爱祖国、爱人民、爱家人”、“服务客户”等等等等,都是虚的。华为号称“资源是会枯竭的唯有文化生生不息”,但是包括总裁在内都说不清楚华为的文化到底是什么,真是件有点搞笑的事情。

我来说说华为的企业文化:

1、激情

在华为工作是很有激情的,在这个公司工作并不只是仅仅只是工作,你还有一种使命感。什么使命感,为了民族产业发展的使命感。每次当华为在海外从那些国际电信巨头的手中夺得大单的时候,都会让你兴奋不已,这是在其他IT公司不能体会到的。只有华为能把爱国激情注入员工的工作激情中,这种爱国激情简直就像一种催化剂,让你的工作激情、工作积极性放大数倍。这种使命感让几乎每一个华为员工不仅仅为了工作而工作。你也许认为这是公司对员工的洗脑,也许认为这种感觉很幼稚无知的,但是这种感觉却切切实实让你激奋,驱使你忘我工作。

使命感是一种激情,还有另外一种激情,就是拼搏式的激情。在华为,虽然公司规模已是数万人,但是你仍然觉得你的工作像在创业一般有激情,团队里所有人为了完成工作目标共同努力奋斗,几乎没有人消极怠工。这种大家一起拼搏的激情,可以说是每一个有志青年都渴望的,都享受其中的。

有人迷惑问你们加班又没有加班工资,为什么还有那么多人还自愿工作到十一二点?我说因为激情。

2、加班加点

业界有句话:“华为把女人当男人用,把男人当机器用”,虽然有点戏谑,但不得不说非常精辟。

不加班,那就不是华为。尤其是研发部门,如果不加班,按时完成项目是很少见的。华为有永远接不完的单子,你每一天都是都是满负荷的工作,就是这样你还是无法按时完成项目。

除了开发效率低下之外(至于为什么说华为开发效率是低下,我将会有专门一章来深入讨论),一个重要原因就是,华为的市场在和其他公司竞标的时候,别的公司(比如一些国外大公司)要一年完成的项目,华为承诺八个月能完成。这是华为能打败其他公司的一个重要原因。华为越来越看重市场,拿到单子是最重要的,为了能拿到单子,研发要高度配合市场,因为拿到单子是保证营业额每年高速增长的重要条件。长此以往,市场人员的地位越来越高,曾经地位很高的研发人员地位越来越低。

华为的执行力,说到执行力,我估计国内的公司甚至国外的大公司,没有几个执行力是能和华为相比的。在市场部以其他公司短很多的时间接下单子后,华为依然能以极强的执行力来完成给对客户的承诺,及时交付。这就苦了华为的研发部门,为了在短期内完成项目,不得不加班加点。

床垫文化,外界都知道华为有个床垫文化。每个华为员工都有一个床垫,午饭以后,不管男女都齐刷刷地躺到地板上的床垫睡觉。之所以有这个独特现象,是因为晚上要加班,而且要加到很晚,如果没有一个床垫在中午好好躺下(光趴在桌子上打个盹是不够的)睡一觉,你晚上是抗不住的。

床垫文化只不过是加班加点文化一个方面。

有阵子部门有个活动,就是每个员工写一篇介绍自己的文章,写写自己的童年、性格爱好等来介绍自己,以增进团队成员之间的了解。结果几个月下来,我发现一个现象,几乎百分之七八十的程序员文章开头都是类似的“我的童年是在一个……的农村度过的”,原来我们部门七八成的员工都是来自农村。网上有传说华为的研发部门工作太苦,一般只有来自农村的孩子才能忍受。在这次部门活动之后,这个传闻得到了验证。

部门有个每周优秀员工评选,每周由主管评选出两个本周优秀员工,发邮件给整个部门表扬员工的工作表现。经常看到主管对一些新员工这样评价:“某某员工很认同华为的企业文化,工作很努力”。我那时也不理解“认同华为文化”到底是什么意思。

一次一个新员工加班加得劳累过度,病了去医院打点滴,主管高度赞扬了这个员工:“某某工作非常努力,累到去医院,虽然是新员工,但是很认同华为的文化”。这个时候我才理解,什么叫“认同华为文化”,原来就是认同加班加点。

总裁任正非曾经说过华为要任人唯贤、任人唯亲,什么是任人唯亲,就是任那些认同华为企业文化的人。因此华为就算每年的新员工流失率超过30%也不在意,她就是通过这种方式筛选出那些认同华为文化的人。

不过,华为从总裁到最低级的主管,从来都没有承认过“加班加点”就是华为的企业文化。

任正非总常说华为的人均效率很低,只有欧美通信巨头对手的三分之一左右。那么华为凭什么能不断战胜那些欧美通信巨头,扩张自己的市场版图?是技术吗,是管理吗?华为的技术和管理比国内绝大部分公司都要好,但是与这些巨头公司相比还有很大差距。这其中一个重要的原因就是这些竞争对手的员工每周工作四十小时,而华为的员工却不要加班费地每周工作五十六十,有的甚至是七十个小时。

3、缺乏人性

据华为前总裁李玉琢在他的博客回忆:当他要离开华为回北京与家人团聚安享晚年的时候,任正非为了挽留他,甚至劝他与二十几年的发妻离婚。

这就是华为,为了不影响工作她甚至会让你离婚。为了工作抛弃妻子在华为都是认同的,那么就不用说其他的家庭温情了,更不用说你加班无数没有时间陪家人了。

有段时间,曾经有一个女孩在天涯上发帖,说她男朋友经常加班到12点,一次回家差点被抢劫,以此责备华为没有人性。这个帖子引发了很多类似经常在家苦等男友、丈夫回家到深夜的华为女友、太太们的共鸣,并造成很大的讨论。华为领导为此震怒,要华为员工“管好你们家属的嘴”。华为为了工作是不会在意你的家庭是否和谐的。

在华为,如果你劳累到生病,你也不要觉得自己就怎么样特别,主管也不会因此就会怎么同情你,因为这在华为不是稀有的事情。你不要觉得你无数次加班到半夜或者凌晨几点突然一个电话把你从宾馆叫到运营商定位问题就和累,你可能觉得主管太无情,但这就是华为的情况,所有的人都很累。

但是,华为的缺乏人性和某些血汗工厂的缺乏人性是不一样的。

血汗工厂的缺乏人性是管理者对底层雇员的缺乏人性。而华为的缺乏人性却是主管对雇员的缺乏人性的同时,也对自己缺乏人性,至少华为的每一个主管都是加班加点拼命走过来的。如果说华为只是对底层员工缺乏人性,而高层却轻松逍遥,她是不可能取得现今的成就的。

尤其是华为的创始人任正非,他为了华为是拼命了的,为了华为做了很多牺牲(李玉琢语)。一个五六十岁的老人,患有严重的糖尿病和心脏病,在华为已经取得巨大成功的时候,依然是拼命的工作。他的拼命已经不再是为了名、利和其他世人拼搏所想要获取的东西,他是一个纯粹地为了理想而拼命的人,一个纯粹为了理想而拼命的人是值得敬佩的。

连身患重病、五六十岁的总裁,都为了工作而对自己缺乏关怀,你还能指望你的主管对你怎么样?

这就是华为的缺乏人性,不仅是主管对下属的,也是主管对自己的。

四、低效的开发模式

这一章我将讨论华为的软件开发模式和国内软件业的一些状况,揭示华为的研发人员不得不加班加点的一个重要原因。

本章很多方面涉及到软件技术,如果不是业内人士可以略过其中某些内容。如果只是把华为的技术管理水平和国内大部分的软件公司相比,可以略过整章内容。

任总裁不是经常华为的人均效率低吗?我就给你分析一下华为的人均效率为什么低!

1、典型状况

华为的软件开发特点就是,在开发初期,为了赶时间加班加点地赶出一个没有经过充分设计、架构糟糕的、编码糟糕的软件系统,快速交付给客户。

软件(尤其是应用软件)不是普通的制造行业产品,在交付(产出)之后还要不断地改动、维护和升级,而且后期维护升级的成本几乎占整个生命周期全部成本的80%。如果前期设计开发的不好,后期维护升级起来非常地困难。

当华为的研发人员为了赶时间交付出一个设计不充分的系统之后,后期维护升级就变的很费力困难,在以后的升级维护过程中又不得不加班加点。在升级维护的时候仍然是重时间而轻质量,走向恶性循环,直到整个系统变成越来越难以维护,成为一个不能自拔的焦油坑。

为此有很多的员工除了在公司里加班之外,还不得不长期出差到局点现场。这种低效率的最高记录就是曾经最多有160人同时在移动的某个局点维护升级一个系统!

这是就是华为的开发特点,一种典型的低效率的开发模式。

曾经参与维护升级过的几个应用系统,共同的特点是设计地很糟糕。比如,JSP页面中充斥着大量大量的业务层甚至是数据层的Java代码,毫无MVC的概念。整个系统业务层数据层不分,或者根本就没有业务层和数据层的概念。后台有些JAVA类甚至大到五千行以上,有些方法的参数个数超过10个!程序依赖了太多的存储过程,大量的业务逻辑放到存储过程中。整个系统几乎看不到面向接口编程的影子,该用设计模式的地方看不到一个设计模式。几乎是到处可以见到copy的重复代码(重复代码是软件万恶之源,Martin Fowler语)。

维护升级这样的系统是极为费力的,布鲁克斯将这样的软件形容为让史前动物不能自拔的焦油坑。

记得有个外包的兄弟对此戏言:华为为什么搞那么严格的信息安全?就是害怕写的这么糟糕的架构和代码流出到外面被人看到了笑话,砸了华为的招牌,原来华为的软件也是写地如此糟糕。

Java是一种非常优雅的面向对象语言。这些应用系统用Java来开发仅仅是因为它是最流行的Web应用系统的开发语言,而不是因为它最有用的特性:面向对象。

Java能够如此流行正是因为其完美的面向对象特点。对接口的完美支持使Java在制定好接口规范后,获得众多厂商的支持。只要是你依赖于接口规范开发出应用系统,可以很容易地替换不同的实现,提高生产率。所以Java的JDBC、Servlet、JDNI、JMS等规范成为应用系统的优秀的开发工具。

在我参与过的那些系统中,当一个Java类被写成超过五千行,当JSP代码中存在着本该在业务层或数据层的代码时,Java已经完全失去了其面向对象功能。

把面向对象语言当成面向过程的语言来使用,是华为很多软件的开发现状也中国几乎所有的软件公司开发现状。

2、再谈面向对象

首先,面向对象不是银弹,不能给你带来数量级的效率提高,但是和面向过程相比,面向对象提供很多方法让你更容易地改善软件的质量,能给你的生产率带来几倍的提高。

软件产品(尤其是应用软件)区别于普通工业产品的最重特点是,它在生命周期之内需要面对不断的变化。如果有一种技术能够充分地拥抱变化,就可以极大的提高软件的生产效率。

软件要做到能够拥抱变化,就必须做到高内聚、低耦合,能够分开软件可变的和不变的部分。后期的维护和升级大部分修改是其可变部分,分开可变和不变部分之后便可以容易的改动,从而有效地提高以后的扩展和维护效率,带来生产率的提高。

面向对象技术是让你可以拥抱变化的技术,它的重要目的就是分开软件的可变和不变部分。它的典型特点是抽象、封装、继承、多态。抽象可以让你提取出共性(不变的部分)到父类(或接口),变的部分在不同的继承中实现。而多态就是让不变的部分(接口或者抽象)和变的部分(多个不同的实现)顺利连接起来工作。封装可以让你封装变化,将变化约束在一个尽量小的范围之内,实现很好的内聚和降低不同模块(类)之间的耦合,减少对其他模块的影响。

如果你能够充分的遵守面向对象的核心原则:面向接口(抽象)编程,就能充分地分开软件的可变和不变部分。

面向对象设计和编程,前期必须投入足够的时间去设计,划分出类和接口,完善地处理各个接口和类之间关系,这是一个比较复杂的过程。

费了这么多唇舌专门说了面向对象,并不是说面向过程的语言就无法开发出好的软件,只是面向对象更容易帮你软件的实现拥抱变化。面向对象也只是提高软件质量的多种方法之一。

我重点要讨论的是,为什么我碰到的很多用Java这门面向对象语言开发出来的系统,几乎就没有采用Java的面向对象特性来提高软件的质量?就好像有个电动自行车但是从来不用其电动功能一样,以这个例子来说明华为的开发效率低下的原因。

3、低效开发模式存在的原因

(1)急功近利

软件的前期开发和后期升级维护的成本之比大概是20:80,如是前期多付出一份时间以后将至少(忽略复杂度上升因素)给你节省四倍的时间!

但是华为的主管们不愿意付出足够的时间让程序员设计开发出优秀的软件,不管是在前期的开发还后期的维护升级,华为程序员的时间永远都是不够用的,他们永远都在疲于奔命。

碰到那些设计开发地糟糕的系统,你开始可能会怪前面的人为什么不好好把这个系统设计好一点、代码写地规范一点。但是经过仔细观察,你会发现他们是逼不得已的,到处可以看到因为时间压力而不得不草草完工的痕迹。

为什么主管不愿意投入足够的时间到设计开发?一是面临着业绩目标的压力,二是短期内能拿到多少单子完成多少项目关系自己能否被提升。华为的营业额每年以百分之四五十的速度增长,这个增长在年初要层层级级的分配到每个项目组。所以每个项目主管都面临着很大的业绩目标压力,他们不得不严重地压缩设计开发时间,以达到目标,同时要想往上爬得快也必须在短期内完成更多业绩。

有什么办法呢,整个华为都处于一种追求营业额高速增长的癫狂状态之中,大家都这么做你不这么做你就可能位子不保,更不要谈晋升了。

就好像国家把GDP做为考核官员的标准,各级官*员为了保住位子或者为了爬得更快,明知道牺牲环境发展经济以后要付出更高的代价,仍然这么去做。

压缩设计开发时间,短期内可以让你完成更多目标,从长远来看却明显地降低了生产率,生产效率大大降低同时项目交付的时间却没有延长,最终苦的是底层员工,他们不得不去加班加点。

这就是一种急功近利的文化,这种文化是导致软件开发模式的最大原因。

另:

反驳一种观点(该观点常常成为项目经理们压缩开发时间的借口),这个观点就是:华为必须先拿到单子才能先活下来。

这种观点在创业初期是成立的,但是当华为在近几年人员规模扩大到几万人、营业额超过几百亿元之后,日子已经过的很滋润,依然还抱着这种论调的经理们恐怕考虑更多的还是自己的官位吧。

(2)管理层观念

掌握华为开发大权的管理者们大部分没有如何才能设计开发出高质量软件的观念。

这些管理者大多采用的是很粗糙的作坊式模式从创业初期走过来的,当这些人做了管理以后就很少再接触技术,他们不了解更好的开发模式能给提升生产率带来多大的影响,往往不愿意接受这些更好的开发模式。越早进入华为人使用的开发模式越落后,这些人后来的官位也是越高。而往往了解最新的更具效率的技术人员职位越低,他们的很多建议不能得到主管的认同。

你可能为了说服主管使用Spring框架来改善系统的整体架构,而不得不苦口婆心、费尽唇舌。

华为只实施CMM的过程中,有五分之一的人因为不适应而来开,这种人员流失是值得的,必须要深刻地改变落后的开发观念,然后才能推行更高效的开发模式。

(3)公司不注重个人技术积累

来华为面试过的大多听过一句话:你不要拘泥于某种技术。华为的特点就是要什么技术就用什么技术,只要能在短期内完成项目,满足功能就行。他可能让一个C++高手在短期内迅速转型使用Java开发出某个项目,然后可能又很快让他改用Delphi开发另外一个项目。这样对于个人技术积累很不利,每种语言都有其独特的地方,经常更换程序员的使用语言,往往是程序员在某种语言上缺少积累,只是掌握了某种语言的语法,无法掌握这门语言的精髓发挥出其最大的威力。

(4)重技术轻业务

华为的软件部门有一个普通的错误心态,就是重业务、轻技术。认为只要深刻地理解了业务,使用什么技术是其次,实现功能就行。这也几乎是中国绝大部分软件公司的心态。这种错误的浮躁的心态导致开发过程中使用技术不深,无法使用出某项技术的最大功效,开发出高质量的软件。

软件技术并不仅仅是让你你实现功能,无数的专家、大师为了提高软件的生产率,持续不断地对软件技术进行改进。只有充分地使用开发技术,才能帮你明显地提高软件生产率。

(5)很多人没有这个能力

在华为可以学到很多技术吗?这句话要一分为二地讲。在华为你有做不完的项目,让你接触到很多技术,可以迅速提高你的技术开发能力。但是这种能力基本就是实现软件功能的能力,不包括设计出优秀的软件的能力。因为无休止的加班让研发人员平时很少有时间看书学习更深的技术理论。仅仅靠摸索实践是不能学习到无数软件大师常年累月在经历过无数项目后总结出来的经验的,必须要去读书、要去学习,这样才能站在巨人的肩膀上。

华为有很多技术理论牛人,有些让我非常佩服。但是有相当多的程序员都是缺少时间去更深入学习技术理论,去学习最新的更高效的开发模式。也看到一些工作多年的资深老员工,实现软件功能的能力想当的强,但是整体的设计却很混乱。

(6)对廉价劳力形成依赖心理

目前,华为的技术和管理和大部分国内公司相比是比较先进,但是和国外巨头相比仍然有很大差距,那么华为到底靠什么不断打败这些巨头,占领他们的城池?

恐怕最大的因素还是中国便宜的劳动力,IT产业最大的成本并不是原材料成本而是人力成本。中国的程序员受的教育不比那些国外程序员的差,智商不比他们低,能力不必他们差;而且华为的程序员还“自愿”大量的加班(每周工作50到70小时,加班10到30小时)。但是中国的程序员拿的人民币,欧美的程序员拿的是欧元、美元。如果你的人力成本对手的五分之一,你还何愁不胜对手。

这是华为一个极大的优势,但是长期以往也让华为的管理者们对这种优势形成一种依赖,有了这种依赖心理就缺乏了去改进开发效率的动力!

如果华为的目标胜过国内大部分的公司,现在做的足够了;如果要打败那些巨头,还要不断地提高的自己开发效率!

4、打破CMM神话

CMM流程为改善华为的软件开发带来了明显的效果,实施CMM是华为提高开发管理的重要阶段。但是CMM流程却有很多自身的局限性不利于应用软件的开发。

技术人员都知道,应用软件的新需求变化不断,尤其是电信行业的软件,大家也都知道中国的运营商是非常强势的,动不动就给你提出新的需求,而且华为的很多软件周期长,多达四五年。这些特点就要华为的软件系统必须能够面对、拥抱层出不穷的变化。

CMM流程是典型瀑布式开发流程,所谓瀑布式流程就是整个流程从需求、设计、开发、测试像瀑布一样按部就班一泻而下,不能回头。这就导致了它不易于面对变化。CMM流程的最初目的是为了那种超大行的项目,比如超过1000人年的航天项目,这种项目的特点就是先开发出硬件,然后再开发相应的软件,软件的需求很少改变。采用瀑布流程的CMM无疑是适合这种的超大型项目的,用一套完整的文档来规范开发的流程,控制整个项目的进度和风险。但是商业应用软件和这种软件项目有很的不同,他要面对不断变化的新需求。

CMM的另一个特点就是它能控制整个项目的进度、减少缺陷率、控制风险,却对提高软件的架构和设计质量鞭长莫及。CMM文档众多,却没有规范软件设计结构的。

CMM过多的文档也成为开发过程的累赘,如果你在第一个版本完成所有的文档,在后续版本开发增加新功能的时候,就要从上到下又更新从需求、设计、开发、测试的所有文档,相当繁琐。所以虽然华为的CMM最多的已经达到CMMI或5级,但是大量的项目的文档都没有及时更新和当前软件的版本相对应,越往后这些文档越是形同虚设。研发人员加班加点连编码的时间都不够,还有谁来得及管这些文档。

CMM的以上几个特点导致它很不适应商业应用软件的开发。

个人认为近几年逐渐流行的敏捷软件开发非常适合华为的电信应用软件开发,敏捷开发是目前最能面对变化、拥抱变化的开发流程。

首先,它采用了不断迭代的开发流程,有助于不断增加新的功能。

其次,敏捷开发是唯一把面向对象开发原则做为开发指导的流程,这可以让你很好地提高软件的架构和设计的质量,达到能够拥抱变化,易于维护、扩展,这个优点是大多数软件工程流程所没有的。

再次,敏捷开发没有过多的文档,只有在代码不能说明问题的时候才回去写文档,这就为研发人员减少很多的负担。

还有,敏捷开发非常适合中小型规模的商业应用软件的开发,相比CMM的全套流程对开发中小型规模的应用软件来说非常繁琐。

另外,敏捷开发主张每周高效地工作40小时,不搞疲劳战,所有的程序员可能都喜欢这一点,但是这点估计不会为华为的主管们所接受。

CMM流程有很多优点,采用了CMM比以前没有流程的时候是个很大的进步,但是其众多的缺点让他不适合应用软件(尤其是中小型的)的开发,最好能借鉴、引入敏捷开发的优点,加以改造,形成更适合应用软件开发的流程。

5、为什么中国的程序员没有钱途?

常有菜鸟问30岁以后写不动程序了该如何转行?这是最TMD误国误民的言论,几乎大部分国人(不管是业内的还不是业内的)都抱着这种思想和言论。

30岁以后写不动程序了吗?你看看国外的软件大师级人物99%都35岁以上的(剩下1%的35岁以下的大师是从他们初中高中就开始写程序了),这些大师很多仍然在设计软件,有些还亲自编码。在硅谷,60岁的程序员都有。这就是国人浮躁啊。惠普和IBM这些国外大公司在中国招聘的时候最希望找5年工作经验以上的程序员,7到8年的更好。没有多年软件开发经验你怎么能设计出优秀的软件?!

但是,有一种言论在中国是很成立的,那就是:程序员30岁以后就没有多少钱途了。我不得不承认这个观点。同一个学校同一年出来的两个同学,30岁以后做管理的比做仍然做研发的待遇高的多,这就是中国的现状。

所谓的两条发展通道

华为号称给他的研发人员提供两条发展通道:技术和管理。如果你不想做管理在工作多年以后你仍然可以走技术路线,公司为你提供技术的发展上升通道,你的待遇不会比你该做管理少。不仅是华为,包括ZTE,还稍微有点规模的IT公司,都打出这样的口号。

我想说的是,这完全是TMD扯淡!只能去学校骗一骗那些没有毕业的菜鸟。

中国没有一家IT公司真正意义上给研发人员提供两条发展通道的,包括华为。如果在华为的一个一千人的研发部门分表找出做管理和做技术的前十个人。做管理的前十人的待遇总和肯定是做技术的前十人的待遇总和五倍以上!

为什么在中国做技术的待遇比做管理的待遇低?

首先,中国人长期的历史文化就是轻视技术,要是我们当年重视技术,怎么会被洋鬼子用洋枪大炮轰开我们的大门?中国几千年来的文化就是这样,一时难以改变。

再次,做管理的待遇高也是原因的。管理的目的就是通过对人力资源的管理来提高整个团队的效率,优秀的管理可以让整个团队的效率提高数倍。这就是做管理的待遇高的原因。那么技术人员能否提高整个团队的效率呢?当然可以,一个好的架构师设计出好软件架构,对于整个开发团队的效率提高将起到明显的作用。软件不是普通的工业产品做好设计图之后只要工人安装制作就可以完成了。软件是一个充满变化的东西,实现同样功能的两个软件,维护升级起来所付出的代价可能有天壤之别。设计优雅的软件,可以让你很容易、快速的、低成本的扩展升级,设计糟糕的软件像一个极度复杂的焦油坑,让你费劲心力仍然可能无功而返。

可惜,中国面前很少有这样优秀的架构师或者技术大师。长期的轻视技术的人文文化、重业务轻技术的软件文化、急功近利追求短期效益的开发方式,培养不出、甚至不需要这样的优秀架构师。另外一个重要的原因就是,你技术牛了以后,就很容易被提拔管理,你不想做都不行,技术人员的低待遇不得不逼着你去做管理,做了管理以后以前积累的技术就基本会渐渐荒废掉。很多优秀的技术人员因为待遇低而转管理,又导致中国难以有优秀的架构师出现,更不要说软件大师了。简直是一个恶性循环。

华为也同样是这样,很多优秀的人员被逼转了管理之后,就更导致华为软件设计水平上不去,开发效率低下。

这既是程序员的悲哀,也是 中国软件(行情 股吧)业的悲哀,也是 中国软件(行情 股吧)业疲弱的一个重要原因。

6、狼,终究是二流动物

狼终究是二流动物,永远不会成为王者,只有雄狮才是百兽中的王者。狼在捕食时经常是群拥而上,说明狼的捕食效率是低下的。如果要和雄狮竞争就不要死抱着狼的特点不放,学习雄狮的捕食方式,提高捕食的效率,让自己也成为雄狮,只有让自己成为雄狮之后才能战胜雄狮。

华为不是号称要与欧美通信巨头竞争吗?那你要抛弃急功近利的思想,不要有任何借口,拒绝浮躁、踏踏实实地去改变你自己,提高你的效率。

反驳一个观点:那些欧美的大公司积累了几十上百年,所以技术先进,华为才不到20年,要慢慢来,现在必须加班加点。

这是又是一个典型的借口,爱立信、诺基亚、摩托罗拉的的确是积累了几十上百年,那思科呢?思科创立于1984年,华为创立于1988年,一个23年的企业,一个19年的企业。难道思科从创业到现在也都是靠无休止的加班才能取得霸主的低位吗?难道思科先的研发员工现在也要每周工作50到70小时吗?

关于软件技术,我觉得软件技术没有太深的难度,不像硬件,欧美大公司在硬件上形成优势,用专利打造壁垒,你一时无法逾越。但是软件技术不一样,国外最先进的软件理论只要一旦成书出版,在中国很快也会出现其翻译版本,就算没有翻译拿到影印版也不成问题。中国软件开发的落后最大的问题不是技术的落后,是思想的落后。

补:华为有个文化就是写经验集,就是不断总结开发中的经验,收集起来发到网上供大家共享。但是,华为对无数软件大师在十几年的时间里总结发展的很多技术(包括面向对象)或开发模式或最佳实践却视而不见,有点讽刺。

五、小胜靠智,大胜在德

天下唯有德者居之。

视卒如婴儿,故可以与之赴深溪;视卒如爱子,故可与之俱死。——《孙子兵法*地形第十》

释义:对待士卒就像对待婴儿一样,那么士卒就可以同他共赴患难;对待士卒就对待爱子一样,那么士卒就可以跟他同生共死。

中国文化在三千年多年前就提出了“德”的概念(《易经》:地势坤,君子以厚德载物)。这是我们中国文化优于其他文化的一个地方。“德”文化也是中国传统文化中的精华所在。

纵观中国历史,正是三个对百姓最具仁德之心的帝王汉文帝、唐太宗、康熙缔造了中国历史最伟大的三个盛世文景之治、贞观之治、康乾盛世。

德,不仅仅对于执政者治国具有重要的意义,同样适用于治理企业。最近十几年所提倡的企业社会责任正是对一个企业“德”的要求。卓越的企业,具有悠久历史的惠普有“尊重个人的惠普之道价值观”;后起新秀Google有“Don't be evil”价值观。这些都是卓越的企业“德”的体现。

德,不会在短期内带来疾风骤雨般的巨大力量,却会给你带来绵绵不绝、无穷无尽的力量,这种绵绵不绝、无穷无尽的力量正是“大胜”的必要保证。

[ 本帖最后由 winston 于 2008-1-4 11:22 编辑 ]

babyblue_993 发表于 2008-4-4 23:50:44

小声的问下,大侠在华为工作吗?

winston 发表于 2008-4-5 09:33:44

没有了。华为算是国内有名的公司,大家比较关心。我只是转帖一下相关的评论,大家思考一下罢了。

billanking 发表于 2008-4-8 17:07:21

我见过华为的人做开发,纯属死板。基本上这么说吧,在华为内部被评上了级的技术员,基本上出不来了。出来了,外面的公司也很难容下他们。
页: [1]
查看完整版本: 转帖 - 你所不知道的华为(华为人的自省)