题外话:
1) 因为个人原因,拖了这么久才有第2篇,希望大家还会感兴趣。感谢一直关注本文的朋友。
2) 所有对于本文第一部分的评论我都有认真阅读,找到很多知音,很多问题很多朋友都和我有相同的观点,也看到很多不同观点更是给了我很多启发,非常感谢。本文全部7篇完成之后,愿意与大家进一步探讨。谢谢。
2. 中国软件企业的现状分析与问题的解决之道
如果你可以同意我在本文的第一部分中所论述的缺少规则的问题,那么我们下面的问题一定就是:如何才能够建立起规则并确保规则的实行?我们又如何保证建立起的规则确实是好的,有效的,适合我们的企业的?
事实上,尽管我认为目前在中国的软件企业当中严重的缺少规则,但是我并不认为软件行业内部对于规则缺乏重视。软件工程之所以能够成为显学,就可以从某个侧面说明我们对于规则的渴望和重视。同时,我想没人认为我们中国人比外国人笨,所以对于管理方面就是想不出好办法。
那么,为什么在主观愿望和客观能力上我们都毫不逊于高鼻子的家伙们,但在实践中总是比国外优秀软件企业逊色很多呢?
我想,这要从我们中国软件企业自身成长发展的特点,从我们中国软件企业的现状来进行分析。
说到中国软件企业自身成长发展的特点和现状,我想很多朋友首先一定会提到我们中国的传统文化的影响。的确,既然我们生长在中国,不管是企业也好,个人也好,当然都不可能避开自己国家文化的影响。而在我们国家的传统文化中,也确实有着相当成分是不适合当今商业社会的,不仅对软件企业产生影响,而且对整个中国政治经济文化都会产生影响。
但是,我认为传统文化的消极影响固然强大,但是它并非是造成中国软件企业缺少规则的决定性因素。
我们比不上国外软件企业的真正原因其实只有一个:经验和技巧的累积决定一切,我们技不如人。
我想看到这里一定有很多朋友会觉得失望,因为没人会认为当今中国软件企业在管理经验、方法和技巧上比外国企业强,这只不过是一个尽人皆知的事实而已,又有什么稀奇的呢?
不错,我们技不如人,这的确是一个尽人皆知的事实。但是,知道我们技不如人是一回事,真正理解和懂得我们何处技不如人,为何技不如人是另一回事,能够根据这个事实来确定自己在现实中应当如何做又是一回事。
为什么说我们的技不如人?就体现在两点上:第一,对于坏的管理状态缺乏敏感,对规则缺乏重视,缺乏建立起现代的、规范的开发过程的意识;第二,能力所限,不能够制订真正适用和有效的规章制度和工作规范,不能在实际工作中建立起好的管理体系。
这其中,第一点尤其重要。前面我们说过,当今中国软件企业真正的问题,在于缺乏规则,在工作中的各个环节都缺乏建立规则、尊重规则的意识。这正是因为在很多时候,绝大多数的Leader和开发人员都不能从根本上意识到自己当前所处的环境究竟坏在何处,往往只是容易局限于对一时一地的某个具体现象产生不满和改革的想法,意识不到真正的症结都在于缺乏规则。在改革的意识上,处于自发而非自觉状态(这一段怎么看起来很像从政治教科书上抄下来的?请不要骂我啊)。因此在实际工作当中,或者久居鲍鱼之肆因此不觉其臭,没有认识到变革的必要;或是自发的对于工作中的某些方面进行了改革和尝试,但是屡战屡败的结果让人心灰意冷,因此索性随波逐流。
而对于第二点来说,往往就体现为公司的领导也好,普通开发人员也好,都又聪明又好学,都希望建立起一个良好、高效的开发流程。因此都在不断的学习,从书本上学习,从欧美大企业学习,从国内成功的企业学习,不断改进和完善自身的规章和制度,并且在实际工作中进行实践,然而效果却总是不能尽如人意。这其中水平问题就是决定性因素。
中国软件企业成长和发展的真正特点是什么?究竟是什么导致我们技不如人?实际上,就是因为我们的企业也好,管理人员也好,技术人员也好,都是在很短的时间里自发的快速成长起来的。正是这一点,决定了我们技不如人。
人人都知道,现代软件行业发源于美国。软件发展的历史从某种角度来说可以说就是美国软件行业发展的历史,而我们中国软件不过在近10年以内才可以说有了一些发展。美国的软件行业磕磕碰碰发展到今天,在实践中通过无数项目的失败和无数公司的破产,早已积累出极其丰富的一套规则以及一大批经验丰富、水平极高的管理和开发人员队伍。这是不论我们中国人如何聪明,如何好学,都不可能在短时间内拥有的。这是其一。
其二,这一点其实同样重要,但是往往被人忽略。软件行业虽然有自身的特色,但是从根本上说,一样要遵循现代企业、现代管理方法的基本要素。而在这一点上,欧美世界资本主义、市场经济发展了几百年,在现代企业和现代管理方法上早就累积了丰厚的知识和人才,这是欧美软件行业发展不可缺少的坚强后盾。如果翻开当今美国各大软件公司的历史看看,其实大多跟我们现在的民营软件公司一样,不过是十来个人,七八条枪的小作坊起家,发展到一定阶段一样会遇到管理混乱、效率低下的问题。这个时候,发展中的软件公司往往可以得到美国传统经济的坚实支持,通过依靠传统经济发展和培养起来的优秀管理经验和管理人才,渡过难关,最终成长和发展起来。当然,我并非专门研究经济和历史,因此这个论断我其实无法举出事实来作为论据,但是这里想提到一本书,前几年北大出版社出版的《微软的秘密》,描述的是90年代中期还没强到神憎鬼厌时的微软的管理方法以及发展历史。书我还没看,但是我相信,微软在发展过程当中,也一定有一个阶段,在职业经理人的帮助下,经历了从盖茨等几个人的小作坊到现代企业的飞跃(话说得有点满,请看过该书的同学批判)。
而对于我们中国的软件企业来说,显然无法从传统经济当中得到任何支持,甚至从现况来看,还要担负作为现代先进企业代表的责任,要反过来给传统经济做出榜样。
如果能够认识到以上这两点的话,我想我们就应当改变我们意识中的某些东西。
为什么这么说?要改变意识中的什么东西?其实,很多时候,我们虽然不会认为自己强于老外,但是潜意识上,一般也不会认为我们比老外差到哪里去。特别是若再加上中国国情这个幌子,就我见到的很多同行来说,往往就会失去虚心的态度,自视过高。
自视过高的一个最突出的表现,也是我认为在中国软件企业中建立现代软件开发过程最大的阻碍,就是通常,我们在建立自己的管理规范、管理体系和开发流程的时候,往往会参照和学习优秀软件企业的开发过程,引进到自己的公司中来,在这个过程中,我们往往会以从本公司的实况出发为名,在引进、学习和参考国外优秀软件开发过程的时候,在还没有开始实践之前,就按照自己的意愿进行裁减和增删。
我知道我要遭到大多数朋友的反对了。的确,这个世界上不可能有适合一切环境、场合的软件开发过程。必须从本公司的实际出发,适合本公司的特点,才能够找到好的管理体系、管理规范,以及好的开发流程。那么从本公司的实际情况出发,在实施的过程中进行裁减和增删,又有什么不对的呢?
是的,从理论上讲,这的确是理所当然的。但是,就当前我们在管理和技术上的实际水平而言,目前国内又有几个人有能力、有资格对一种开发流程、一种管理方法做出评价,或者进行裁剪呢?
以前CSDN网站上曾经做过一个调查,目的是察看目前的程序员们的经验年限。我还记得其结果显示,5年及以下工作经验的程序员们,占到70%以上。我相信这其中也包括了当前绝大多数,各个阶层的Leader们。我们的现状就是如此,我承认有天才的存在,但是不认为每个公司都恰好拥有那么一两个。请各位扪心自问,以自己5年以下的实际工作经验,究竟有多少自信可以宣称,能够对已经成形的各种管理理论、管理方法作出真正合适的修正?
前面说过,技不如人的表现之一就是眼光不行。眼光不行不仅包括对于差的环境,差的方法缺乏感觉,意识不到,也包括了对于好的方法,好的理论缺乏敏感,其结果就是容易只赞同、应用一套理论、方法中自己理解和有感触的部分,对于自己不理解、没感触的地方就认为是不适合本公司或者中国的实际情况而不予采用。但是只要我们结合生活中的实际情况想一想就可以明白,很多时候,好的东西、好的方法,在一开始的时候往往你根本就感觉不到,虽然它带来的好处从第一天开始就存在,但是在你发觉或者认为那是好处之前,往往要经过很长的时间。一种好的管理方法、管理理论也是如此,以我们当前的水平,轻率的取舍所带来的坏处要远远多于好处。鲁迅先生说“拿来主义”,留下好的,抛弃坏的,但是那是对一个正常积极的人来说的,若是要一个小孩子来取舍,说不定就会留下了姨太太,吸上了鸦片,却卖掉了房子。
因此,我认为,我们应当首先根据自己公司的情况,实际挑选一套已经在别的公司得到成功应用的管理制度和管理方法,不要在一开始就考虑这套方法中身地方适合本公司,什么地方不适合本公司,而是不加修正,先推行起来再说,。在此期间,要不断观察、分析和总结,在实践中找出这套方法对于自己来说真正适合以及不适合的地方。此时,切忌轻率的下结论,不要一看到矛盾,一看到新的制度无法顺利的实施就认为是这种方法不适合本公司,要认真的分析,究竟是这种方法不适合,还是我们的思想、观念、方法需要改变。就算是新的制度和方法真的不合适,也先不要轻率的修改或废止,应该等到新的方法推行了足够长的一段时间之后,不论是管理者还是开发人员都已经在实践中对新的方法有了足够的理解,对积累起来的矛盾都已经有了足够的认识,在这个时候,再开始对推行的方法和制度进行充分的讨论,进行修正。
这个过程可以进行多次的循环,不断对现有方法进行改进,也可以不断引进新的方法进行探讨。我相信这样的过程在一开始实行的时候,付出的代价的确会比较大,但是从长远的角度来看,在度过最初的磨合阶段之后,其所能发挥的作用和提升的效率一定是极其惊人的。
需要注意的是,此处我所说的已经得到成功应用的管理制度和管理方法,并非指的是软件工程中的方法,如CMM或XP什么的。我们的目的并没有那么高尚,我们想要的,只是建立开发过程中最基础的各种规则。因此采用已经得到成功应用的管理制度和管理方法并不是从软件工程的书本上照抄,或者找个软件工程专家来作为顾问。
我认为,要想用最少的代价,在管理方面取得最大的成就,最简单的办法,就是找到一个人。什么人呢?一个在优秀的企业中工作多年,对于该企业的管理、制度等方面已经有了丰富的体验和感触,并不一定要求能力如何,但是经验一定要丰富的人。为自己的公司招聘这样一个人,让他来担任第一线的管理者,Group Leader或Project Manager,将第一线的项目组的管理完全交给他,让他简单的将自己在原来的公司中看到的、听到的、感受到的管理经验和管理方法原封不动的照搬过来即可。
请不要小看这种简单的照搬,不要忘记我们的这种照搬,其真正的目的是建立起工作中所需要的种种规则。而优秀的企业在多年的经营实践中,一般都已经建立起各种良好的规则,我们的这种照搬,就是为了抛开主观的影响,先把规则简单而完整的copy过来。在这个基础之上,才能够根据自己的实践来进行修正。
请记住我的论断:一个好的管理规范、管理方法的提出,是不可能靠几个管理者坐在那里拍脑袋、抄书本想出来的,它只能是通过有经验、有能力的一线管理者在实践中不断的调整、纠正,而逐步建立起来,特别是对于一些细节问题来说,不经过实践,是绝对不可能得到好的结果的。重要的就是两点,第一,一个好的基础,不是自己根据想象和书本想出来的,而是已经在实践中得到成功应用的;第二,必须在实践中进行调整和修正。
这里,有两个非常重要的矛盾。一个是企业的管理者,对于这样招聘来的人员,究竟能够给予多大的信任?这是决定我们建立规则的努力能否成功的关键。在这里,我只想说一句,如果你赞同我的论断,如果你信任你招聘来的人才,请记得我们中国的一句古话:疑人不用,用人不疑。第二,一个能够在优秀企业工作多年,经验丰富的Leader级人才,绝对不会便宜,相对于目前中国软件企业普遍的低工资(相对于外企)来说,招聘这样的人才,可以说是要大大的出血。但是,请相信,他给你的公司所带来的好处,绝对远远超过每个月那万八千块钱。
综上所述,简单的总结一下就是:我们当前技不如人,自发生长起来的企业,管理方面不可能与先进企业竞争。不是随便什么人,或者说我认为中国几乎没有人,能够独力建立起成熟有效的管理制度。从先进企业挖角,先简单的拷贝先进企业的管理,在实践中进行调整。所有的一切,都是为了建立我们真正缺少的东西——规则。
在我们做了如此的努力之后,我相信,我们已经距离建立起先进的软件开发过程又近了一步。但是这仍然是远远不够的,我们还面临开发中一个最重要的问题,实际上也是世界上所有行业最重要的问题,人的问题。就算我们采用了种种好的规则和管理方法,如果不能够真正进入到开发人员的心里,那么所有的一切也都是白费。
如何合理的对人进行管理?所有的事情都要由人来完成,又如何真正让规则体现在每一个人每一件事当中?以下本文第三部分,我的一点浅见,恳请各位继续关注。