如何才能成为一个好的技术领导者?

标签: 业界观察 技术领导者 | 发表时间:2015-10-22 11:15 | 作者:techug
分享到:
出处:http://www.techug.com

近日,一名有超过15年软件开发经验的软件开发人员在Hacker News上提出了一个问题:如何才能成为一个好的技术领导者?该问题一经提出,在不到一天的时间内就获得了160多条回复。关于技术领导者应该具备的品质和管理技巧,网友们提出了各自的看法和建议,本文择要归纳如下。

如果不能从帮助团队获得满足感,那么就不要成为一名领导者

技术领导者要忙于会议、计划、打断、团队沟通、文档等工作,永远无法达到一个人单独工作时所能达到的那种个体生产力。

技术领导者的工作不再是让自己成为最好的编码人员,而是要尽可能地让其他人成为最好的编码人员。工作分配也要以一种有利于团队和个人成长的方式进行。要负责为团队成员清楚障碍,让他们的工作进入正轨。

技术领导者的满足感来自新人的培养和成长。

将自己视为其他开发人员的导师

即使已经知道了答案,有时候也需要让团队自行决策。许多时候,正确的答案并不唯一。技术领导者的工作不是选择正确的答案,而是确保团队不选择错误的答案。允许团队作为一个整体自行决策有利于保持高涨的士气,让每名成员都更有自豪感和主人翁精神。

在有关技术问题上,团队信任并依赖你的建议/观点。作为技术领导者要了解团队所开发的应用,了解该应用所涉及的领域,了解功能背后的技术,并编写详细的技术文档。

有时候,技术领导者同时也是首席工程师。这时,他所能为团队做的最有价值的事情是在开始和结束时为团队成员提供帮助。

有时候,技术领导者还是架构师。当解释系统或代码的行为时,他需要能够快速改变高度。当同开发人员调试问题时,他要能够深入技术细节;而当向CEO解释计划或成本估算时,他要能够在一个更高的层次上谈论系统。

随时准备好回答团队成员的问题

但当你有问题要问他们时要首先询问他们是否方便。这很难做到,因为作为一名技术领导者,你有许多工作要做。但是,为了可以有更多的时间回答他人的问题及为其他人提供支持,可以将复杂的任务委派给团队中更有经验的成员。

很多时候,团队成员的问题本可以在空闲或闲聊的时候提出。为此,引入可异步使用的生产力工具是一种更好的方式,比如,对于一些不太紧急的问题,可以借助Trello卡片或GitHub问题跟踪器提出。不过,不管采用什么样的沟通机制,关键是要获得其他团队成员的支持,让他们在工作无法进行或完成的时候,可以很舒服地打断你。

为了了解团队成员,技术领导者要定期主动同团队成员进行一对一的沟通。每名开发人员都是不同的,通过沟通可以了解到这种不同。

减少具体的编码工作,但仍然要编码

即使不做很多具体的编码工作,也仍然需要监控和接受所有的pull request,并利用这个过程,帮助初级开发者修改代码。这是必须的,如果不编码,那么开发人员会质疑你的判断,不容易接受你的建议。

但是,作为技术领导者,你的首要任务是确保团队成员的生产力,而不是自己的生产力。你要为整个团队的输出负责,如果那意味着零编码,那么就不要编码了。同时,这也意味着,即使代价是停下自己的工作,也要帮助处于困境中的团队成员。

要谦逊

要相信,你的团队所具备的能力和理解力都要超过你。

要承认,关于某个主题或组件,有人懂得比你多。成为一名优秀的领导者,并不需要事事都懂得比别人多。

如果团队成员都将你视为权威,那么他们会害怕自己做决策。在这种情况下,你就成了障碍。

要诚实

当你知道答案的时候,就说出来,即使那意味着某些人要重做大量的工作。如果你不知道答案,也要说出来,不能不懂装懂。你获得了当前的职位,就说明你有资格,你永远不需要向其他人证明你的能力。

除了上述这些讨论比较多的观点外,还有一些其它的观点,比如,把令人愉快的任务分给别人,把令人讨厌的任务留给自己;公开表扬,私底下批评;让每个团队成员都清楚地知道你对他们的期望;及时反馈和表扬;与非技术管理人员建立稳固的关系等等。还有一些行为是技术领导者应该避免的,比如,不要抱怨代码库有多糟糕;不要说“我们要重写XYZ”,技术债务要逐步解决;不要轻易提议使用可选的平台和框架。不过,需要注意的是,不同的组织有不同的企业文化,对技术和技术领导者有不同的看法和预期,技术领导者要以此为出发点考虑问题。

