什么是好的技术领导 [ 转载]
早前就有人在Hacker News上问过这个问题,不到一天时间就获得了160多条回复。 关于技术领导者应该具备的品质和管理技巧,网友们提出了各自的看法和建议,InfoQ中国曾归纳发表过,大致内容如下。
如果不能从帮助团队获得满足感,那么就不要成为一名领导者:技术领导者的工作不再是让自己成为最好的编码人员,而是要尽可能地让其他人成为最好的编码人员。工作分配也要以一种有利于团队和个人成长的方式进行。要负责为团队成员清楚障碍,让他们的工作进入正轨。
将自己视为其他开发人员的导师:即使已经知道了答案,有时候也需要让团队自行决策。许多时候,正确的答案并不唯一。技术领导者的工作不是选择正确的答案,而是确保团队不选择错误的答案。允许团队作为一个整体自行决策有利于保持高涨的士气,让每名成员都更有自豪感和主人翁精神。
了解技术、需求和团队,能在多个角色中自如切换:作为技术领导者要了解团队所开发的应用,了解该应用所涉及的领域,了解功能背后的技术,并编写详细的技术文档。有时候,技术领导者首席工程师还是架构师,当解释系统或代码的行为时,他需要能够快速改变高度;当同开发人员调试问题时,他要能够深入技术细节;而当向CEO解释计划或成本估算时,他要能够在一个更高的层次上谈论系统。
要谦逊,相信团队:要承认,关于某个主题或组件,有人懂得比你多。成为一名优秀的领导者,并不需要事事都懂得比别人多。如果团队成员都将你视为权威,那么他们会害怕自己做决策。在这种情况下,你就成了障碍。
减少具体的编码工作,但仍然要编码:即使不做很多具体的编码工作,也仍然需要监控和接受所有的pull request,并利用这个过程,帮助初级开发者修改代码。这是必须的,如果不编码,那么开发人员会质疑你的判断,不容易接受你的建议。但作为技术领导者,你的首要任务是确保团队成员的生产力,而不是自己的生产力。你要为整个团队的输出负责,如果那意味着零编码,那么就不要编码了。
技术领导的普遍痛点
前开心网创始人兼CEO程炳皓在准备GTLC全球技术领导力峰会演讲内容之前,对身边的CTO、技术总监等技术管理者的朋友做了一个简单的调研,共设了3个问题:你技术领导历程中3个最头疼的问题是什么;你的解决方法是什么;你工作历程中3个最重要的收获是什么。大家的回答惊人相似。
时间紧张,丑陋实现:本能地想把系统设计得更灵活、更通用、易扩展、易维护,但需求需要快速上线,时间、人力实在不允许,导致很多丑陋的实现,怎么看怎么不爽,经常有冲动想重构一把。
需求变化太快:需求变化太快,技术文档、使用文档等完全跟不上,系统存在于大家的大脑里,经常信息同步不及时,导致沟通效率低下,常常需要翻看代码才知道是怎么回事。
”霸道总裁“批评质疑:自以为做得不错了,但经常达不到强势CEO或其它直属leader的预期,挨批、被质疑,自信心狂受打击。
工作强度太大:高压状态下干活,强度也大,感觉大脑都快转不动了,但还要确保自己以及团队高效产出、并且少出错。
招不到人,现有的又闹辞职:合适又靠谱的研发、测试同学很难招到,或者干得好好的人突然提出离职,手忙脚乱。
各部门都有众多紧急需求,又都觉得很容易:各业务线兄弟团队都有需求提过来,都说很紧急,都觉得需求不大,开发稍微花点时间就能搞定。