思考:如何做一名成功的IT工程师
扫描二维码
随时随地手机看文章
进入到IT这个圈子,很多人是从工程师开始做起的,那么如何成长为一名成功的工程师呢?或者是如何成功地转换为下一个角色呢?你需要做哪些准备呢?作为MDE(Market Development Engineering)的工程师和产品开发的工程师,还是有些不同的,我下面重点想说的是比较通用的,关于MDE的工程师,或者类似的做技术支持的工程师,我想后面再单独写一篇。
让我们先来看看成功的工程师是什么样子。在Sun公司里,工程师分为4个级别,从低到高依次是工程师(Engineer),高级工程师(Staff Engineer),杰出工程师(Distinguish Engineer),科学家(Fellow)。在工程师这个级别里又分为MTS1-4,也是依次从低到高的。Fellow,SUN公司总共没有几个,James Gosling是其中的一个,Bill Joy也是,最近离开SUN了,去开startup了。Sun的中国工程研究院(ERI)原来有DE,就是宫力,现在已经他离开了,暂时还没有。Staff Engineer,ERI有几个rotation过来的。不知道大家是否还记得James Liu,在MDE week上给大家烧烤的那个,他是Staff Engineer, 但我记不清楚他是否Senior Staff了。
那么这些不同的级别的定义是什么样子呢?要求是什么样子呢?我们分别来看看。一名MTS3的工程师应该可以独立地设计和实现一个解决复杂问题的解决方案,制订项目计划,并确定短期战略目标。对于MDE的工程师,应该可以独立地支持一个ISV,从技术评估,技术培训,移植的技术支持,性能调优,选型测试等。当然,并不是说MDE的工程师可以自己把所有这些全部完成,但是他/她在遇到阻碍的时候知道通过什么渠道来解决问题。MTS4的工程师,可以解决更复杂的问题,通过领导一个团队,独立地设计和实现一个复杂的项目,这样的一个项目通常都需要和其他的团队进行协调和沟通,并利用或组合其他团队的工作。一个MTS4工程师要有能力给其他低级别的工程师提供技术建议和指导。从MTS4到Staff Engineer是一个大的台阶,作为Staff Engineer,应该是在组内和组外都公认的专家,拥有解决复杂问题所必须的技术知识和商务知识。Staff Engineer和Engineering Manager是在同一个级别上的。
从一个MTS1或MTS2工程师做起,怎么准备自己走到下一步呢?一个很重要的概念就是管理自己:管理自己的目标,管理自己的时间,管理自己与其他人的沟通。
第一,要给自己设定一个目标,可以和自己的经理聊聊,自己的下一步在哪里,自己的优势在什么地方,通常他们会给出比较诚恳的建议的。我建议在制订这个长期的目标的时候也不要太长,比如说10年,那就太长了,说老实话,在20-30岁的这个阶段,3年后发生什么事情我们很难预测。所以我建议这个目标可以订的短些,比如2-3年。
第二,结合长期目标,给自己制定短期目标,比如说一年的,半年的,一个季度的,等等。制订目标的时候,有个SMART方法,想必大家都知道:s(specific,具体的,不能说空话,要用数据和时间说话)、m(measurable,可衡量的)、a(agreed,双方都同意的)、r(realistic,可实现的,可以达到的)、t(timebonded,有时间性的,可以考核)。
第三,在设定的时间,回顾自己的目标,检查完成的情况,如果没有完成,要总结是什么原因,并适当调整目标。
第四,管理好自己的时间,检查自己的大部分时间都在做什么,是不是在做最重要的事情,是不是大部分时间做了些不重要的事情,可是最重要的时间却没有时间做。管理时间需要对自己的工作进行优先级的评估,优先处理最重要的工作。发现了问题之后就要调整自己的习惯或方式,节约时间。随着你的级别越来越高,你会发现你的时间越来越少。可是你的加班不能无限延长,你还需要时间陪伴你的家人,你也需要时间休息。
第五,积极地学习。活到老,学到老,这句话没有错。有的工程师发现了一个正在进行BETA测试的新产品,认为对自己以后的工作有帮助,就马上拿来装上使用一番。有的工程师经常阅读和自己工作相关的各种标准和规范,对提高自己起了很大的作用。学习的范围要逐渐的宽一些,不要总是局限在纯粹的技术上,可以适当地学习些软技巧或商务等方面的知识。
第六,能够做决定。一个级别高的工程师,有责任做相应的决定。你的老板不会为你做所有的决定,你需要和你的老板商量,哪些是你应该做决定的,自己要把这些责任承担起来。最重要的决定是决定要做什么,如果这个决定没有做,那么尽管工作得再漂亮,到最后可能发现原来根本就是浪费时间。为了做正确的决定,你需要搜集相关的信息,没有足够的相关信息,可能做出的决定也是错误的。
第七,积极地沟通。谁是你最重要的客户?或者最重要的stakeholder?你的工作对谁影响最大?不要被动地等他们来找你,而是主动地去找他们,询问他们最关心的是什么,利用你的知识和经验,向他们建议哪些对他们最重要,提前和他们沟通项目计划,等等。工作展开后,要有定期的状态更新,碰到计划为的状况的时候,要立即和相关人员进行沟通。另外,找机会多和一些比你级别高的人或更有经验的人聊聊,有时候他们给你的一个建议,或无意中说的一句话,都会给你很大的启发。和他们的聊天,也经常能够给你些激励。
第八,认真地写报告。很多人不重视写报告或技术文档,这不利于工程师的成长。写报告是沟通的重要的环节。写报告的时候,首先要确定你的报告是写给谁的,谁在关心这个报告,关心的内容是什么。可以把自己想象成看报告的人,最想通过这个报告了解什么。报告也不仅仅是给你的老板看的,对于MTS4或者更高级别的晋升,是需要跨部门的讨论的。在一个10-20人的团队里,大家可以容易互相了解,在一个100人的团队里呢?就无法做到这点了。怎么让其他的团队里的人了解你的优点和技术专长呢?如果他们看到过你的报告,是很容易判断的。
总而言之,首先要定义自己的目标,然后学习和实践,通过证明自己的能力,最后的成功是水到渠成的。