《The Effective Engineer》笔记
前言
一本关于效率的书推荐《The Effective Engineer》,作为工程师,读完之后很受启发,有时候 996 或加班实际上不是活多干不完,而是效率低下,什么导致效率低呢?工具、任务优先级、拖延症、MVP(最小可行性产品) 验证是否是最低成本 ?
同时从 ByteTalk 播客里听到推荐这本书:《10. 跟 Linghao 聊聊在 Google 的工作经历、科幻小说和独立游戏》, 标记时点【52:07】https://xyzfm.link/s/P1NMKa
关于作者
Edmond Lau 2001 - 2006 在 MIT(麻省理工学院) Computer Science(CS)论文是研究高可用、分布式数据库。
毕业后去了 Google,做了 “相关搜索”;之后创业做 Ooyala、Quora、Quip。
其中在 Google 的演讲《The Effective Engineer》,总结得非常到位
演讲笔记
Effort ≠ Impact
5 High-Leverage Activities:
- Optimize for learning
- 怎样每天坚持提升?
- Invest in iteration speed
- I've found of people who were successful, almost all of them write a lot of tools. — Bobby Johnson @Facebook
- If you have to do something manually more than twice, then write a tool for the third time. Raffi Krakorian @Twitter
- Validate your ideas aggressively and iteratively
- 举了一个瀑布流需求的例子:
- 假设 更多内容 ⇒ 更易购买(只需要调小字体,做 A),快速验证,而不是完成这个需求后再看
- Experiment-driven product design is a powerful tool.
- 更廉价的 A/B Test
- Minimise operational burden
- Do the simple thing first. —Mike Krieger, Co-Founder of @Instagram
- Building a great engineering culture
QA
- Unit test high leverage?
- 不是达到 100%,主要是
- 大量流量的代码
- 工程师接触多的代码路径
- 风险较大的代码路径
- 组织复杂性
全书分为 3 部分,自顶向下思路比较清晰;下面摘录部分段落,结合日常工作和思考,记录下读后感。
Foreword & Introduction
“working smart” rather than “working hard.” — Bret Taylor, CEO of Quip
有时候看起来是 努力工作,实际上只是 把已知的东西越做越熟悉,重复性劳动对个人成长别没有多大作用;
重复的事超过两次,就得思考能不能写个工具解放双手。
Part 1 Adopt the Right Mindsets
Focus on High-Leverage Activities
提高效率第一步是正确的认知,核心是专注于 High-Leverage(高杠杆)的事。
什么是高杠杆?用一个公式表示是:
高效率意味着 投入更少的时间、做更有影响力的事,也就是我们常用的 ROI(投入产出比)。
spending your work day going through the motions of these different activities does not necessarily mean that you’re producing value the entire time.
那么怎么知道平时的 Leverage 呢?这里引用一句经典名言 “If you can’t measure it, you can’t improve it.” ,提高的前提是衡量;列出日常活动花费的时间与产生的 Leverage 图
看起来 bugfix 确实没有 feature 带来的 leverage 高。
Invest in Your Rate of Learning, you can take advantage of additional years of compounding
复利效应,每天坚持花时间去学习,最终带来的价值非常大;也许开始的时候很难,看不到效果;只要兴趣驱动 + 坚持,量变肯定能质变。
Focus on the Important and Non-Urgent
四象限工作法 本质还是让我们分清哪些事是 High-Leverage 的
Part 2 Execute, Execute, Execute
Invest in Time-Saving Tools
重复、手动的事情一定得想办法变成 自动化,有工具用工具,没有自己写一个。这里可以简单列下我平时节省时间的工具(有机会再单独开一篇聊效率工具)
- Alfred(App 一键直达)
- Kap(录屏 gif/mp4)
- Xnip(截图工具)
- Dash(查 API 文档)
- Gitup(小而美的 Git 可视化)
- 1Password(密钥管理)
- TickTick(TODO 管理)
- Kaleidoscope(代码比对)
- Omnidisksweeper(硬盘空间神器)
- ...
Validate Your Ideas Early and Often
尽早地验证想法,以最低成本弄一个 MVP(最小可行性),MVP 并不一定要写代码,现在用现有工具/服务,哪怕一个微信群都可以。
见过有产品经理,快速验证想法时还在纠结页面 1px 像素问题,得不偿失。
Part 3 Build Long-Term Value
Automate Testing
长远看,自动化 CI/CD 能加快产品迭代效率。
举 antd 例子(100% 测试覆盖率),如果没有单测,每周一次的发版、大版本重构根本 cover 不住,影响范围太大了。
Invest in Your Team’s Growth
团队建设这块我理解是这几块:
- 输入←→输出,将技术、想法画个图,通俗易懂地讲出来,沉淀文档。
- CR(Code Review),成员之间相互熟悉项目,同时学习 coding 思路
- 招同路人,这个可以用工具帮助寻找
END