正文

百度技术副总裁刘建国畅谈工程师成长2005-06-17 14:43:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/1899.html

分享到:

刘建国:
百度公司副总裁,副教授。1988年毕业于西安交通大学计算机科学工程系软件专业,1991年毕业于北京大学计算机科学技术系,获计算机网络方向硕士学位。1997年起,担任北京大学计算机系计算机网络和分布式系统研究室副主任,1999年被评为副教授。2000年1月加盟百度,现任百度公司技术副总裁,负责公司与技术和工程有关的规划、研究和管理。

从北大计算机系的教授到现在百度公司的技术副总裁,从最初带领六七个奠基工程师到现在管理一百多人的工程师队伍,这个过程和转变让我在管理、技术、做人、做事等等方面获益良多。尤其是在如何管理工程师团队方面,积累了许多宝贵的经验,希望在此与大家分享。


世界上存在很多管理理念和理论,但工程师的管理还是具有一定的特殊性。软件工程师是个非常特殊的群体。他们的特点很鲜明,比如聪明、科学严谨、不事张扬、自尊心极强、非常内秀。工程师善于和机器打交道,但不太擅长和人打交道,沟通技巧稍显欠缺,甚至有时看起来棱角过于分明。


因此,所有的技术管理方法必须和工程师的特点契合,否则注定是要失败的。百度公司刚创始的时候,我可以和工程师直接沟通,不存在什么问题。但随着技术团队规模的增加,就需要制定一些政策和流程,而且要根据工程师的特点来制定。工程师喜欢公平、公正、公开,最痛恨暗箱操作,所以要把很多事情事先约定清楚。比如绩效怎样评估,奖金怎么计算,职称标准是什么,奖励惩罚怎样进行。在制定过程中大家可以对这些规则挑战,但一旦确定下来,所有人都必须遵守。我们的政策是非常透明的,工程师做的怎么样,按照事先制定的规则一条条地对照,奖金和绩效评估都按照标准做,大家没有什么话说。


百度的工程师都抱着一个信条:“技术能够改变世界”,认为通过自己的技术影响大众生活是一件很自豪的事情,这是一个很重要的信仰。在一个以技术为导向的公司中,如果没有这种很高的信仰,就很难有发自内心的工作热情和提高技术水平的动力。在百度,当工程师想到自己所从事的工作是在改变一亿网民的生活时,内心便有一种莫名的激动和强烈的责任感,激励自己把每件工作做好。我本人也有这种强烈的感觉。2001年百度对外提供搜索引擎服务后,每天都有用户发来大量正面反馈,感谢百度如何帮他们找到了工作、学习、生活中需要的资料,如何丰富了他们的业余生活,有的网民甚至写诗赞美百度。去年我去厦门参加全国数据库学术会议时,在会上做了一个关于中文搜索引擎技术的主题演讲,许多参会的老师和学生很感兴趣,反映很热烈,这些都让我非常有成就感。


我一直持有一个信念,工程师应该是自我管理型的。好的工程师一般都有强烈的责任心,他们能够自我激励。作为管理者,应该充分相信他们,相信他们可以自己管理好自己的工作,不应该设置一大堆条条框框。例如对工程师应该实行弹性工作制,不要规定必须几点钟上班,几点钟下班。非要让一个夜猫子早上9点钟上班,晚上5点钟下班,一点意义都没有,因为他上班的时候效率会很低。对工程师来讲,你越是信任他们,他们就越自觉,越不会乱来。当然这种管理要有相应的配套措施,例如绩效评估要以结果导向,不管在什么时间工作,以什么方式工作,只要按照原来的承诺保质、保量、及时地完成了任务就可以。


工程师需要给予培训和成长的机会。虽然外来的培训和讲座很重要,但更多的时候还是要自我培训,因为从实践中学到的知识才更加深刻。我们常常会遇到这样的情况:培训的时候,觉得讲师讲的特别有道理,但回去之后就忘了,下一次听到时,又觉得很有道理,但往往没有从培训中真正学到东西。在百度我们强调自我培训。我们会给工程师压很重的担子,他们经过努力完成后,经过提炼、总结,水平会得到很大的提高,这样学到的东西会永生不忘。


要给工程师提供自我培训的机会,就要求管理者能够鼓励尝试、容忍失败,但我们要求同样的错误不能犯第二次。如何实现呢?百度建立了一套案例分析制度。出了问题我们就必须坐下来分析原因,是管理问题、流程问题、人员问题还是技术问题,探讨以后如何改进才能避免问题再次发生,并且立即采取行动。经验和经历的差别就在于总结与否。很多人只有经历没有经验,永远都成长不了。


