LoveUnix » 行业应用 项目实施 » 对中国自发产生的软件企业的思考之一
让LU留住您的每

一天 让LU博客留住您的每一天
2003-10-28 13:45 蓝色键盘
1. 中国软件企业真正少了什么? <br /><br />我想大家都认为跨国企业与我们的中国软件企业是不同的,不仅仅在于其资本的多少,也不在于其对于员工的待遇和福利,就像大家不会认为中国软件企业不过是资本少一点,待遇差一点,业务范围小一点的跨国企业一样。(当然,我相信有很多人确实是这样认为的,那么我想先请您读完我的文章,然后我非常诚恳的请求您对于我的观点其中的错误之处进行批评。) <br />那么,既然我们人人都认为跨国企业和中国软件企业是不同的,那么跨国企业和中国软件企业真正的不同之处究竟在什么地方呢?究竟是什么导致我们会认为跨国企业和中国软件企业是有着本质区别的呢? <br />首先,我想请各位根据我日常工作中所遇到的种种问题,来跟我一起思考一下,回想一下,在您的公司里,是如何处理以下这些很琐碎平凡的工作的呢? <br />以下的问题基本是从担当基本工作的技术人员的角度来问,作为各级Leader和Manager的话,把问题反过来问即可。 <br />你如何得到工作的指示?通过口头、mail、书面还是别的方式?是否每次都是通过固定的方式?对于一项工作,你是否只需要得到一次指示就已经能够基本明确自己所应该做的事情? <br />你从谁那里得到工作的指示?从固定的一个leader还是可能各级leader都可能给你指示? <br />当你的工作出现疏漏和错误的时候,谁可能对你进行指正?同样,是固定的一个leader还是凡是你的上级都有可能? <br />你的工作的成果如何汇报?汇报给谁?通过什么方式汇报?您的项目组的所有工作成果,包括所有的文档,代码,以及相关资料,是如何存放的? <br />当你在工作中遇到问题的时候,解决问题的方法是什么?是否会有人和你一起关心这个问题?是否会有人能够对你提供指导和帮助? <br />工作成果有没有定义?不同阶段的工作成果有没有各自的定义?是不是所有人都采用相同的途径,方式进行交流?有没有区分正式的信息发布和私下的讨论?格式、规范由谁发布?指定的格式、规范,leader提出的工作中的要求,是否都能够得到贯彻实施? <br />工作指示的周期是多长?你可以计划到多久以后的工作?当您的项目组面对一项工作任务的时候,你是否在整个工作周期当中的每个时刻,都清楚的知道自己所负责的任务以及应当担负的责任?你是否有过今天不知道明天应该做什么,这周不知道下周应当做什么的时候?你是否有过工作一大堆,却不知道到底谁负责哪个部分,自己又不知道该做哪些工作的时候? <br />您的公司如何来产生中层的各级Leader和Project Manager?是主要通过招聘手段,还是领导单纯根据工作业绩来进行任命?或是其他的手段?对于中层管理人员的产生,有没有有意识、有目的的培养方式存在? <br />我知道我问的这些问题琐碎而平凡,然而我并不认为这些问题因此就不重要,因此就没有什么真正的意义?恰恰相反,我认为在目前的情势下,正是类似这些琐碎而平凡的问题,才是最重要的,最值得我们关注和体验的。当然,如果对上面所有的问题,您都有明确并且您觉得完全合理的实际工作方法来作为答案,那么恭喜您正在一家优秀而有前途的企业工作,也请您不必在拙文上浪费时间,以下我的种种理论,对您已经没有什么用处了。 <br />目前,软件工程的种种方法以及过程改进可谓软件业界的显学,恰如经济学之于中国一样。我认为种种对于软件工程的讨论和关注是非常重要的,先哲与大师们的著述与讨论,国内先行者们的实践和争论,都是非常重要的,他们代表了软件发展的先进方向,也是我们前进的必然道路。 <br />然而,我认为,最重要的,并不是这些。而恰恰是上面我所关注的那些简单、琐碎而又平凡,你每天都在实践都在进行的事情。 <br />因为再伟大的理论也要通过这样平凡的工作来实现,再了不起的方法也要通过一点一滴的实践来验证。实际上,长久以来,我认为我们就是缺乏了对这些构成整个软件开发的细小的沙粒的关注。也正因为如此,尽管现在先进的软件工程方法在持续的引进,我们已经可以在理论上与国际先进水平基本保持同步,然而却几乎没有听到任何一例对于先进理论,先进方法的成功实践。大家听到的,讨论的,却大都是在自己实际的工作中引进软件工程方法履步维艰,无法成功的故事;大都是软件工程无法适合中国实践,或是为什么不适合中国实践的问题。 <br />为什么软件工程和过程改进代表了软件开发的先进方向,却无法在我们的工作中得到验证和实践?其关键也就在于我们工作和实践中那一点一滴的方法和态度。大家都知道淮橘北枳的故事,南方的橘子树移植到北方便会变成枳,结的果子便不那么好吃,原因只在气候和水土的变化;同样,本来很好的软件工程和过程改进,到了我们中国,同样会因为本地的实际状况而发生改变。 <br />实际上,我认为,对于软件工程和过程改进的讨论和研究,对于目前我们大多数的软件开发人员来说,只是一种空中楼阁。那些被讨论的东西都是很好很好的,但是,那时国外的先哲与大师们在已经有着成熟有经验的人员队伍,有着管理比较现代化的企业的基础之上,对于如何达到“更好”的一种讨论。而对于我们目前的实践来说,我们尚无法达到大师们理论的起点,连“好”都尚未达到,又如何实现“更好”?(对于这一点,我相信有相当读者会有不同意见。同上,再读完本文之后,我诚恳的请您提出批评。) <br />而我们之所以连“好”都尚未达到,便是因为我在前面所问的细小问题。而所有这一切细小问题所指向的根源,其实都只是一个,那就是:缺少规则。 <br />缺少规则,其实这个是老生常谈,并且这个问题也并非为我们软件行业独享。缺少规则,其实是我们中国的一种传统或者说特点。这其实是我们同老外们的一个本质区别,如果不认识到这一点,那么是绝对不可能搞明白为什么外国的好东西到了我们这里就是实行不了的,因为最根本的做事情的方法和规则都变了,你怎么可能还期望所有的一切恰如理论和书本上描述的一样完美? <br />但是我知道看到这里很多朋友要提出异议了,是的,我们大多数的企业当中并非不重视规则,实际上,就以我刚刚离开的甲公司为例,公司的管理者们给我的印象是,在管理者的主观愿望上,绝对是极其重视管理的,并且,采用了各种各样的方法来加强公司的管理工作。 <br />但是,遗憾的是,我认为,绝大多数人,可以从甲公司的管理者们推广到大多数管理者,并没有意识的问题的关键所在。 <br />我所说的缺少规则,并不是说我们在工作中没有规则。实际上,每个公司都有自己不在少数的种种规章、制度,种种工作规程。但是,这些规程、制度当中,又有多少是管理者们真正根据自己心底的需要,真正根据科学的管理方法而制定出来的呢?又有多少不过是简单的抄袭书本,抄袭别的公司,或是仅仅为了对付当前的工作情势,为了应付差事而制订的呢?正如当前我们热衷于讨论软件工程而不是每一个细小的工作实践方法一样,相当多的管理者,容易把规则,把管理当作一种形而上的东西,虽然喜欢制订各种规则,但出发点往往都是为了解决一时的工作需要,为了看起来先进或是好看,并且总是认为一旦有了规则,就万事大吉了,就觉得本公司,本项目组已经实行了先进的管理方法。 <br />在这里,我敢大胆的说一句,大多数的公司,他们制定规则之前,并没有根据自己的实际状况,也没有从每个开发人员工作的实际出发,并没有在制定规则之前,弄明白自己真正需要的究竟是什么,自己制订的规则,究竟对公司有益还是有害,能够促进工作还是拖累工作,也没有搞明白,自己制订的规则,是否符合实际,是否真的能够,并且是否真的会被员工实践下去。 <br />我所说的缺少规则,并不是指的我们缺少成文的,白纸黑字的规则。我所说的规则含义远远大于这些,我所说的规则,指的是我们为了完成一项工作,从头到尾,我们所应该遵循的种种工作方法和手段。正是这些方法和手段,决定了我们的一项工作,是高效率的完成还是低效率的完成,决定了我们这些程序员们,是每天能够正常的工作还能够保证进度,还是加班无数却最后只能看着项目垮掉。 <br />你不信?好,那么就让我们回到一开始我问的那些问题上吧,让我们来一个一个的分析一下,究竟这些细小的方方面面,究竟会对我们的工作产生什么样的影响。 <br />1. 你如何得到工作的指示?通过口头、mail、书面还是别的方式?是否每次都是通过固定的方式?对于一项工作,你是否只需要得到一次指示就已经能够基本明确自己所应该做的事情? <br />你从谁那里得到工作的指示?从固定的一个leader还是可能各级leader都可能给你指示? <br />当你的工作出现疏漏和错误的时候,谁可能对你进行指正?同样,是固定的一个leader还是凡是你的上级都有可能? <br />评论:此处的问题讨论的其实是软件开发过程中工作指示的流通成本问题。我想每个Leader都会希望自己对于下属的工作指示能够得到正确、及时的贯彻执行,而每个开发人员也都会希望上级的指示明确、具体,不要朝令夕改,不会误导自己到错误的方向。这其实也就是希望工作指示的流通成本能够降到最低。但是,您有没有想过,该如何保证将工作指示的流通成本降到最低呢?工作指示的流通中,是否需要一定的规则呢? <br />让我们来看一下工作指示方面的坏典型。 <br />上级给予的工作指示:某某,把这份代码看一下;某某,把那份文档完成;某某,去配合某某完成某事...等等。 <br />这样的工作指示有什么不对?我认为,一个好的工作指示,至少应当明确的包含指示的对象,工作的内容,对于工作的要求,在工作中所负担的责任,完成的期限,最后的成果体现为什么等等方面的内容,才是一个合格的,好的工作指示。同时,最好以文字方式发布。对于工作指示的含糊不清,不仅会导致下属完成工作时的迷惑,也会导致Leader对于工作状况的把握不清。因为提出一个明确的工作指示的前提是Leader本身对于该项工作已经进行过思考,比较清楚明了,这样才能要求的明确,如果事先不经过自己思考,只是简单的命令下属,要下属去思考,那么到最后自己也只能是对整个工作保持一种浑浑噩噩的状态。总之,只有清楚明确的发布工作指示,才能保证工作担当者顺利、高效的完成工作,保证Leader对于工作的监控和掌握。 <br />至于工作上多头指挥,即每个比你大的人都可能让你做事情,对你由所要求所带来的坏处,相信有很多人都会有切身体会,在此不再赘述。 <br />因此,建立工作指示流通的规则,我相信可以对提高我们的工作效率起到事半功倍的作用。 <br />2.你的工作的成果如何汇报?汇报给谁?通过什么方式汇报?您的项目组的所有工作成果,包括所有的文档,代码,以及相关资料,是如何存放的? <br />工作成果有没有定义?不同阶段的工作成果有没有各自的定义?是不是所有人都采用相同的途径,方式进行交流?有没有区分正式的信息发布和私下的讨论?格式、规范由谁发布?指定的格式、规范,leader提出的工作中的要求,是否都能够得到贯彻实施? <br />评论:此处的问题讨论的是软件开发过程中各个角色之间的交流成本问题。我们都知道,开发过程中的各个角色之间进行交流是需要成本的,不经过必要的沟通,任意两个人之间几乎是不可能明了对方的意思的。同样,我们肯定也希望把这种成本降到最低。而如果在沟通和交流中,没有每个人都可以遵循的简单、明确的规则,又如何能期望做到这一点?让我们来看一些坏的例子。 <br />你有没有遇到过这样的情况,一分由你负责的文档或者代码,一份由你搜集的资料,你已经按时按要求完成,并且已经提交给你的Leader,甚至你的Leader已经将其发布到全体了,可是不论是你的Leader还是你的同事,在遇到问题的时候却好像从来没有收到过一样,总是不停的跑来问你原本文档或资料中已经说清楚的问题,或者干脆一遍又一遍要求你重复发送你的工作成果? <br />而你呢?当你需要别人的工作成果的时候,你又是怎么做的?你能很轻易的找到自己所需要的东西吗?还是要问上一大圈人才能得到自己需要的东西? <br />你有没有过一个问题,一件事情,已经按照要求向大家解释清楚,却总是有人表示他不知道因而不断的来要你解释? <br />你有没有过Leader正式发布了对于工作的某种规范和要求,结果你辛辛苦苦的按照要求完成了自己的工作,却发现大家都没有按照规范来做?你又有没有过某个普通同事随便发了一封mail或者随便提到工作要按照某个标准,你以为只是他个人的意见可到头来却发现对于工作成果的考核却完全按照这个标准进行? <br />你有没有过辛辛苦苦的完成一项工作,满心以为完成了要求的任务,却发现实际上你还差了若干份文档没有完成?又有没有过花费了巨大的时间和精力,完成了一项繁复的工作,到头来却发现其实只要完成其中一部分就可以了? <br />我相信以上我列举的种种情况,诸位肯定和我一样,至少遇到过其中一种或几种。至于其中的坏处,应该不用我说了吧?只要各位想想自己当时的气愤、沮丧、失望,以及其所带来的对于工作延误,自然就可以明白如果我们没有一个简单、规范的交流规则,会给工作带来什么样的影响。 <br />以上我提出的问题其实只是软件开发过程中有关沟通的一小部分,我相信各位只要稍加思考,就会在减少沟通成本方面和我达成共识。实际上,我认为在大部分的时候,我们只是很难意识到问题的存在而已,并非我们不重视这些问题。一旦我们意识到了它的存在,那么离解决问题也就不远了。 <br />3. 当你在工作中遇到问题的时候,解决问题的方法是什么?是否会有人和你一起关心这个问题?是否会有人能够对你提供指导和帮助? <br />工作指示的周期是多长?你可以计划到多久以后的工作?当您的项目组面对一项工作任务的时候,你是否在整个工作周期当中的每个时刻,都清楚的知道自己所负责的任务以及应当担负的责任?你是否有过今天不知道明天应该做什么,这周不知道下周应当做什么的时候?你是否有过工作一大堆,却不知道到底谁负责哪个部分,自己又不知道该做哪些工作的时候? <br />评论:此处讨论的其实是工作要按照一定的规则来完成的问题。 <br />一个项目的开发,一个mile stone的达成,究竟应当按照或者说,是否需要按照一定的规则来完成?我想恐怕很少有人思考过或者意识到了这个问题。 <br />在我们的工作当中,每一个具体的步骤,都应当是一级一级计划、分派下来,最后由开发人员使用计算机来完成。也就是说,身为Leader,必须能够清楚明确的对下属的工作进行安排,并且通过这种安排,最终达成上级交给的工作目标。在这个过程当中,不仅Leader自身要清楚每一个步骤,更重要的是必须确保担当实际工作的开发人员也清楚自身的任务和责任。如果Leader缺乏这个意识的话,就容易导致工作完成状况极不明确,一大堆事情,却不知道先完成哪个,后完成哪个,工作做到了什么地方都不清楚,在开始的时候工作不饱满,到了最后才发现来不及了,于是再全组赶工。实际上,我认为,计划不明确,工作分派不清楚,是导致项目末期大量加班的最主要原因。 <br />同时,关于工作中的Trouble Shooting问题,该如何解决?我们都知道,实际情况永远不会按照计划进行,Trouble Shooting实际上只是所有计划外情形中的一个而已。 <br />这里需不需要规则?让我们回想一下我们写程序的时候,对于所有的exception情况,你是会一一捕捉并按照一定的错误处理规范加以处理,还是任由其自生自灭,不理不睬?我想在实践当中,一个错误处理混乱,没有规程的程序,我们肯定不会认为它是一个好的程序。那么,我们在对待软件开发过程中的计划外情况,是否也应该建立起一个良好的处理规范呢? <br />而计划外情况也仍旧只是软件开发过程中的一个方面而已,实际上,我们对于整个软件开发过程当中,每一个方面工作的完成,都应当遵循明确合理的规则。当然,这些问题基本上是在软件工程讨论的范畴里的,相信大家结合自己对于软件工程的思考和实践,会有比我更深的体会。 <br />4. 您的公司如何来产生中层的各级Leader和Project Manager?是主要通过招聘手段,还是领导单纯根据工作业绩来进行任命?或是其他的手段?对于中层管理人员的产生,有没有有意识、有目的的培养方式存在? <br />评论:此处讨论的是您的公司中管理方式、管理方法的规则。在此对这个问题暂时不讨论,后面对此进行专门论述。 <br />以上讨论了四个方面的规则,这四个方面也只是整个软件开发中很小的几个部分而已。只要各位稍加思考,就会在各位自己的实践中找到更多更重要的需要规则的地方。 <br />因此,我认为,当前我们最需要的,实际我们每个最基本的开发人员所最渴望的,并不是软件工程的种种方法和理论,而是在软件开发过程当中,在每天的日常工作当中,点点滴滴的规则。我甚至认为,之所以软件工程会成为显学,会成为广大开发人员关注和渴望的东西,就是因为如果实行软件工程,能够在客观上建立起相当的规则,让大家在实践中有所依靠。而我们的软件工程实践总是无法成功,也从侧面说明了规则的缺乏,已经到了一个何等严重的地步。不然,我们该如何解释,为什么在国外,软件工程的发起和实行总是自上向下,由公司的管理者发起并得到成功实践,而在国内,呼声却总是自下向上,要基层开发人员自发推行,并且总是得不到成功? <br />因此,规则,这就是我们大多数的中国软件企业,我相信也包括大多数的国有企业,所真正缺少的东西。 <br />那么,我们该如何建立规则?什么样的规则才是好的?为什么中国软件企业即使有着良好的建立规则主观愿望,实际中却仍然缺乏规则?我们又该如何保证规则的切实实行?有了好的规则,是否就能够为程序员个人以及软件企业带来美好的希望? <br /><br />不论你是否赞同我的观点,我都诚恳的邀请你和我一起来对这些问题进行思考和回答。 <br /><br /><br />2. 中国软件企业的现状分析与问题的解决之道 <br /><br />如果你可以同意我在本文的第一部分中所论述的缺少规则的问题,那么我们下面的问题一定就是:如何才能够建立起规则并确保规则的实行?我们又如何保证建立起的规则确实是好的,有效的,适合我们的企业的? <br />事实上,尽管我认为目前在中国的软件企业当中严重的缺少规则,但是我并不认为软件行业内部对于规则缺乏重视。软件工程之所以能够成为显学,就可以从某个侧面说明我们对于规则的渴望和重视。同时,我想没人认为我们中国人比外国人笨,所以对于管理方面就是想不出好办法。 <br />那么,为什么在主观愿望和客观能力上我们都毫不逊于高鼻子的家伙们,但在实践中总是比国外优秀软件企业逊色很多呢? <br />我想,这要从我们中国软件企业自身成长发展的特点,从我们中国软件企业的现状来进行分析。 <br />说到中国软件企业自身成长发展的特点和现状,我想很多朋友首先一定会提到我们中国的传统文化的影响。的确,既然我们生长在中国,不管是企业也好,个人也好,当然都不可能避开自己国家文化的影响。而在我们国家的传统文化中,也确实有着相当成分是不适合当今商业社会的,不仅对软件企业产生影响,而且对整个中国政治经济文化都会产生影响。 <br />但是,我认为传统文化的消极影响固然强大,但是它并非是造成中国软件企业缺少规则的决定性因素。 <br />我们比不上国外软件企业的真正原因其实只有一个:经验和技巧的累积决定一切,我们技不如人。 <br />我想看到这里一定有很多朋友会觉得失望,因为没人会认为当今中国软件企业在管理经验、方法和技巧上比外国企业强,这只不过是一个尽人皆知的事实而已,又有什么稀奇的呢? <br />不错,我们技不如人,这的确是一个尽人皆知的事实。但是,知道我们技不如人是一回事,真正理解和懂得我们何处技不如人,为何技不如人是另一回事,能够根据这个事实来确定自己在现实中应当如何做又是一回事。 <br />为什么说我们的技不如人?就体现在两点上:第一,对于坏的管理状态缺乏敏感,对规则缺乏重视,缺乏建立起现代的、规范的开发过程的意识;第二,能力所限,不能够制订真正适用和有效的规章制度和工作规范,不能在实际工作中建立起好的管理体系。 <br />这其中,第一点尤其重要。前面我们说过,当今中国软件企业真正的问题,在于缺乏规则,在工作中的各个环节都缺乏建立规则、尊重规则的意识。这正是因为在很多时候,绝大多数的Leader和开发人员都不能从根本上意识到自己当前所处的环境究竟坏在何处,往往只是容易局限于对一时一地的某个具体现象产生不满和改革的想法,意识不到真正的症结都在于缺乏规则。在改革的意识上,处于自发而非自觉状态(这一段怎么看起来很像从政治教科书上抄下来的?请不要骂我啊)。因此在实际工作当中,或者久居鲍鱼之肆因此不觉其臭,没有认识到变革的必要;或是自发的对于工作中的某些方面进行了改革和尝试,但是屡战屡败的结果让人心灰意冷,因此索性随波逐流。 <br />而对于第二点来说,往往就体现为公司的领导也好,普通开发人员也好,都又聪明又好学,都希望建立起一个良好、高效的开发流程。因此都在不断的学习,从书本上学习,从欧美大企业学习,从国内成功的企业学习,不断改进和完善自身的规章和制度,并且在实际工作中进行实践,然而效果却总是不能尽如人意。这其中水平问题就是决定性因素。 <br />中国软件企业成长和发展的真正特点是什么?究竟是什么导致我们技不如人?实际上,就是因为我们的企业也好,管理人员也好,技术人员也好,都是在很短的时间里自发的快速成长起来的。正是这一点,决定了我们技不如人。 <br /><br />人人都知道,现代软件行业发源于美国。软件发展的历史从某种角度来说可以说就是美国软件行业发展的历史,而我们中国软件不过在近10年以内才可以说有了一些发展。美国的软件行业磕磕碰碰发展到今天,在实践中通过无数项目的失败和无数公司的破产,早已积累出极其丰富的一套规则以及一大批经验丰富、水平极高的管理和开发人员队伍。这是不论我们中国人如何聪明,如何好学,都不可能在短时间内拥有的。这是其一。 <br />其二,这一点其实同样重要,但是往往被人忽略。软件行业虽然有自身的特色,但是从根本上说,一样要遵循现代企业、现代管理方法的基本要素。而在这一点上,欧美世界资本主义、市场经济发展了几百年,在现代企业和现代管理方法上早就累积了丰厚的知识和人才,这是欧美软件行业发展不可缺少的坚强后盾。如果翻开当今美国各大软件公司的历史看看,其实大多跟我们现在的民营软件公司一样,不过是十来个人,七八条枪的小作坊起家,发展到一定阶段一样会遇到管理混乱、效率低下的问题。这个时候,发展中的软件公司往往可以得到美国传统经济的坚实支持,通过依靠传统经济发展和培养起来的优秀管理经验和管理人才,渡过难关,最终成长和发展起来。当然,我并非专门研究经济和历史,因此这个论断我其实无法举出事实来作为论据,但是这里想提到一本书,前几年北大出版社出版的《微软的秘密》,描述的是90年代中期还没强到神憎鬼厌时的微软的管理方法以及发展历史。书我还没看,但是我相信,微软在发展过程当中,也一定有一个阶段,在职业经理人的帮助下,经历了从盖茨等几个人的小作坊到现代企业的飞跃(话说得有点满,请看过该书的同学批判)。 <br />而对于我们中国的软件企业来说,显然无法从传统经济当中得到任何支持,甚至从现况来看,还要担负作为现代先进企业代表的责任,要反过来给传统经济做出榜样。 <br />如果能够认识到以上这两点的话,我想我们就应当改变我们意识中的某些东西。 <br />为什么这么说?要改变意识中的什么东西?其实,很多时候,我们虽然不会认为自己强于老外,但是潜意识上,一般也不会认为我们比老外差到哪里去。特别是若再加上中国国情这个幌子,就我见到的很多同行来说,往往就会失去虚心的态度,自视过高。 <br />自视过高的一个最突出的表现,也是我认为在中国软件企业中建立现代软件开发过程最大的阻碍,就是通常,我们在建立自己的管理规范、管理体系和开发流程的时候,往往会参照和学习优秀软件企业的开发过程,引进到自己的公司中来,在这个过程中,我们往往会以从本公司的实况出发为名,在引进、学习和参考国外优秀软件开发过程的时候,在还没有开始实践之前,就按照自己的意愿进行裁减和增删。 <br />我知道我要遭到大多数朋友的反对了。的确,这个世界上不可能有适合一切环境、场合的软件开发过程。必须从本公司的实际出发,适合本公司的特点,才能够找到好的管理体系、管理规范,以及好的开发流程。那么从本公司的实际情况出发,在实施的过程中进行裁减和增删,又有什么不对的呢? <br />是的,从理论上讲,这的确是理所当然的。但是,就当前我们在管理和技术上的实际水平而言,目前国内又有几个人有能力、有资格对一种开发流程、一种管理方法做出评价,或者进行裁剪呢? <br />以前CSDN网站上曾经做过一个调查,目的是察看目前的程序员们的经验年限。我还记得其结果显示,5年及以下工作经验的程序员们,占到70%以上。我相信这其中也包括了当前绝大多数,各个阶层的Leader们。我们的现状就是如此,我承认有天才的存在,但是不认为每个公司都恰好拥有那么一两个。请各位扪心自问,以自己5年以下的实际工作经验,究竟有多少自信可以宣称,能够对已经成形的各种管理理论、管理方法作出真正合适的修正? <br />前面说过,技不如人的表现之一就是眼光不行。眼光不行不仅包括对于差的环境,差的方法缺乏感觉,意识不到,也包括了对于好的方法,好的理论缺乏敏感,其结果就是容易只赞同、应用一套理论、方法中自己理解和有感触的部分,对于自己不理解、没感触的地方就认为是不适合本公司或者中国的实际情况而不予采用。但是只要我们结合生活中的实际情况想一想就可以明白,很多时候,好的东西、好的方法,在一开始的时候往往你根本就感觉不到,虽然它带来的好处从第一天开始就存在,但是在你发觉或者认为那是好处之前,往往要经过很长的时间。一种好的管理方法、管理理论也是如此,以我们当前的水平,轻率的取舍所带来的坏处要远远多于好处。鲁迅先生说“拿来主义”,留下好的,抛弃坏的,但是那是对一个正常积极的人来说的,若是要一个小孩子来取舍,说不定就会留下了姨太太,吸上了鸦片,却卖掉了房子。 <br />因此,我认为,我们应当首先根据自己公司的情况,实际挑选一套已经在别的公司得到成功应用的管理制度和管理方法,不要在一开始就考虑这套方法中身地方适合本公司,什么地方不适合本公司,而是不加修正,先推行起来再说,。在此期间,要不断观察、分析和总结,在实践中找出这套方法对于自己来说真正适合以及不适合的地方。此时,切忌轻率的下结论,不要一看到矛盾,一看到新的制度无法顺利的实施就认为是这种方法不适合本公司,要认真的分析,究竟是这种方法不适合,还是我们的思想、观念、方法需要改变。就算是新的制度和方法真的不合适,也先不要轻率的修改或废止,应该等到新的方法推行了足够长的一段时间之后,不论是管理者还是开发人员都已经在实践中对新的方法有了足够的理解,对积累起来的矛盾都已经有了足够的认识,在这个时候,再开始对推行的方法和制度进行充分的讨论,进行修正。 <br />这个过程可以进行多次的循环,不断对现有方法进行改进,也可以不断引进新的方法进行探讨。我相信这样的过程在一开始实行的时候,付出的代价的确会比较大,但是从长远的角度来看,在度过最初的磨合阶段之后,其所能发挥的作用和提升的效率一定是极其惊人的。 <br />需要注意的是,此处我所说的已经得到成功应用的管理制度和管理方法,并非指的是软件工程中的方法,如CMM或XP什么的。我们的目的并没有那么高尚,我们想要的,只是建立开发过程中最基础的各种规则。因此采用已经得到成功应用的管理制度和管理方法并不是从软件工程的书本上照抄,或者找个软件工程专家来作为顾问。 <br />我认为,要想用最少的代价,在管理方面取得最大的成就,最简单的办法,就是找到一个人。什么人呢?一个在优秀的企业中工作多年,对于该企业的管理、制度等方面已经有了丰富的体验和感触,并不一定要求能力如何,但是经验一定要丰富的人。为自己的公司招聘这样一个人,让他来担任第一线的管理者,Group Leader或Project Manager,将第一线的项目组的管理完全交给他,让他简单的将自己在原来的公司中看到的、听到的、感受到的管理经验和管理方法原封不动的照搬过来即可。 <br />请不要小看这种简单的照搬,不要忘记我们的这种照搬,其真正的目的是建立起工作中所需要的种种规则。而优秀的企业在多年的经营实践中,一般都已经建立起各种良好的规则,我们的这种照搬,就是为了抛开主观的影响,先把规则简单而完整的copy过来。在这个基础之上,才能够根据自己的实践来进行修正。 <br />请记住我的论断:一个好的管理规范、管理方法的提出,是不可能靠几个管理者坐在那里拍脑袋、抄书本想出来的,它只能是通过有经验、有能力的一线管理者在实践中不断的调整、纠正,而逐步建立起来,特别是对于一些细节问题来说,不经过实践,是绝对不可能得到好的结果的。重要的就是两点,第一,一个好的基础,不是自己根据想象和书本想出来的,而是已经在实践中得到成功应用的;第二,必须在实践中进行调整和修正。 <br />这里,有两个非常重要的矛盾。一个是企业的管理者,对于这样招聘来的人员,究竟能够给予多大的信任?这是决定我们建立规则的努力能否成功的关键。在这里,我只想说一句,如果你赞同我的论断,如果你信任你招聘来的人才,请记得我们中国的一句古话:疑人不用,用人不疑。第二,一个能够在优秀企业工作多年,经验丰富的Leader级人才,绝对不会便宜,相对于目前中国软件企业普遍的低工资(相对于外企)来说,招聘这样的人才,可以说是要大大的出血。但是,请相信,他给你的公司所带来的好处,绝对远远超过每个月那万八千块钱。 <br />综上所述,简单的总结一下就是:我们当前技不如人,自发生长起来的企业,管理方面不可能与先进企业竞争。不是随便什么人,或者说我认为中国几乎没有人,能够独力建立起成熟有效的管理制度。从先进企业挖角,先简单的拷贝先进企业的管理,在实践中进行调整。所有的一切,都是为了建立我们真正缺少的东西——规则。 <br />在我们做了如此的努力之后,我相信,我们已经距离建立起先进的软件开发过程又近了一步。但是这仍然是远远不够的,我们还面临开发中一个最重要的问题,实际上也是世界上所有行业最重要的问题,人的问题。就算我们采用了种种好的规则和管理方法,如果不能够真正进入到开发人员的心里,那么所有的一切也都是白费。 <br />如何合理的对人进行管理?所有的事情都要由人来完成,又如何真正让规则体现在每一个人每一件事当中?以下本文第三部分,我的一点浅见,恳请各位继续关注。

2003-10-28 15:20 threehair
文章不错。<br />的确,中国软件企业的现状应该说是多方面的原因<br />1 本身中国的软件业起步比较晚,还处于摸索的阶段<br />2 和中国人的思考方式有关。中国人习惯对一些好的理论进行详细考察,多方考证,然后再使用。一遇到一些挫折,往往就放弃了。不能贯彻到底。我想这应该是很多软件工程理论在软件企业中不能成功的另一个原因<br />3 中国的企业模式一般属于领导一言堂。事实上IT企业中的领导层真正的技术人员能有多少?他们的思考方向和软件开发者是不一样的,无法真正意识到软件开发中存在的问题。所以软件工程理论的实施注定是一个自下而上的过程<br />4 中国的软件业尚未真正沉淀下来,还很浮躁。大家把IT业当成一个暴利行业。软件企业普遍关注的是市场。

2003-10-28 19:57 流氓无产者
同意

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.