-- 转载 http://liangchen.140.tofor.com/post/310.html
程序员三部曲之一——三流人员做研发
曾有言“一流的作管理,二流的作市场,三流的作研发!”,也有言“一年管理成富翁,三年市场路路通,十年技术一场空!”,其意无非是说研发人员低人一等,最开始听到这些话的时候,多是一种不屑,想当初自己毕业的时候,很多人都认为我的性格和能力更适合去做市场,而我却恰恰相反,选择了作研发,在我看来,管理是比较高深的领域,没有科班出身,没有严格的培训是无法做好的,中国的现实,管理的成功更多的取决于你的机会和后台而非真实本领。中国的市场也是如此,不是说鄙视市场人员,中国人就是有把环境搞混,搞乱的能力,好好的市场行为,到了中国就会变异,原谅我直言表达自己的想法,市场人员永远把客户列在第一,甚至需要失去自我的做人原则,这是我无法接受的。更深层次的想法是,我一直觉得研发是一件非常有乐趣的事情,要凭借自己的智慧,创造出这个世界原本没有的东西,而且纯粹是脑力的产物,这是一种远非加工制造业所能体会的成就感,更能感受到自己为这个社会做出的是实实在在的贡献,甚至是对自己还算聪明的大脑的一种回报。市场有啥难的,不就是陪客户吃饭,喝酒,玩乐,甚至是更多无法见光的事情。这不是我愿意面对的。作管理太难,完全没有思路。还是开发最好,这就是给聪明人设计的行业,一群绝对聪明的人,创造出一个个高科技产品出来。所以,当别人对我说出以上的话语,我表达的情感只有不屑。
可是,随着时间的推移,随着各种事情的经历,逐渐接触到各个领域的人,我发现我的观点在改变。不再把开发看的那样神秘和高尚,逐渐认识到,管理确实是最难的事情,也是我们中国大多数企业面临的最大困难,管理人员要把形形色色的人都充分调动起来,形成一个团结一致的团队,共同前进,是多么难的事情。若干年前有人举例什么是管理:就是把波音747所有的元件和技术资料都给中国人,中国造不出来真正实用的波音747飞机。戴明有说:管理,就是为员工提供最好的工作环境,让大家高效率的工作。谈到团队,管理者就是一个服务性领袖,能支持到所有人,从而让团队朝着共同的目标前进.在我看来,管理就是提供一个公平的竞争环境,关注人才的挖掘,人才的培养,奖罚分明,人尽其能,调动所有人的积极性,发现每个人的优点并且最大程度发挥出来,管理是一门博大精深的学科,对于人的要求是最高的。
对管理者的要求:心理学,统筹学,全局把握能力,沟通,协调,组织,洞察力,激励,勤奋,承受压力的能力,勇敢,决策力,果断机智,学习能力,改革的魄力,聆听,接受新鲜事物,勇于改正等等。
相关书籍:
《九型人格》:古老学科,心理学,了解别人,了解自己,激励,也是最难的;
《第五项修炼》:系统思考的观点,自我超越,心智模式,团队愿景,团队的学习,营造学习性组织;
《打破一切常规》:一线经理的作用,人才的挖掘,人才的培养,激励和奖惩;
《共好》,《一分钟经理》:管理小册子,关注目标管理,奖励和惩罚,分工和协作,人尽其才;
《戴明,朱兰》:质量管理大师;
市场人员,是直接面对客户的一线人员,首先要具备扎实而且全面的技术知识,能为客户制定出整套解决方案,更要有各种沟通交流的能力,谈判的技巧,有应变各种紧急情况的能力。也要有把握大局的能力。决非陪客户喝喝酒,吃吃饭那样简单。当然,不正规的市场行为不算在内。需知道,和人打交道才是最难的事情。要和竞争对手直接正面相碰,全线交锋,面对各种各样哪怕是刁蛮的客户,有关键时刻力挽狂澜的能力,抓住一切可能的机会。做成一个成功的市场人员,实在不是简单的事情。市场瞬息万变,竞争日益激烈,一个时机失去,则全盘皆输,所以,要有要面对更大的挑战和压力。
对市场人员的要求:沟通交流,协调,洞察力,全局把握能力,心理承受能力,幽默,时机掌握,抓住关键点,应急能力。
相关书籍:
《世界上最伟大的推销员》:爱是最大的力量,但是在中国有些行不通。
《沟通交流的技巧》:基本技能的理论学习。更多的是靠实践;
等等
再看看研发,客观评价,我们所在企业的研发都是产品开发,真正的技术含量不高,尽管成为顶尖高手太难,但是绝大多数人还是可以胜任开发工作的,经过相关技术培训后,高等院校毕业的学生只要尽力,基本是能保证作成一个还算“合格”的开发人员。只要专注于自己所作的事情,并尽力去做好就可以了,由于开发人员很少和外界有接口,尽管也会有会议,评审,培训等,但绝大多数时间面对的是计算机和代码,只要多看书,多实践,多加班,搞定这些代码和变量,完成开发任务还是不难的。看我们自己的周围,开发人员只是专注自己的工作领域,见到的世面太少,没有经历各种复杂的环境,而又同一大群同样的,如同学生一样的开发人员在一起工作,必然还保持着单纯,简单的特点,这是好事情,但是,开发工作也确实会让人变得内向,不擅长交流,沟通能力有限,也许你不服气,在关键场合,以及和各种人打交道的时候,就体现出开发人员表达能力有限,沟通能力不足的问题。特别是看问题过于片面,对于技术深度也许还可以,但是缺少大局把握能力,开发人员大多数时间只要管理好自己就可以了,没有更多机会和外界接触,思想相对闭塞,肯定出现应变能力不够,关键场合心理承受能力差的问题,相信很多人是会有这样的感受的。甚至还有胆小怕事,不敢承担责任,不求进取的情况。当然,我只是以中国为例,尽管国外很多技术大师写的书里都表现得言语诙谐,幽默,但是,就算老外的书也是把开发人员描写成不重装束,性格偏内向的人。决定一个人成功更多的是靠情商和逆境商数,而不是智商,最终走在社会前沿的多是从市场和管理走出去的人。
对开发人员的要求;聪明,勤奋,理解力,专研精神,学习能力,耐的住寂寞。
相关书籍:
《各种编程语言》
《操作系统》
《软件工程》
《软硬件技术》
等等,等等,太多了。
综上所述,最难作的确实是管理,市场人员也是要求很高,开发相对来确实说是最简单,最容易作的事情。因此,我承认了,三流人员作开发。
程序员三部曲之二——不作35岁的程序员
作者:摩西2000
在中国,程序员不能超过35岁,似乎已经是不争的事实,软件开发工作就是青春饭,顶多靠毕业这十年的时间,超过这个年龄,要不成功跃身成为管理者,要不转行进入其他领域,好像再没有更好的选择,即使偶有继续坚持作开发的,也被看成另类一族。老外却不是这样,40,50岁仍然作开发工作的大有人在,甚至很多牛人,包括获得康柏最佳软件奖的Robber,仍在埋头作着他所喜欢的编码工作,为何如此差异。我仔细想了一下,特别是这一年参加了太多的技术培训,基本有了一些结论。
首先,国内软件开发工作的性质决定这一切,我们所作的产品开发,真正技术含量并不高,高等院校毕业的学生,经过几年的培训和实践
,基本都能掌握这些技能,而我们现有产品开发设计水平有限,对于软件开发的理解还仅限于编码,完成功能这些基本的需求,产品进度是第一驱动力,特别是一些小公司,把快速开发出产品作为最高目标,软件设计质量差,很少考虑可维护性,可扩展性这些重要的软件质量属性,仅仅追求功能和进度,产品以最快的速度完成设计,编码,少有测试甚至没有测试,就直接交付给客户,在客户那里暴露出各种各样的问题出来,开发人员就开始不断得为客户解决这样那样的问题,软件做到最后,很多人都会陷入自己不断挖掘出来的“陷阱”里走不出来,步入在复杂的系统中查找BUG,解决BUG,增加功能,引入新的BUG,再解决BUG,这样永无休止的恶性循环中,从事的都是一些低级开发工作,对于软件开发的理解无法上升到更高的层次,每天都疲于救火和拼命打补丁,软件维护成本居高不小,即使最终摆脱了这样的厄运——项目结束,下一次软件开发又是同样过程的重复,这些无休止的低级开发和维护工作,会耗光一个人所有的激情和精力,随着年龄的增大,热情和体力都在衰减,而这些工作,只要毕业生经过培训,同样可以胜任,有着廉价的,并且充满热情的毕业生作竞争,身心疲惫的老程序员必然面对更大的竞争压力,做到最后,连他们自己都会失去对软件开发的兴趣,甚至会产生厌倦的情绪,对于这样的快速开发模式,十年开发经验和五年开发经验有很大区别吗?干吗不使用更经济便宜的开发人员。
另一个原因,是我们中国人一向的官本位思想,开发人员始终处于一种很尴尬的境界,听起来从事的是高级技术工作,说起来也是“以人为本”,但是,有多少企业管理者真正重视和认可开发人员的,哪怕是硕士,博士,这些开发人员在“大官,小官”面前,都只是普通劳动者而已。程序员是一个没有未来的行业,哪怕资历再深,能力在强,也还是一个劳动者而已,只有当上领导,走上管理才是最终的出路,否则,薪水上不去,地位上不去,只能面对被淘汰的命运。
实际不然,之所以出现这种问题,是国内对软件开发的一种错误理解。如果软件开发仅仅是代码编写,查找BUG,可以说,那实在是一些低级的软件行为,做了十年的开发人员,确实不见得比作了3年的人更强多少,反正是简单重复的工作,工作3年的一样可以作,而且有更大的热情和精力。但是,应该跳出这个怪圈,走向更高的领域,对软件开发重新进行认识。要明白,软件开发要融入工程化的思想,要有高度的设计能力,关注更多的软件运行属性和设计质量属性,同样的系统,不同的软件人员会做出完全不同的软件,正规,高效的开发团队要比游击队开发团队不只高出几十倍。软件开发,不仅仅关注功能,性能,更应该去研究可维护性,可扩展性等质量属性,不仅仅只关注代码,而更要上升为设计,复用等。软件开发不仅仅是写出C语言的代码,单元测试,同行评审,培训与学习,这同样是开发人员基本的素质,也是提高软件质量的最基本手段。举例来说,单元测试做好了,就可以让开发效率大大提高,也能让软件的维护成本降下来。把开发人员解放出来。同行评审可以让开发人员之间更多的交流和沟通,在设计,编码阶段严格控制软件质量,培训则是提高自身技术水平,从理论上提升自己的最好方法。先前这些主要的质量行为都被忽略了,而这恰恰是走出低级开发的最好途径。同时,还有更高层次的设计开发,软件重构,模块化,系统构架,搭建统一软件平台,度量软件质量等等,有了重构,就会写出可读性好,可维护性好的软件,甚至因此提高自己的软件设计能力,减少出错的几率;模块化,让软件最大程度的实现复用,提高软件开发效率和开发质量。软件构架设计,从技术层次上最早决定了软件的命运,而这里又有太多的技术,设计模式,软件规划等,让软件开发从编码上升到设计的层次,搭建统一软件平台,是大产品,系列化开发的必然之路,对于软件质量的度量,会让我们的软件开发变得更加透明,清晰,让我们更清楚的把握到软件开发过程,从各个环节去控制软件质量,而不是仅仅凭着感性的认识到了最后才去补救。
以上这些知识,一个人,哪怕勤奋学习一辈子,也不可能完全具备所有的技能。35岁算什么,做到70岁都不晚。当然,你需要真正的热爱它,并且不断得学习和进修。所以说,软件开发人员,要作的事情太多了,软件实在是一个浩大的脑力工程,甚至会让人觉得这是一个投入/产出比最低的行业,因为要学习的知识实在太多了,每时每刻都要处于不断的学习和更新当中,呵呵,既然选择了,既然喜欢了,就投入进去,享乐于此了。最重要的是,我们自己能并且愿意去认识到这一点,跳出低级开发的怪圈,走向更高的层次。
同时,要意识到,一个资深开发人员的作用绝不亚于一个管理人员,高明的企业应该给予相同的待遇,要把培养和储备高级技术人才作为高科技企业的重点发展方向,这样才能让企业在人才领域得到不断积累,资深开发人员才会带出高效的开发团队,从而开发出高质量,高效率的软件,让企业在不断激烈的竞争中取胜。要明白,不是每个人都适合或者乐于转向管理的,很多人就是适合做开发工作,他们可以走得更深入,成为专家,应该充分发挥出他们的能力,让整个团队高效运作起来。
所以说,开发人员,决不只是35岁,只要你愿意,可以作一生的开发,从中获得更多的快乐。
程序员三部曲之三——不作浮躁的程序员
作者:摩西2000
不可爱的程序员:
记得大学毕业刚到深圳的时候,遇到一个可爱的女孩,当她知道我是程序员的时候,就直接和我说,找男朋友,绝对不找程序员,为何?程序员不修边幅,为人木钠,不擅交际,不会说话,不懂浪漫,不会玩,不能哄女孩开心等等。我无言,我觉得她说的不无道理。程序员,或者大多数程序员确实如此,大部分时间面对代码和电脑,过于单纯简单的环境,以至于程序员真在其他领域确实难以有很大的突破。若干年后,又碰到这个女孩,她经历了多次的情感挫折,身心疲惫,告诉我,她很想找个程序员结婚,这又为何?程序员能挣钱,却不会花钱,为人老实,不会背叛感情,容易掌控,网上很多帖子都写了类似的内容。我继续无言:难道程序员就无法博得花季女孩的青睐,而只能成为她们情感经历后面对婚姻无奈的选择。
程序员,我为你悲哀!
当年自己刚大学刚毕业,**过于注重纯学业的环境,让我感觉压抑了多年,一心独自奋斗,不懂团队协作的**人不是我追求的目标。但真正面对复杂的社会环境,我感觉的却是无所适从,看起来和朋友在一起打打闹闹,性格开朗,其实,很多时候在和人打交道的时候我甚至是有些自卑的,更别说和陌生人说话,性格过于自我,沟通交流能力也有很多问题等等,其间,我也不断调整自我,自筹高额费用,全身心投入个人素质管理培训,确实提高了自己很多能力,更重要的是勇于认识真正的自我,大胆创新,不再畏惧失败,培养沟通交流能力,带领团队,组织活动等等,在这些方面投入了很多,也确实收获不少,后来参加户外运动,做领队,带队组织活动,对大家负责,把握活动节奏,把先前得团队管理进行了真正得实践,特别是面对大自然,个人是显得如此渺小,不尊重大自然,不尊重纪律,就会受到实实在在得惩罚,没有可以回旋的余地,经历了几次“生死考验”,增长了经验值,于是,让自己变得安静下来,可以说,团队培训和户外活动是相辅相成,帮助我快速成长。情商和逆境商数确实有一定提高,但是,因为自己相对“晚熟”,很多内容则是在给成长阶段补课,惭愧,惭愧!
不作技术专家:
我不想成为一名技术专家,因为我了解自己的性格,首先,就不具备深刻细致的专研能力,专家是可以有极大的耐心,长时间投入到一个专注的领域。其次,成为专家,必然是深度很大,范围很小,而我最自己的要求是要能够涉足更多的领域,让自己的人生更加完美,实际上,我更想成为一个工程管理专家。我对于提高整个团队的开发效率,提高软件的工程化有着极大的兴趣。在我看来,能让个体成为高手并不是很难的事情,能带动一个开发团队,高效工作才是我们中国人最欠缺的。我会乐此不疲。关于于中国人的团队精神和社会性,后来也看了很多管理类的书,学到很多西方管理知识。
从浮躁到沉静:
一直很想弄清楚该如何定位自己,是应该一心钻入代码中,完全不理世事,做不“可爱”的程序员,还是面面俱到,具备各方面能力,做综合性人才。这别是这一年以来,尽管技术水平也在不断提高,但是,负责部门培训,研究软件重构,成立模块化小组,构件底层软件平台,这些提高软件质量和工程化的活动,确实占据了自己太多时间,同时,让自己一直处于“多任务切换”的状态,无法专心投入到代码里,加之自己得性格偏外向,感觉自己不断浮躁起来,无法再象从前那样专心进去。这实在不是一个好现象,特别是自己对代码也还是满有兴趣的时候。主要是,我一直不愿意承认,难道程序员就是该邋遢,愚笨,口齿不灵,难道只有市场人员才能懂得交流,沟通。程序员是一个理性的行业,也是一个充满思维逻辑,关注长远大局的工作,应该培养出来更优秀的人才。程序员难道就不能是幽默,风趣,擅长交际,把握大局的。所以,刻意培养自己在多方面的能力,在游泳,爬山,球类活动,或者游戏等领域投入了很多时间,确实让自己兴趣爱好丰富起来,但是,这些活动毕竟还是要投入时间的。特别是,让自己不再能踏踏实实的躲到代码里。必然和默默无闻埋头于代码中的程序员拉开差距,IT实在是一个投入产出比低的行业,知识更新速度太快,要掌握的知识太多,如果没有大量时的投入,肯定难以达到一定的境界。多年下来,已经有了很大差距。这一直是困挠我的一个问题,不甘心埋头只做程序,但是全面发展又必然制约自己在技术领域的提高。过多的团队活动必然让自己得技术水平不能更快提高,不去培养其他方面,又会变成少有兴趣只会做代码的“呆子”。特别有一点,我是一直清楚得,而最近,则更加明确,天生的性格所致,后天环境的“娇惯”,一路学业和工作的放松,心高手短,以至于——内心浮躁。有热情而不够坚持,表面容易滑过,却专不到深处,根本原因也是因为不够沉静,这已经成为我的个人发展瓶颈,即使不只是程序员,做人,也应该沉稳下来。我想,但我看到这些的时候,我不会再无动于衷,我会好好反思自己,然后去做!不做浮躁的程序员,不做浮躁的人。