此外,网友们还提供了许多可供参考的资料,比如,《人月神话》、《人件》、《程序员修炼之道》、《技术领导之路》等。这里就不一一列举了,感兴趣的读者可以进一步阅读。

相关 [何才 技术] 推荐:

如何才能成为一个好的技术领导者?

- - 程序师
近日,一名有超过15年软件开发经验的软件开发人员在Hacker News上提出了一个问题:如何才能成为一个好的技术领导者. 该问题一经提出,在不到一天的时间内就获得了160多条回复. 关于技术领导者应该具备的品质和管理技巧,网友们提出了各自的看法和建议,本文择要归纳如下. 如果不能从帮助团队获得满足感,那么就不要成为一名领导者.

前端技术

- - CSDN博客综合推荐文章
随着互联网产业的爆炸式增长,与之伴生的Web前端技术也在历经洗礼和蜕变. 尤其是近几年随着移动终端的发展,越来越多的人开始投身或转行至新领域,这更为当今的IT产业注入了新的活力. 尽管Web前端技术诞生至今时日并不长,但随着Web技术的逐渐深入,今后将会在以下几方面发力. JavaScript的兄弟们.

SSI技术

- - 开源软件 - ITeye博客
1.       SSI,通常称为“服务器端包含”技术. 使用了SSI技术的文件默认的后缀名为.shtml,SSI技术通过在html文件中加入SSI指令让web服务器在输出标准HTML代码之前先解释SSI指令,并把解释完后的输出结果和HTML代码一起返回给客户端. 2.       SSI技术的优点:SSI技术是通用技术,它不受限于运行环境,在java、dotnet、CGI、ASP、PHP下都可以使用SSI技术;解释SSI的效率比解释JSP的效率快很多,因为JSP规范提供了太多的功能,这些功能都需要servlet引擎一一进行解释,所以效率比较低.

技术选型

- - 企业架构 - ITeye博客
MVC Framwork: SpringMVC3.0 Restful的风格终于回归了MVC框架的简单本质,对比之下Struts2概念太复杂更新又太懒了. Template:JSP2.0且尽量使用JSP EL而不是taglib,万一要写taglib也用纯JSP来编写,一向是SpringSide的推荐,Freemarker们始终有点小众, 而Thymeleaf与美工配合度非常高,可惜也是太少用户了.

技术的异化:读《技术垄断》

- Dynamic - It Talks--上海魏武挥的博客
事实上,我认为国内对马克思或神圣化或妖魔化,都是要不得的. 我们应该还马克思一个伟大的社会学(当然还有哲学、经济学之类)学者的本来面目,而不是把他的话当成教义. 异化就是一个相当精到的学术词语,它所描述的是人们创造发明某物本来为了让人们自己更好地工作生活,结果该物却成了人的主宰. 在很多领域,都有异化的影子,比如宗教,比如官僚体系,当然,也包括技术.

HBase技术介绍

- 三十不归 - 搜索技术博客-淘宝
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. 上图描述了Hadoop EcoSystem中的各层系统,其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制.

Web技术整理

- Gabriel - 博客园-首页原创精华区
  Web技术或许是将来最为热门的技术之一. 这里略作一些总结,以及对各种Web技术作一些概要性介绍. (以下内容建立在我的粗略理解之上,欢迎指正).   推荐个学习Web技术比较好的网站,介绍的比较全面.   页面的展示使用超文本标记语言(HTML)来表示. 这是一种标签语言,本身不具有执行能力,只是结构化页面内容.

Hadoop相关技术

- - CSDN博客云计算推荐文章
Apache的Hadoop是什么. Apache的Hadoop项目™®开发出可靠的,可扩展的,分布式计算的开源软件. Apache的Hadoop的软件库是一个框架,允许大型数据集通过计算机集群使用简单的编程模型,进行分布式处理. 它的设计规模从单一服务器到数千台计算机,每个提供本地计算和存储. 软件库是用来检测和处理应用层失败的,而不是依靠硬件提供高的有效度,因此在计算机集群上提供高度可用性服务,其中每个都有可能会有失败.

zookeeper技术浅析

- - CSDN博客云计算推荐文章
 Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多. 今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用.

MySQL分区技术

- - 数据库 - ITeye博客
mysql分区技术是mysql5.1以后出现的新技术,能替代分库分表技术,它的优势在于只在物理层面来降低数据库压力. 常用的MySQL分区类型:. 1.RANGE分区:基于属于一个给定的连续区间的列值,把多行分配给分区(基于列). 2.LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合的某个值来进行选择(基于列值是固定值的).