从 Donald Knuth 到 Linus Torvalds,关于天才程序员的迷思似乎无处不在。然而,以下两点事实不容忽视:
-
对大多数人来说,很可能,我们并不是那位天才。
-
更多情况下,现代的大型软件都是由团队所创造的。
程序员们大都不太原因处理这样的情况,毕竟编译器比人好对付的多。然而 Richard Hamming 教授,也在他的著名演讲 You and Your Resarch 强调了社交的重要些。而 Team Geek 一书,更是一本更加全面的程序员社交指南。
本文则简要总结书中要点如下。
1. 原则
书中提到了三点最重要的原则: Humility , Respect and Trust, 简称 HRT .
-
谦逊 Humility
每个人都可能犯错,承认自己的错误并不是什么丢人的事情。这与自信毫不矛盾,反而是自卑的人畏惧去承认
-
尊重 Respect
尊重感就像空气,当它存在时,没有人会想到它。但是,当你把它拿走,人们脑袋里面想的就只有尊重 。(《关键对话》)
-
Trust 信任
相信别的的能力,懂得放权。
2. 方法
-
注重团队文化
团队的文化和氛围不仅仅是主管或者创始人的事情。每一个人都有责任去维护他,每个人也都会从中受益。出色的工程师只会出现在出色的文化环境下。大家需要有共同的目标,认可共同的标准(包括代码之内和之外的), 才能更好的协作起来。
-
管理即服务
领导程序员(或者其他任何 knowledge worker),绝不能像家长管孩子一样。而是要能提供好的条件和足够的信任,让大家发挥出潜能。不要畏惧成为 tech lead.
-
保护团队
“害群之马” 会在不经意间出现,并且极大的破环建立起的氛围。原则问题绝不能容忍。注意力和专注是团队最重要的资源,必须要仔细保护。
-
适应大公司
大公司是一个复杂的有机体。当遇到优秀的经理时,需要再完成当前工作的前提下,不断要求更多的责任。这意味着离开舒适区,风险和收益并存。同时警惕所谓的办公室政治高手,远离他们。
确保团队内外的人知道你在干什么,而且干的很棒。
花费精力在发布产品上面。平衡进取性(新功能)和防御性的工作(例如重构)。
-
如果需要离开
优秀的工程师永远是紧缺的。认识到自己的潜力,寻找合适的机会。永远不要放弃
3. 技巧
- 同步沟通(例如开会)的时候,人越少越好,越短越好。异步沟通的时候(例如邮件),人越多越好。
- 会议日程提前准备,精简人数。尽量安排再休息时间前后。
- 重视文档和代码注释,但不要过度。
- 统一代码风格。
- 每一次提交都需要 Code Review。
- 自动化测试,发布以及各种其他流程。
- 雇佣比你聪明的人,而不是只听话的人。不要降低招人标准
- Hope is not a strategy
- 保持冷静。你的反应会被放大。
- 成为催化剂。
- 成为导师。
- 帮助大家实现愿望。每个人都有不同的需求。
- 知道什么时候做恶人。
- 激励的三大元素:自主,精通以及目标。
- 警惕过度的完美主义。
- 关注长远。
- 不要把用愚蠢可以解释的行为归结为恶意。
- 通常是沟通不足,而不是沟通过度。
- 请求谅解比请求许可容易得多。Do the right thing, Wait to get fired
- 路是人走出来的。
- 避免答应做不到的事情。轻诺必寡信。
- 乐于帮助别人。
- 晋升到安全的位置。
- 向高层人士求助,如果可以他们会愿意帮助的。
总结
书中提到了许多的方法和技巧,有些也许适合你的环境,有些也许并不。最重要的,还是 HRT 三条原则,以及愿意走出技术的舒适区,做出更大成就的心态。