总结的过程就是自我培训的过程,就是实现螺旋式上升的过程。例如,一个新系统上线出现了一些问题,所有与这个上线有关的人就要分析出现问题的原因:研发本身有什么质量问题,研发过程为什么没有发现,测试中为什么没有发现,上线后有没有可能更快发现,流程有没有问题,工程师有没有问题等等,把问题分析的越透彻,越能够找出解决问题之道。这是百度一个非常重要的技术文化。


对工程师来讲,科学面前人人平等。在百度,不管是普通的程序员,高级程序员,还是经理,技术总监,甚至是副总裁、总裁大家在讨论问题的时候都是平等的,没有任何等级的区别,一切以事实、数据、逻辑为准。工程技术有自己的客观规律,只有尊重这个规律,工程师才能够无所顾忌和畅所欲言,大家的积极性和创造性才能够发挥。在争论一个问题的时候,我并没有觉得我是一个副总裁,工程师也没有觉得他是一个员工,大家可以就问题争论到面红耳赤而没有任何不悦的感觉。


职业规划也是非常重要的一环,目的是希望大家把技术做得更深、更精。在制定职业阶梯的过程中,会遇到非常多的实际问题。比如,既然要把技术分成不同的级别,就需要定义很多评价标准。一个软件工程师和一个高级软件工程师如何区别?我们的经验是按照工作的规模和难度,比如其负责的是单纯的编码还是包含设计,编码的规模是很小的系统还是比较大的系统。测试工程师也是如此,做的是测试案例的设计还是执行,测试用例是针对什么系统规模的。按照这种思想,我们把规模分成了子模块、模块、子系统、系统等级别,不同的工程师职称对应不同的级别。


当然,有些评价标准很难完全精确、完全客观。比如,我们会经常面对很多世界性的技术难题,需要很多技术攻关,而不是单纯的产品实现。这个难度就很难用一套标准评价。但即便如此,我们仍然需要这样一个框架,因为它比没有任何依据要强得多。
最初的职业规范制定,我们用了大概半年的时间,以后经过三年的逐步完善,最终覆盖了所有工程师角色,形成了一个比较完整、统一的评价体系。现在我们的技术阶梯已经有开发、研究、测试、配置、质量保证、系统运行、技术支持、文档等九大系列、五十七个职称。这个职称体系,对百度工程师的职业生涯规划,对百度的技术管理具有非常重要的作用。我觉得这个体系尤其对百度这样的技术公司,具有非常重大的意义。我们的职称是和待遇挂钩的,最高技术职称的工程师薪水可能比技术副总裁的薪水还高。在百度,工程师根本不用顾及国内甚嚣尘上的说法:“中国程序员做到30岁就是天花板了,就必须转管理了”,只要对技术感兴趣,并且有能力钻研,他就可以在百度做技术做到退休。现在,百度这套制度实行了三年多,工程师非常满意。


对工程师未来职业发展如何选择,我也有一些建议和体会。首先,工程师一定要根据自己的兴趣和特长来选择。很多人不一定对管理感兴趣。我认为,管理类职位其实很像一个后勤部长,是要给大家创造一种更好的工作环境,他(她)要给大家买饼干饮料,安排体育活动,协调各种关系,和各种性格的人打交道,这些都是很烦杂的事情。工程师需要问问自己,你是不是善于和人沟通,是不是愿意去做这些琐碎的事情。


对公司的技术管理者来说,还要善于发现一个人适合做管理还是技术,是否具有某方面发展的潜质,然后要主动的培养他。百度技术部先后为公司培养了五个总监。每个人都有不同的特点。比如我曾经让我们一个技术总监管过系统运行组,但后来发现他很不适合,因为系统运行需要很多系统和网络方面的知识,需要做很多预先的安排和监控工作,计划性不强,随时都要准备处理异常情况。这实际上和他的知识结构、性格特征不吻合,他当时做的也不开心。后来我让他改做开发管理,他就做的很好。管理者一定要知人善任,把正确的人放到合适的位置上,才能发挥他们的聪明才智,而且出现问题就要及时进行调整。


对技术管理者来说,要善于管理比自己更聪明、更优秀的人。百度有很多优秀工程师,他们在不同的技术领域有很深的造诣,只有把这些工程师的积极性调动起来,百度才能够研发出伟大的产品,创造出世界一流的技术,提供用户喜爱的服务。作为管理者,要转变思想,勇于探索,有意识地创造一种环境让工程师更愉快地工作和成长,只有这样,团队才有活力,才有战斗力。



阅读(4467) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册