跳转到主要内容

谷歌的软件工程:项目管理

阅读需 1 分钟Tian PanTian Pan

20% 时间

工程师被允许花费他们 20% 的工作时间给任何一个他们自己想要贡献的项目,不用寻求他们经理或者其他人的同意。这非常有价值,因为:

  1. 只要有好的想法,甭管一开始听起来有多烂,都有充足的时间去实现它到一个可以 demo 的状态。
  2. 给管理者看到他们原本看不到的活动,否则工程师会搞“skunkwork” 偷偷干活。
  3. 允许工程师干一些有趣的东西,防止他们 burn out,激励他们让他们更开心。有干劲的工程师和 burnt-out 的工程师在产出的差距是远超 20% 的。
  4. 鼓励创新,如果周围其他人都做 20% 项目,你也会受到感染去做。

OKRs

个人和团队都必须公开记录他们的目标和对目标的衡量。

  • Objectives 目标
    • 设置季度和年度的目标
    • 个人和小组的目标要和大组的目标看齐 (align )
  • Key Results 关键结果: 通过可测量的关键结果,可以算出达到目标的进度,范围是从 0 到 1。
  • OKR 尽量往高里设,最后一般达到 0.65 是一个不错的标准,如果你的执行结果常常低于它说明目标设置得太高,高于它说明目标设置得太低。
  • 好处
    • 大家互相知道在干什么,能够互相激励
    • 让执行有了目标,让目标更容易被执行
  • ORKs 与绩效考核不是直接相关的

项目继续做还是终止?

尽管对于重大的新发布的审查是流程化的,但是某个项目该不该做这种问题却没有定论,有些是自下而上的决定,有些是自上而下的决定。

重组 (re-org)

组的分拆以及合并是家常便饭,似乎这样做能够优化效率。

我的评价

20% 时间的结果是好的,比如孵化了 Gmail,AdSense 等等举足轻重的项目。在一个跑马圈地的年代,鼓励优秀的工程师花一些时间做一些新东西是非常合算的。在公司还小需要用非常好的福利措施来吸引人才的时候,宣扬 20% 时间也是一种特立独行的手段。我更倾向于 20% 时间是一种管理风格,而不是成功的必然原因。

ORKs 与绩效考核不直接相关,这种区分非常重要 —— 换句话说,就是愿景与执行分离,目标管理与绩效管理分离。举个例子,你开车从 A 点到 B 点,“你有没有到终点?”,对比,“你开的这辆车是不是好车?”,其实是两个不同的问题。同样的道理,产品最后卖的不好,与工程师有没有做出好的产品,是两件不同的事情。

对于普通的工程师来讲,在大公司里面跟其他组,包括跟你具体工作没关系的其他组,保持好的关系很重要,因为这相当于你在劳动力供求的市场上多出了一些需求方。这样一旦发生重组或者其他不利的事件的时候,你能够有更多的选择。

参考资料

保持联系,关注我获取更多内容

阅读需 6 分钟

谷歌的软件工程:软件开发

业界公认,谷歌是一家工程能力超强的公司。它有哪些好的工程实践?我们可以在里面得到哪些启发?其中又有哪些地方是被人诟病的?这些内容比较细致我们慢慢讲,本篇主要是讲开发。

management
software engineering
阅读需 6 分钟

TradingView vs. 自建:软件工程师该如何选择量化交易工具?

软件工程师在选择量化交易工具时,需权衡TradingView的易用性与Python的灵活性。深入分析两者的优缺点,帮助工程师找到最适合的交易解决方案。

algorithmic trading
TradingView
阅读需 2 分钟

Patrick McKenzie: 为何 Stripe 的工程质量如此之高?

为何 Stripe 的工程质量如此之高?答案:上桌玩牌要有足够的筹码;降低做正确事情的难度;有专门的人、工具、和流程来检查和提高质量;培养鼓励高质量、并且持续地主动地提高质量的文化。

management
engineering
阅读需 3 分钟

领导海豹突击队的五大管理原则

Extreme Ownership 一书的两位作者曾担任海豹突击队特遣队队长。他们结合自己在战场上的观察与经验,总结了领导海豹突击队的五条原则:为失败负责;理解任务的重要性;与盟友合作;明确优先级;提前识别和规避风险。

leadership
management
阅读需 2 分钟

系统管理员的时间管理:基本原则

SA的时间管理守则:避免被打断;将所有的时间管理信息统一放到同一个地方;不要总思考管理时间,养成套路、习惯和口头禅;良好的自控能力,可以在项目期间内保持专注;用同样的工具管理你的生活。

management