David Byttow认为成为优秀技术领导者可以从三个方面来说,属性、活动、行为。
属性(指工作本身所具有的各种特性)
在你的工作生活中,随着时间的推移,你应该不断加强三个属性:知识、速度和意识。
1. 知识
如果团队成员问关于一个特定的组件或系统工作原理的问题,你应该能够足够细的去解释它或者介绍给能回答这个问题的人。
想要提高专业知识水平,要做三件事情(按先后顺序):
- 评审代码
- 阅读设计文件
- 写代码
优秀的技术领导者应该掌握多种技术,如:Java、JavaScript、C++、分布式存储系统、Web客户端等。
2. 速度
你应该努力做到迅速反应并做出即时的决定。若工程师来向你反映问题,都期待你能做出迅速的反应。David Byttow最擅长的就是利用邮件,工作上涉及到问题跟踪、代码审查和软件生产等事情,都会及时的发邮件通知给团队成员,并能够让他们通过邮件发表评论。
3. 意识
你应该保持在任何时候对项目都有整体把控的意识,否则你就不可能知道即将遇到的问题。如果存在有一个内部或者外部的力量威胁项目放缓下来,那么你应该知道它。同样,在这方面电子邮件整合起到关键作用。理想情况下,所有项目有关的状态或改变,都应该以某种形式通过电子邮件知晓,即使是线下的聚会。
能动性
1. 阻止
阻止需要高水平的意识和在战略决策的高度。技术领导者需要认识项目到底是什么,在做出一些差的决定之前,事先直接阻止,通常都会有一个更好的解决方案,没有最好只有更好。若一个工程师把自己的代码给另一位工程师进行审查,这可能是很正常的一件事情,但事实上,这极有可能引入新的错误。你可以加入他们的审查,并提醒写代码的工程师,这对整个项目都是有益的。
2. 疏通
与阻止相反,疏通也同样主要。如果有人遇到一个问题,你应该给出一个答案,或者寻助能解决问题的人。对于一个实习生而言,如果他们没有得到答案,往往就会被卡住,或者更糟糕的是感到沮丧。你不得不一直学习,并加强自己各方面的知识来给出正确答案。
3. 重新导向
不管你有多优秀,总有你不知道的地方,你不能回答他人提出的所有问题。即使从技术层面来讲,你是可以做到,但这几乎会花掉你所有的时间。其实,你完全可以不用这样,你可以建立一个知识库,这个库有你解决问题的方法、可以请教的人等,这势必会给你节省大量的时间。
4. 决策
你的部分职责就是做决策,而你的团队凡事也都依靠你。你越快的做出一个决策,别人就可以更快的采取行动。
在做决策的时候要注意以下几个方面:
筛选自己的决定,直至剩下两个选择。问题的复杂性随着可选择的方案增多呈指数增长;
快速做出决策最好是基于一定经验和科学的数据;
如果你在某个点上做不出正确的决策,那么你要考虑是否去找能解决这个问题的人来做决策;
如果仍然没有最佳的选择,那么有可能是没有足够的数据或被错误的问题误导。最后,要么停下来,要么就凭自己的直觉。
5. 楷模
技术领导者最重要的一点,他们自身就是一个楷模,即领导者要做到以身作则、可以被别人学习。技术领导者通常不是管理人员,因为他们的精力主要用在代码上而不是人。因此,对团队成员的尊重和信任是极其重要的,这有益于工作的开展和项目的进行。
大多数的领导者可能会发现很难腾出时间写代码,这样是不可取的。有些时候,你写的代码没有多大的作用,可能只是修复一些小Bug或添加一条有用的代码片段,你这样做比代码本身更有价值。
行为
下面列出了一些事,可以帮助技术领导者推动项目的前进。
制定产品启动、测试、发布计划
高效地主持工程师团队会议
确保会议是有用的、短暂的、必要的
找出优先项目
对不必要的功能说“不”
对遇到的问题要及时跟踪解决
学会协作解决Bug
维系好各个职能部门之间的关系
将目标细化,定下达到目标的日期
保持你所使用的工具一直是最新的
培训工程师
从其它的团队招募工程师
审阅代码,并提供有用的反馈
读、写,并给他人的设计文件给予反馈
在合适的时间写合适的代码
要学会和其它的工程师团队相互协作
经常思考并寻求更好的解决问题方案
……
David Byttow认为想要成为一名成功的技术领导者,没有捷径可言,需脚踏实地做好每一件事,慢慢的积累,并保持信念。