zoukankan      html  css  js  c++  java
  • 优秀技术领导者的修成之道

    http://www.csdn.net/article/2013-06-30/2816056-how-to-be-a-great-technical-leader

    摘要:日前,曾就职于谷歌、Square、DoubleHelix等公司的资深软件工程师及创业者David Byttow撰文阐述如何成为一名伟大的技术领导者:丰富的知识积累、对问题的迅速处理、大局观意识、能动性和对不必要的功能说“不”等。

    最成功的项目都有一位优秀的技术领导者,来推动项目前进,同时确保正确制定每一个技术决策以及树立团队成员的信心。

    日前,曾就职于谷歌、Square、DoubleHelix等公司的资深软件工程师及创业者David Byttow撰文介绍了他从一介草根到被谷歌录用的经历,在谷歌度过了精彩非凡的五年,作为一名工程师的他不断学习和成长。他在文章中总结了自己的工作经历,并分享成为优秀技术领导者的修成之道。

    David Byttow认为成为优秀技术领导者可以从三个方面来说,属性、活动、行为。

    属性(指工作本身所具有的各种特性)

    在你的工作生活中,随着时间的推移,你应该不断加强三个属性:知识、速度和意识。

    1. 知识

    如果团队成员问关于一个特定的组件或系统工作原理的问题,你应该能够足够细的去解释它或者介绍给能回答这个问题的人。

    想要提高专业知识水平,要做三件事情(按先后顺序):

    优秀的技术领导者应该掌握多种技术,如:Java、JavaScript、C++、分布式存储系统、Web客户端等。

    2. 速度

    你应该努力做到迅速反应并做出即时的决定。若工程师来向你反映问题,都期待你能做出迅速的反应。David Byttow最擅长的就是利用邮件,工作上涉及到问题跟踪、代码审查和软件生产等事情,都会及时的发邮件通知给团队成员,并能够让他们通过邮件发表评论。

    3. 意识

    你应该保持在任何时候对项目都有整体把控的意识,否则你就不可能知道即将遇到的问题。如果存在有一个内部或者外部的力量威胁项目放缓下来,那么你应该知道它。同样,在这方面电子邮件整合起到关键作用。理想情况下,所有项目有关的状态或改变,都应该以某种形式通过电子邮件知晓,即使是线下的聚会。

    能动性

    1. 阻止

    阻止需要高水平的意识和在战略决策的高度。技术领导者需要认识项目到底是什么,在做出一些差的决定之前,事先直接阻止,通常都会有一个更好的解决方案,没有最好只有更好。若一个工程师把自己的代码给另一位工程师进行审查,这可能是很正常的一件事情,但事实上,这极有可能引入新的错误。你可以加入他们的审查,并提醒写代码的工程师,这对整个项目都是有益的。

    2. 疏通

    与阻止相反,疏通也同样主要。如果有人遇到一个问题,你应该给出一个答案,或者寻助能解决问题的人。对于一个实习生而言,如果他们没有得到答案,往往就会被卡住,或者更糟糕的是感到沮丧。你不得不一直学习,并加强自己各方面的知识来给出正确答案。

    3. 重新导向

    不管你有多优秀,总有你不知道的地方,你不能回答他人提出的所有问题。即使从技术层面来讲,你是可以做到,但这几乎会花掉你所有的时间。其实,你完全可以不用这样,你可以建立一个知识库,这个库有你解决问题的方法、可以请教的人等,这势必会给你节省大量的时间。

    4. 决策

    你的部分职责就是做决策,而你的团队凡事也都依靠你。你越快的做出一个决策,别人就可以更快的采取行动。

    在做决策的时候要注意以下几个方面:

    筛选自己的决定,直至剩下两个选择。问题的复杂性随着可选择的方案增多呈指数增长;

    快速做出决策最好是基于一定经验和科学的数据;

    如果你在某个点上做不出正确的决策,那么你要考虑是否去找能解决这个问题的人来做决策;

    如果仍然没有最佳的选择,那么有可能是没有足够的数据或被错误的问题误导。最后,要么停下来,要么就凭自己的直觉。

    5. 楷模

    技术领导者最重要的一点,他们自身就是一个楷模,即领导者要做到以身作则、可以被别人学习。技术领导者通常不是管理人员,因为他们的精力主要用在代码上而不是人。因此,对团队成员的尊重和信任是极其重要的,这有益于工作的开展和项目的进行。

    大多数的领导者可能会发现很难腾出时间写代码,这样是不可取的。有些时候,你写的代码没有多大的作用,可能只是修复一些小Bug或添加一条有用的代码片段,你这样做比代码本身更有价值。

    行为

    下面列出了一些事,可以帮助技术领导者推动项目的前进。

    制定产品启动、测试、发布计划
    高效地主持工程师团队会议
    确保会议是有用的、短暂的、必要的
    找出优先项目
    对不必要的功能说“不”
    对遇到的问题要及时跟踪解决
    学会协作解决Bug
    维系好各个职能部门之间的关系
    将目标细化,定下达到目标的日期
    保持你所使用的工具一直是最新的
    培训工程师
    从其它的团队招募工程师
    审阅代码,并提供有用的反馈
    读、写,并给他人的设计文件给予反馈
    在合适的时间写合适的代码
    要学会和其它的工程师团队相互协作
    经常思考并寻求更好的解决问题方案
    ……

    David Byttow认为想要成为一名成功的技术领导者,没有捷径可言,需脚踏实地做好每一件事,慢慢的积累,并保持信念。(文/钱曙光 责编/魏兵)

  • 相关阅读:
    【C++】资源管理
    【Shell脚本】逐行处理文本文件
    【算法题】rand5()产生rand7()
    【Shell脚本】字符串处理
    Apple iOS产品硬件参数. 不及格的程序员
    与iPhone的差距! 不及格的程序员
    iPhone游戏 Mr.Karoshi"过劳死"通关. 不及格的程序员
    XCode V4 发布了, 苹果的却是个变态. 不及格的程序员
    何时readonly 字段不是 readonly 的?结果出呼你想象!!! 不及格的程序员
    object file format unrecognized, invalid, or unsuitable Command 不及格的程序员
  • 原文地址:https://www.cnblogs.com/code-style/p/3167123.html
Copyright © 2011-2022 走看看