A collection of inspiring resources related to engineering management and tech leadership
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 6 年前 | ||
| 9 年前 | ||
| 5 年前 | ||
| 8 个月前 | ||
| 8 年前 | ||
| 1 个月前 | ||
| 5 年前 |
目录
- 关于本清单
- 书籍
- 什么是工程管理?
- 工程管理主题
- 一对一沟通
- 反模式
- 偏见
- 头脑风暴
- 职业发展与晋升通道
- 变革管理
- 代码审查
- 沟通
- 冲突解决
- 首席技术官(CTO)、工程副总裁(VPoE)及其他级别
- 数据组织
- 文化
- 决策
- 授权
- 交付
- 开发者生产力与开发者体验(DevEx)
- 多元化与包容性
- 员工手册
- 员工保留
- 问题升级
- 高管
- 云成本管理(FinOps)
- 新任经理
- 反馈
- 亲力亲为
- 招聘
- 事件预防与响应(值班、故障)
- 学习、回顾、事后分析
- 管理风格
- 会议
- 指导
- 思维模式与态度
- 激励
- 新团队成员或自我入职
- 组织结构
- 绩效管理
- 个人生产力
- 规划(路线图、目标设定、KPI、OKR 等)
- 演示、设计与公众演讲
- 优先级排序
- 问题解决
- 工程流程
- 产品管理
- 生产与生产力
- 项目管理
- 质量
- 发布管理
- 远程团队
- 征求意见稿(RFC)
- 组织扩展
- 二级经理(2LM)
- 安全
- 软技能、情商(EQ)
- 故事讲述
- 战略
- 调查
- 人才管理
- 团队愿景
- 技术战略
- 团队文化
- 团队动态
- 培训
- 信任
- 职业道德与工作生活平衡
- 研讨会引导
- 写作
- 其他资源
- 保持更新:博客与新闻通讯
- 我的其他清单
关于本清单
项目:
- 🧰 :资源列表
- 📖 :书籍
- 🎞 :视频/电影片段/电影
- 🎤 :幻灯片/演示文稿
- 🎧 :播客
- ⭐️ :必读
书籍
与其他任何领域相比,管理学领域充斥着大量内容空洞的书籍,这些书的核心观点用一篇100字的文章就能概括。话虽如此,仍有一些优秀的书籍,如下所列。
《赋能:打造应对不确定性的敏捷团队》
📖 《赋能:打造应对不确定性的敏捷团队》 无疑是我最推荐的管理书籍。
这本书让我真正理解了“赋能基层决策”的含义。尤其令我印象深刻的是,作者解释了传统指挥链要求信息上传、决策下达,这种方式效率极低。
书中为管理者提供了帮助团队成员自主决策的实用工具,特别是“深思熟虑的行动”这一概念。还有一个演示文稿 介绍了作者提出的主要理念。
市面上有很多华而不实的管理书籍,但这本书绝非此类。它的叙述引人入胜,解释也简洁明了、切中要害。
你可以在这里找到一个简短的视频摘要。
“没有能力的控制只会导致混乱。”
— 大卫·马凯特,《赋能:打造应对不确定性的敏捷团队》
其他通用类书籍
- 📖 《组织健康的优势:为什么组织健康比商业中的其他一切都重要(增强版)》,帕特里克·兰西奥尼 著。
- 人们接受一个信息的唯一方式,是在一段时间内、在各种不同的情境下,最好是从不同的人那里听到它。这就是为什么伟大的领导者将自己视为“首席提醒官”。
- 级联沟通的最佳方式是面对面的实时交流。员工看到领导者并听到其语气至关重要,能够提出一两个问题也同样重要。
- 然而,大多数组织之所以不健康,正是因为它们没有做好那些基本的事情,而这些事情更多需要的是纪律、坚持和执行力,而非复杂的技巧或高智商。
- 📖 《人月神话之外:软件项目经理的幽默故事与实战经验》:“阅读迈克尔·洛普在苹果、Pinterest、Palantir、网景、赛门铁克、Slack 和博兰等公司担任经理期间,从各种时而离奇的经历中提炼出的既有趣又富含深刻教训的故事。其中许多故事最初以原始形式发表在洛普常年受欢迎的博客‘Rands in Repose’上。”
- 📖 奥伦·艾伦博根,《领导“雪花”:工程经理手册》:包含一些非常棒的内容和具体想法,帮助你从执行者模式转变为管理者模式,对你的管理决策进行“代码审查”,以及如何在不损失质量或可见性的情况下委派任务。
- 📖 亚当·格兰特,《给予与索取:为什么帮助他人能驱动我们的成功》:“这本书读起来令人愉悦,它打破了贪婪是成功之路的神话。”——罗伯特·萨顿。
- 📖 肯·布兰查德,《像耶稣一样领导:来自最伟大领导榜样的教训》。
- 📖 安德鲁·S·格鲁夫,《高产出管理》。英特尔CEO安迪·格鲁夫的里程碑式著作。介绍了许多管理最佳实践,如一对一沟通(1-1)、目标与关键成果法(OKR)。
- 管理杠杆衡量的是管理者为提高团队产出所采取行动的影响。
- 你需要像消防部门那样规划。它无法预测下一场火灾会在哪里发生,因此必须打造一支充满活力且高效的团队,能够应对意外情况和任何常规事件。
- 你一天中的每一小时都应该用于增加你所负责人员的产出或产出价值。
- 我们应该始终遵循的一个普遍规则是,在生产过程中,在价值最低的阶段发现并修复任何问题。
- 一个真正有效的指标应该涵盖工作单位的产出,而不仅仅是所涉及的活动。显然,衡量销售人员要看他获得的订单(产出),而不是他打的电话(活动)。
- 管理者的产出 = 其所在组织的产出 + 在其影响下相邻组织的产出。
- 联赛排名是按团队计算的,而不是按个人。商业——这不仅指商业贸易,还包括教育事业、政府事务、医疗事业——是一项团队活动。而且,要取得胜利,始终需要团队合作。
- 你的决策最终取决于你对企业面临的事实和问题的理解程度。这就是为什么信息收集在管理者的生活中如此重要。
- 不做决策就等同于做出否定决策;没有绿灯就是红灯,整个组织的工作可能会因此停滞。
- 没有后续跟进的授权就是放任不管。
- 任何决策都应在最低的胜任级别制定和达成。原因是在这个级别,决策是由最接近实际情况、最了解情况的人做出的。
- 自信主要来自一种直觉上的认识:没有人会因为做出错误的商业决策、采取不适当的行动或被否决而丧命。
- 一个成功的目标管理(MBO)系统只需要回答两个问题:1. 我想去哪里?(答案提供了目标。)2. 我将如何调整进度以确保我正朝着目标前进?(答案给了我们里程碑,或关键成果。)
- 目标管理系统最应该提供的就是聚焦。这只有在我们将目标数量保持在较少水平时才能实现。在实践中,这一点很少做到,而且在这里,和其他地方一样,我们都因为无法说“不”而受害——在这种情况下,是无法对太多目标说“不”。我们必须认识到——并且据此采取行动——如果我们试图关注所有事情,我们就什么也关注不到。几个精心选择的目标会清晰地传达我们对什么说“是”、对什么说“不”——这是目标管理系统要发挥作用所必须具备的。
- 艾尔弗雷德·斯隆总结了他在通用汽车数十年的经验,他说:“良好的管理在于集中化和分散化的调和。”或者,我们可以说,在于一种平衡行为,以获得响应能力和杠杆作用的最佳组合。
- 我想提出格鲁夫定律:所有具有共同商业目标的大型组织最终都会采用混合的组织形式。
- 当一个人没有做好他的工作时,只能有两个原因。这个人要么不能做,要么不愿做;他要么没有能力,要么没有动力。
- 这个变量就是下属的任务相关成熟度(TRM),它是下属的成就导向程度、承担责任的意愿以及他们的教育、培训和经验的综合体现。
- 当下属的任务相关成熟度较低时,最有效的方法是提供非常精确和详细的指令,主管告诉下属需要做什么、何时做以及如何做:换句话说,是一种高度结构化的方法。随着下属任务相关成熟度的提高,最有效的风格会从结构化转向更多的沟通、情感支持和鼓励。
- 教导下属的责任必须由其主管承担,而不是由其组织的内部或外部客户来承担。
- 在任何时候,你都应该强迫自己评估绩效,而不是潜力。
- 管理者通常有两种方法来提高下属的个人绩效水平:一是提高动机,即每个人做好工作的愿望;二是提高个人能力,这正是培训的用武之地。
- 📖 帕特里克·兰西奥尼,《团队的五种机能障碍:一个领导力寓言》。
- 📖 《工作法则:来自谷歌内部的洞见,将改变你的生活和领导方式》,拉斯洛·博克 著。这本书对谷歌的流程进行了相当有趣的描述,有时略显冗长。
- 📖 《管理之路》,卡米尔·富尼耶 著。一本非常实用的书,提供了许多脚踏实地的建议。
- 📖 《团队拓扑学》,ITRevolution出版社出版。探讨了工程部门管理的复杂性,特别是改善团队互动的模式。
- 📖 彼得·德鲁克的 《卓有成效的管理者》,管理学的开创性著作。讨论了管理的挑战,尤其是知识工作者的管理。提出了有效决策和持续改进组织的原则。
- 这本书也可以作为超越工程管理、与其他部门协作的基础。
下面还引用了一些其他更专业的书籍。
其他我尚未阅读的书籍:
书籍阅读清单
- Jason Evanish 的书单(Lighthouse 创始人)内容相当全面。
- 面向工程经理、软件工程师和产品经理的假日书籍推荐,Gergely Orosz 著
- 助你成为更优秀工程经理的最推荐书籍
- 工程领导者的 10 本必读书籍
- 你的 12 个月工程经理 MBA 阅读清单
什么是工程管理?
以下是一些通用资源:
- 我学到的关于管理的反直觉之事
- Lars Dalgaard,关于打造抗风险公司的思考:虽然最初是针对初创公司 CEO 的,但这篇来自 Andreessen Horowitz 博客的文章对于了解如何扩展团队极具启发性。
通用管理资源
- W. Edwards Deming 的 管理的 14 条原则。
- Keith Rabois 谈 COO 的角色、如何招聘以及透明度为何重要,其中包含一些精彩的管理要点。
- 🧰 ksindi/managers-playbook: 高效管理的启发式方法
- 管理的演变,Kate Matsudaira 著,ACM Queue。这是一份针对所有管理层级的极佳建议汇编。
- 管理学原理,对新任经理而言,这是一个涵盖所有管理方面的良好入门介绍。
Tal Bereznitskey 对管理工程师的精彩定义:
招聘有积极性的人。信任他们。对所有事情设定高标准。以身作则。别挡他们的路,让他们成为当天的英雄。就这么简单。
文章
- 软件开发领域正在上演的无声危机
- 二十五年之错,在这篇文章中,沃伦·巴菲特阐述了“机构指令”,即一个机构会如何放大(而非抵制)糟糕管理者的非理性决策。
- 44条工程管理经验教训,来自RethinkDB的联合创始人。内容非常宏观,是一份相当不错的总结。
- 在Imgur学到的21条管理心得
- Rands测试,来自Rands in Repose。相当于管理领域的乔尔测试。
- 你是否进行一对一沟通?
- 你是否召开团队会议?
- 你是否有状态报告?
- 你能否对老板说“不”?
- 你能否向陌生人解释公司的战略?
- 你能否解释公司当前的业务状况?
- 负责人是否会定期站出来向所有人分享他/她的想法?你是否认同这些想法?
- 你知道自己下一步想做什么吗?你的老板知道吗?
- 你有时间进行战略思考吗?
- 你是否在积极消除谣言?
- 优秀管理者有哪些特征?:Hacker News上的精彩讨论
- 优秀的管理者是为团队服务的。
- 你其实不会特别留意到一位优秀的管理者。
- 尽可能全面且高层次地传达背景信息。
- 管理人
- 作为管理者,所有问题都是你的错
- 你管理流程;你领导人员
- 流程是明确化的期望
- 通过透明度建立信任
- 不要混淆自主与放任
- 避免“路过式管理”
- 明确优于含蓄
- 每隔几个月就要对公司进行“重构”
- 制造混乱的人往往感受不到混乱
- 对你的下属管理者要有更高的期望
- 37年前,史蒂夫·乔布斯曾说,最优秀的管理者其实从未想过要成为管理者。科学证明他是对的
- “如果你的老板能胜任你的工作,你在工作中更有可能感到快乐”
- 群体动力学:领导者的工具包(Ed Batista)
- 我作为新经理犯过的一些错误
- 多巴胺零谷期
- 停留在关键路径上
- 管理过度或不足
- 拖延棘手问题
- 无限期推迟“维护”
- 焦虑不安而非主动询问
- 如何成长为一名工程经理,Srivatsan Sridharan
- 为自己创造新的学习机会
- 选择一种管理原型:
- 鼓舞人心的领导者
- 严格的教练
- 业务战略家
- 技术创新者
- 卓越的协调者
- 精明的政治家
- 管理(软件团队)需要了解的数字
- 4 - 会议开始时花在闲聊上的分钟数
- 5 - 当一份文档的评论数达到此时,你应该提议就此问题进行讨论
- 工程领导者的意外反模式,Will Larson
- 意外反模式 #1:回避微观管理
- 意外反模式 #2:抵制衡量有缺陷的指标
- 意外反模式 #3:充当团队的“保护伞”
- 技术团队的领导类型
- 整体方向
- 人员管理
- 项目管理
- 技术领导力
- “技术主管经理”
- 工程经理/技术主管
- 产品经理/技术主管
- 人员经理/研究主管
- 专家通才,martinfowler.com,对“T型工程师”提出了一个有趣的观点。详见我的仓库professional-programming中的总结。
工具
- devtomanager.com: 来自资深专家的第一手建议
工程管理主题
以下是一系列与工程管理相关的启发性文章。这些文章通常简短精炼,却充满了富有启发性的具体见解。它们塑造了我个人的管理实践,希望也能为你带来启发。
我并非完全认同此处列出的所有观点。事实上,你会发现其中一些文章的看法甚至截然相反。但我相信这些引人深思的资源会在你的管理之路上助你一臂之力。
一对一沟通
- On 1-1s
- How to have an honest one-on-one with an employee
- Tool: Hold effective 1:1 meetings
- 21 Reasons You Should Start Having One on Ones with Your Team
- What is an Inquiring Leader?
- 《哈佛商业评论》,How to Ask Better Questions
- Mentor vs Advisor vs Coach
- How To Be Someone People Love To Talk To
- 🧰 Mega list of 1 on 1 meeting questions compiled from a variety to sources
- 130+ One on One Meeting Questions Great Managers Ask
- 建立融洽关系与信任
- 谈论职业发展
- 给予和接收反馈
- 探讨改进团队或公司的方法
- 了解他们的总体幸福感
- 针对远程员工的特别问题
- 带领团队度过困难时期
- 成为团队的教练
- 越级会议问题
- 每次都需要问的一对一会议问题
- Why Your One-on-One’s Should Probably Be Longer
- “30分钟一对一”的反模式
- 更改会议日期
- 5 Questions Every Manager Needs to Ask Their Direct Reports, 《哈佛商业评论》
- 你希望在这家公司如何成长?
- 你在工作中是否感受到使命感?
- 为了让你能出色地完成工作,你需要我提供什么支持?
- 你认为公司目前没有做但应该做的事情是什么?
- 你是否每天都有机会做自己最擅长的事情?
- One on One Meeting Format Ideas
反模式
- 管理的七大致命弊病,Deming博士。相关视频也很精彩。我不一定完全同意其中的所有观点,但Deming仍然是最伟大的管理思想家之一。
偏见
- 📖 《思考,快与慢》 由Daniel Kahneman所著,2012年出版,现已成为经典之作。它带我们深入了解人类的各种偏见以及判断的局限性。确实是一本令人惊叹的读物。
- 你不会相信我接下来要告诉你的事,The Oatmeal(漫画),内容关于逆火效应(“当面对与自身信念相悖的证据时,人们可能会拒绝接受证据,反而更加坚定地相信自己的原有信念”,确认偏误 - 维基百科)。
认知偏见不仅会影响招聘……它们还可能对绩效评估、一对一沟通、团队会议,甚至与同事的闲聊产生影响。
头脑风暴
- 激发全新、更优创意的极致问题,A Smart Bear
- 以下这些问题能让你跳出局限思维
- 如果你被迫将价格提高10倍,你需要做些什么来证明这个价格是合理的?
- 如果我们所有的客户都消失了,我们必须从头开始赢得增长和建立品牌,我们会怎么做?
- 如果你在任何形式下都永远不被允许提供技术支持,哪些方面必须改变?
- 如果我们最大的竞争对手复制了我们的每一个功能,我们如何仍然能够胜出?
- 假设我们被迫在短短两周内发布一个完整的、已完成的(至少是MVP)新功能,这个功能要能让一部分客户感到愉悦和惊喜,我们会怎么做?
- 如果你被迫以一种完全不同的方式向客户收费,会怎样?
- 永远不再有同步会议了,会怎样?
- 如果我们再也不能与客户交谈,我们如何弄清楚该构建什么?
- 如果你的盈利状况如何不再重要,会怎样?
- 哪种外部因素有可能扼杀整个公司?
危险的人是只有一个想法的人,因为他会为此战斗到底,甚至牺牲生命。真正的科学研究方式是,你提出很多想法,其中大多数都会是错误的。
— Francis Crick
职业发展与晋升路径
另请查看 charlax/professional-programming 的职业发展部分。
- Square 工程师与工程经理成长框架
- 设有两条职业轨道
- 成为经理并非晋升
- 分为两大主要部分:范围与影响力,以及行为表现
- 任何级别均无严格的最低工作年限要求
- 晋升是描述性的,而非规定性的
- 晋升决策流程结构化且严谨
- 头衔是有毒的,Rands in Repose。一篇关于头衔的有趣见解。
- 在技术领导力道路上茁壮成长
- 我为自己选择了一条道路,使我能够深入复杂的技术和产品问题领域,并作为一名工程师(而非经理)帮助领导组织的技术和战略方向。
- 重构我们的工程技能矩阵
- 如何在舒适区中虚度职业生涯,一年又一年
- 🎤 为工程师创建职业晋升阶梯
- Medium 工程成长框架
- Carta 的工程级别
- 我们在创建技术职业发展阶梯中学到的经验(Spotify)
- 行为表现与成就成果
- 工程级别与晋升,Foursquare
- 对不同级别(L3、L4 等)的期望描述相当简洁明了
- 论成为一名高级工程师,Kitchen Soap
- Keith Rabois 谈如何识别优秀人才
- “你每天都想对每一位员工做的事情,就是不断扩大他们的职责范围,直到他们无法胜任……而那就是他们应该停留的角色。”
- 如果你看到人们经常走到某个人的办公桌前,这表明那个人能够提供帮助。尽快提拔这些人并赋予他们更多责任。
- 基于影响力的工程师级别体系
- 级别 1 — 限定任务
- 级别 2 — 限定项目
- 级别 3 — 非限定项目
- 级别 4 — 团队效能倍增者
- 级别 5 — 部门效能倍增者
- 级别 6 — 公司效能倍增者
- 没人会因简洁而获得晋升 提出了一些奖励设计简洁性的好主意(如晋升、表彰等)。
精选的职业晋升阶梯/职业发展矩阵示例:
- ⭐️ RentTheRunway 软件开发/领导力阶梯
- Songkick:简洁、清晰且包含示例。
- Gitlab
- Medium,工程成长框架,Medium 公开了他们如何进行职业发展。
- Medium 的技能电子表格:混合了所有角色的评估标准
- 可汗学院
- 技能:最大化影响力、保持开放、同理心与尊重、拥有信念、追求工程成熟度。
- 级别:初级熟练、熟练、更熟练、超级熟练、极其熟练
- CircleCI:详细且全面
- Dropbox
- progression-framework/frameworks/engineering
- jorgef/engineeringladders
- Fog Creek 职业阶梯 – Joel on Software
- Square (能力要求)
- career-ladders
列表汇总:
相关概念:
- 能力发展的四个阶段,维基百科
变革管理
- 🎧 与帕特里克·兰西奥尼共坐桌前:50. 让质疑者去质疑
- 根回し(维基百科):“一种非正式的流程,悄悄地为某些提议的变革奠定基础”。
- 为何工程团队难以改变现状
- 与流程相关的习得性无助
- 与复杂性相关的习得性无助
- 积少成多的放弃
- 宣布流程破产
代码审查
参见我的专业编程部分中关于代码审查的内容
沟通
- 艰难的消息:我们已裁员10人。我们如何走到这一步、财务细节以及我们将如何前进:乔尔·加斯科因(Buffer的首席执行官兼创始人)撰写的一篇出色文章,向团队和全世界分享了一些相当艰难的消息。极高的透明度、出色的传达以及强烈的责任感,堪称典范。
- 如何进行产品推介,AVC。
- 肯·诺顿的“拒绝的纪律”。#态度 #习惯。
- 非暴力沟通(维基百科)
- 我发现反复有用的思维模型
- 传达坏消息
- 高效首席执行官的运营与内部沟通策略
- 驱动人们的是叙事(而非事实)
- 先阐明“为什么”,再说明“是什么”
- 对齐并非单向的
- 重复,重复,再重复
- 考虑撰写个人每周通讯
- 提升思维的工具
- 决策矩阵
- 推论之梯
- 第一性原理
- 如何说“不”。用于拒绝书面采访、参加活动、免费工作等场景的模板……
- 🎧 与帕特里克·兰西奥尼共坐桌前:59. 别让我重复自己的话
- 如何提出异议,保罗·格雷厄姆
- 异议层级0:辱骂
- DH1:人身攻击
- DH2:针对语气回应
- DH3:反驳
- DH4:抗辩
- DH5:驳斥
- DH6:驳斥核心观点
- 分析自己的异议层级有助于避免无意的 intellectual dishonesty。
- 当你有真正有价值的观点时,刻薄的态度会碍事
- 苹果派立场,施雷亚斯·多希
- 一种能立即提升发言者地位,同时又让其他人难以反驳的陈述。因此,每个人都避免个人风险,只是点头称“是”,尽管其在特定情况下的实际价值可能相对较低、为零,甚至是负面的。
- 例如:“我们需要为X定义成功指标”
- 例如:“我们需要更好的上市策略来提高产品采用率”
- 当信任度低时如何沟通(避免让自己陷入更深的困境)
- 承认这很困难
- 试探性地表达
- 尝试听起来友好一些,深呼吸
- “我脑海中的想法”
- 设计积极的互动(健康关系的黄金比例是每一次负面互动至少对应五次正面互动)
- 传达积极的意图
- 给人们改进的机会
- 重视努力过程
- 为什么你应该发送每周总结邮件
冲突解决
首席技术官(CTO)、工程副总裁(VPoE)及其他级别
另请参见组织结构部分
- Martin Casado,Andreessen Horowitz 博客上的Hire a VP of Engineering
- 工程副总裁最重要的职责是组建工程团队并确立初创公司的工程文化。
- 因此,称职的工程管理应当能够推动团队采用更务实、渐进式的设计,以便快速获取有用的外部反馈——同时不损害系统的长期通用性。副总裁在此的角色并非产出架构,而是确保渐进式发布成为设计过程中的一项实际要求。
- 优秀的工程管理往往会给予团队足够的自主权和发挥空间,让他们在推动产品发展的过程中感到愉悦和满足。
- AVC,VP Engineering Vs CTO
- Mark Suster,Want to Know the Difference Between a CTO and a VP Engineering?
- 🎤 CTO vs VP Engineering Balancing Innovation,Bryan Cantrill,Jason Hoffman
- Will Larson,Your first 90 days as CTO or VP Engineering.
- 持久的改进依赖于创建能够带来变革的系统,而非执行那些只能产生短暂改善表象的战术性行动。
- 判断是否确实存在问题且需要立即关注。
- 旁听客户会议、合作伙伴会议或用户测试。
- 找到你的业务分析数据以及如何查询这些数据。
- 旁听现有的面试、入职培训和销售成交电话。
- 启动工程品牌建设工作。
- 构建一个小的变更并部署它。
- The 7 roles of a CTO
- 高管
- 代表
- 人员管理者(有时)
- 一线开发者(有时)
- 负责安全与 IT
- 销售人员
- 承担一切必要工作
- Advice for new directors
- 你的许多工作是培养经理
- 需要学习的最重要技能:感知你的组织
- 你需要新的视角
- 你应该专注于系统
- 警惕权力带来的扭曲
- 你的价值取决于你为组织带来的改变。
- Your CTO Should Actually Be Technical
- 卓越的技术能力是 CTO/工程副总裁成为真正质量评判者的唯一途径。
- 这使他们能够做出极具洞察力的权衡决策。
- 5 Things Founders, Investors and Recruiters Should Know about the CTO role
- “CTO 的主要工作是确保公司的技术战略服务于其业务战略”——Eric Ries。
- 作为 CTO,你不能局限于现有框架内工作,因为你的任务是审视这个框架并改进它。
- CTO 可能会编写代码,但仅限于概念验证(POCs)和原型。
- What It Really Means to be a Manager, Director, or VP
- 经理的职责是在获得一定支持的情况下推动结果达成
- 总监的职责是在很少或没有监督的情况下推动结果达成(“设定目标后即可放手”)
- 副总裁的职责是制定计划。(不能因为“CEO 批准了计划”就有“免罪符”)
数据组织
- 在成长期创业公司组建数据团队:一个简短故事
- 在 Wish 构建分析团队(一个四部分系列文章)
- 重建数据管道
- 构建数据仓库
- 部署商业智能工具
- 数据工程团队应构建一个允许分析师自主创建其数据管道的系统。
- 优秀的面试官需要准备灵活的问题,以应对候选人给出的各种信号。
- 工程师不应编写 ETL:构建高效数据科学部门指南
- 你可能并没有大数据
- 没有人喜欢编写和维护数据管道或 ETL。这是行业中最终的“烫手山芋”。
- 赋予数据科学家端到端的 ETL 所有权
- 工程师设计新的“乐高积木”,数据科学家则以创造性的方式将其组合起来,从而开展新的数据科学工作。
- 平台工程师绝对有必要走在数据科学团队的前面
- 工程师应将自己视为“钢铁侠的裁缝”,打造能够防止数据科学家陷入陷阱(从而产生不可扩展或不可靠解决方案)的“盔甲”。
- 我们[应该接受]为了速度和自主性而牺牲一定的技术效率
文化
- 迷宫在老鼠心中 阐述了 Google 的文化如何阻碍其成果和执行力。
- “这是一种温和的和平时期文化,没有什么值得为之奋斗。”
- Google 员工几乎没什么产出,因为他们被困在流程的迷宫中。
- 这种文化过于注重共识(“相互尊重”)和规避风险,从而牺牲了英勇精神或创造价值的想法/赌注。
- 每个员工的使命不在于服务客户,而在于服务副总裁或某种技术信念/流程。
- 大多数管理者都是和平时期管理者,缺乏紧迫感。
- 对于内部技术栈,普遍缺乏谦逊态度。这种“例外论”的错觉导致员工认为他们所做的一切都是完美的。
- “战略很少被清晰地阐述(那样做会有职业风险)”
决策
- Square 如何用这套系统化解棘手决策
- 如何通过剥离事实简化复杂决策,Jason Cohen 著。
- 思维模型:做出明智决策的最佳方法(含 113 个模型解析)
- 如何做出重大决策,《纽约时报》(the NYT)。
- 扁平化组织中的决策原则
- 试图达成完全共识而拖延决策,会让我们面临更大风险。
- 如果已有足够好的解决方案 X,不要问大家对它的看法。而是询问每个人是否能接受它,如果不能,原因是什么。
- 共识是路径,而非目标。
- Principles.dev - 软件工程原则
- 指导原则:以认同取代共识
- 提升思考能力的工具:情境 - 行为 - 影响分析法、冲突解决图、石川图(因果图)、艾森豪威尔矩阵、二阶思维、决策矩阵等。
- 平衡工程文化:凡事辩论 vs. 直接告知需求
- 摆脱“凡事辩论”的困境
- 帮助团队成员在“灰色地带”高效运作
- 引入“FG 量表”以简化辩论流程
- 以结果为导向进行激励
- 摆脱“直接构建”的困境
- 激励注重结果与反馈
- 提供讨论的背景信息和场所
- 明确(产品与工程)预期并形成规范
- 摆脱“凡事辩论”的困境
- 提问、复述难点、倾听,Rands in Repose:这是一个帮助团队自主决策的优秀框架。“我的工作是教会你不再需要我。”
- 以充分论证为驱动,而非数据驱动
- 二阶思维
你应当避免使用的论证方式——即逻辑谬误 “因为一直都是这么做的。” “因为我们以前试过,没用。” “因为 X 公司在用这个。” “因为 {重要人物} 这么说。”
相反,应基于权衡、约束和机遇进行推理。
—— Gergely Orosz
授权委托
- 通过放手实现领导的反直觉艺术
- 反对微观管理:“将种子播入土壤后,你不会每周都把它挖出来查看长势如何。”——3M 研发主管 William Coyne。
- 你的模糊指令,是对他人时间的巨大浪费
授权委托的 70/10/80 原则:“找到能以你 70% 成功率完成工作的人。再教他们额外 10% 的技能,然后接受 80% 的结果就好。”
交付
- 工程交付指标入门
- 工程生产力是可以衡量的——只是并非你想象的那样。观点颇具启发性。
- 不进行衡量,会不公平地奖励那些有魅力的人,而高效但不善言辞的工程师则会陷入沮丧。
- 在团队层面衡量阻碍因素
开发人员生产力与开发体验(DevEx)
另请参见本页面中的“个人生产力”部分。
- DevEx:真正驱动生产力的因素,ACM Queue。定义了开发人员生产力的组成部分以及相关指标。
- 心流状态
- 反馈循环
- 认知负荷
- 如何为 DevEx 计划获取支持:来自 GitHub、Notion 等公司的策略
- 将项目归类为能引起领导层共鸣的主题
- 着眼长远:避免单一的议程
- 首先找出领导层面临的“棘手问题”
- 量化项目的业务价值
- 通过人员衡量开发人员生产力,Martin Fowler
- 2024 DORA 报告
多元化与包容性
- 📖 《突破偏见:女性职场成功沟通技巧》
- 大多数男性认为自己对女性没有偏见,且所在的组织对男女一视同仁。如果高管男性阅读这本书,他们会意识到这两种看法都不正确。
- 📖 《思考,快与慢》,维基百科
- 猜猜谁在工作中格格不入
- 维基百科上的认知偏差列表
- 🎞 让无意识变得有意识(谷歌视频)
招聘:
- 为何“文化契合度”招聘有损你的文化
- 泽维尔·尼尔解读42:没有老师、没有教材、免学费的编程大学:对计算机科学文凭的发人深省的见解。
- 一个测试你解决问题能力的快速谜题……同时也是了解确认偏误的好方法(这不仅适用于招聘,也适用于测试)。
- 🎞 Klarna的女性招聘
员工手册
- Clef的员工手册已在Github上开源。
- Gitlab的手册
- Valve的手册
- Inaka的手册
- Basecamp的手册
- Mattermost的手册
- Strapi的手册
员工留存
- 理论构建及员工流失对软件公司的致命性
- “当掌握程序理论的程序员团队解散时,程序便宣告死亡。”——Peter Naur,《编程即理论构建》,1985年。
- 软件是开发团队见解的具体体现。
- 大多数代码文档在你心中构建起理论后才会变得有用。
- 程序员构建某一软件准确“理论”的最可靠方法,是亲身参与其最初的编写过程(即“第一代程序员”)。
- 第二代开发人员过多,第一代开发人员会不堪重负,工作陷入停滞。
- 第二代开发人员过少,则缺乏团队更新——每一位离开团队的开发人员都可能带来潜在的灾难。
- 团队稳定性对软件开发至关重要。
问题升级
- 学习如何升级处理问题
- 决策的思维框架:作为管理者如何处理问题升级。
- 监督与信任的局限性
高管沟通
云成本管理(FinOps)
新任经理
- 如何确保新任经理取得成功
- 软件经理的六个工作方法
- 一对一沟通
- 团队调查
- 安全的环境
- 信息畅通的部门
- 有韧性的团队
- 自我提升
- 技术负责人面临的问题
- 从训练有素的工程师到新晋经理(或:避免毁掉公司的艺术)
- 经理常见问题解答
- 这份90天计划助你从工程师蜕变为卓越经理
- 新任经理的死亡螺旋,Rands in Repose。
- 首次担任经理六个月的经验总结
- 新任工程经理如何走向失败
- 选择管理赛道
- 你将不再编写代码。
- 管理会迫使你更关注所有事情。
- 管理会不可避免地形成权力层级。
- 你需要具备足够的技术能力以进行干预。
- 公司的最终成败取决于其协调一致的执行、文化和领导力。
- 最优秀的领导者是出色的个人贡献者,而非职业经理人,Hacker News上的一篇富有洞察力的讨论帖。
- 17个不应该当经理的理由
反馈
另请参阅“绩效”部分。
- 📖 《极度坦诚:成为好老板的惊人秘诀》
- 以下是作者提供的精彩摘要(含视频):什么是极度坦诚?含义与示例
- 📖 Amazon.com:《关键对话:如何高效沟通》(作者:Kerry Patterson)
- 因此,要想获得我们真正想要的结果,第一步就是要纠正那种认为别人是我们所有麻烦根源的想法。正是我们那种“要是能把那些笨蛋搞定,一切就都好了”的固执信念,让我们无法采取可能促成对话与进展的行动。这也难怪,那些最擅长对话的人往往会颠覆这种逻辑。他们认为,改善“我们”的最佳途径是从“我”开始。
- 尊重就像空气。只要它存在,没人会去想它。但一旦你把它拿走,它就成了人们唯一能想到的东西。
- “一支钝铅笔胜过六个聪明脑袋。”不要把你的辛勤工作全凭记忆。如果你已经费了力气完成了一次关键对话,就不要因为相信自己的记忆而浪费掉所有你创造的意义。把结论、决定和任务分配的细节写下来。
- 《给出批评性反馈入门》
- 反馈是双向的:工具:试试 Google 的经理反馈调查
- 负面反馈的反模式
- 开放式反馈圈(OFC),Padmini Pyapali 提出的绝妙想法。
- 我们每月聚会一次,围坐在桌旁,当着其他队友的面互相分享反馈。这种聚会将反馈交流从我们所畏惧的半年一次的活动,变成了我们所期待的每月例行仪式。
- 脆弱孕育信任
- Simon Sinek:目标应优先于指标
- 目标固然重要。但达成目标的方式也同样重要。一个两个月后才达成目标的团队,应该比一个以牺牲士气和质量为代价达成目标的团队得到更多奖励。
- 海豹突击队衡量绩效和信任。他们宁愿团队里有一个绩效中等但高度信任的人,也不愿有一个绩效高但信任度低的人。
- Simon 的团队进行团队同行评审。一个人分享自己的三大弱点,团队成员可以评论,但只能说感谢,然后他们再分享自己的优点。
- 我讨厌的经理和他教给我的教训
实践操作
- Should managers still code?
- 如果你说的是成为功能的主要实现者,那么可能不需要。但如果你指的是成为团队代码产出过程中不可或缺的一部分,那么答案是肯定的,我强烈推荐。
- Being in the details
- Why I Still Write Code as an Engineering Manager
招聘
概述
- 📖 Hiring The Best Knowledge Workers, Techies & Nerds: The Secrets & Science Of Hiring Technical People,作者 Johanna Rothman。一本注重解决方案的书籍。
- 培训你的面试团队采用有限共识法进行招聘。当团队采用有限共识时,并非每个人都必须同意最终决定,但每个人都应该对特定候选人的适合度感到足够满意,不会阻碍聘用该候选人的决定。
- “如果拥有否决权的人是我不想留在团队中的人,该怎么办?”答案很简单:在面试过程中,只让你尊重和重视其工作的员工参与。如果某个员工在其技术岗位上表现不佳,就不要让该员工加入面试团队。
- 确保团队成员以面试外部候选人的同样方式面试内部候选人。
- 明确招聘更多人员的原因。通过定义问题来制定招聘策略。
- 有时,招聘经理不聘用某个候选人的主要原因是直觉上觉得此人与团队文化不太契合。但“直觉”并不是不聘用某人的充分理由,因此要训练自己清晰地表达文化契合度方面的差异。
- 在招聘技术岗位人员时,我个人认为证书并没有太大意义。由于证书所测试的知识是功能性技能的书本知识,因此要确保了解持证人必须做什么来维持其证书,以及该证书对你们工作环境的价值。
- 内部招聘人员往往过于看重工具和技术专长或高级学术学位,而忽视了功能技能或产品领域经验。
- 如果你需要做笔记,请用纸笔,切勿使用电脑。原因是使用电脑时,你必须坐在屏幕后面,这会在你和候选人之间造成一道屏障。
- 承诺无条件晋升不仅有风险,而且是不明智的。公司内部情况可能发生变化;员工的表现可能未达预期;经济形势也可能恶化。
- eShares 的一份优秀 offer letter 示例。
- We Hire the Best, Just Like Everyone Else,作者 Jeff Atwood。
- ⭐️ How to Hire:关于招聘的最佳文章之一。
- 为优点而雇,而非为无缺点而雇
- 为发展潜力而雇,而非仅为经验而雇
- 为实干者而雇,而非空谈者而雇
- 为学习者而雇,而非专家而雇
- 为多样性而雇,而非相似性而雇
- 坚决不雇自负之人
- ⭐️ The hiring post:Thomas Ptacek 撰写的另一篇非常出色的招聘文章。
- This is why you never end up hiring good developers
- 许多面试技巧测试的技能充其量与实际工作无关;
- 你是想要一个现在就能把工作做好的人;
- 还是一个足够聪明且有动力、能快速学会工作的人;
- 你想要一个不断提升自身能力的人;
- 面试应该是协作式的对话,而非对抗性的审讯;
- 你也想要一个你乐于与之共事的人;
- 重要的是要区分“乐于共事”和“乐于一起玩”;
- 不要雇用混蛋,无论他们有多优秀;
- 如果你的团队不够多元化,那么你的团队就没有发挥出应有的潜力;
- 要接受招聘需要很长时间,而且确实非常困难。
- Engineering Management - Hiring 解释了为什么招聘应是你的首要任务。
- When we only hire the best means we only hire the trendiest
- How to Hire,作者 Patty McCord(曾在 Netflix 建立人力资源职能)。
- Trouble hiring senior engineers? It's probably you。
- 招聘高级工程师时,你不是在“买”,而是在“卖”。
- I've been an engineer and a recruiter. Hiring is broken.
- 🎧 How to Get the Ideal Team Player
- 6 qualities that make a great engineer
- 有抱负且意志坚定
- 习惯性地化繁为简
- 能快速调试任何问题
- 帮助他人变得优秀
- 清楚何为价值所在
- 富有创造力且态度积极
- How to hire low experience, high potential people
- Dumb and gets things done
- Joel Spolsky 说,理想的程序员是既聪明又能把事情搞定的人。但那些“不算聪明但能把事情搞定”的人呢?
- 领导者需要推动事情发生。教师需要教学。程序员需要编写代码。这些基本技能是必要的,但还不够。
- The Quarterback Paradox
- “Tom Brady 在第六轮被选中,身体素质并不突出,但进入了一个稳定的组织,这让他能够逐步学习和成长。”
招聘:面试
- Vanquish whiteboard interview puzzles with test-driven development,作者 Jocelyn Goldfein。
- Joel Spolsky,The Phone Screen
- 🎞 The pursuit of happyness' interview scene
- Real talk: the technical interview is broken
- Finding a Tech Leadership Job in Silicon Alley(从候选人体验角度看面试)。
- How I Interview
- What if companies interviewed translators the way they interview coders? - 一个很好的反例,说明面试可能与实际工作脱节。
- 🎞 Monthy Python: a terrible candidate experience
- Your interviews shouldn’t be spoilable
- 你应该和候选人分享多少信息?就像一个有道德的人会和他们推荐来工作的朋友分享的一样多。
- 如果一场面试可以被“剧透”,那就意味着答案可以被记住。
- 你那些可以被剧透的面试最终都会被剧透。一些被推荐的候选人会从他们的朋友那里得到答案。
- 如果预先知道答案不会降低面试的质量,那就意味着你不需要那么频繁地更换问题。
- Becoming a good technical interviewer - Dashlane Blog
- 面试对候选人来说应该始终是一次愉快的经历
- 在引导和直接给出答案之间找到微妙的平衡
- 我正在面试一个比我资深得多的人。如果我不理解他们的解决方案怎么办?
- 6 red flags I saw while doing 60+ technical interviews in 30 days
- 面试官只接受一种解决问题的方法
- 施加不当压力要求接受 offer
- 对你的角色缺乏足够清晰的说明
- 面试官持续表现出缺乏兴趣或士气低落
- 面试官没有为面试做准备
- 公司发展方向不明确
- How to hire engineering talent without the BS
- 反模式:记忆、速度
- 最佳实践:提前、真实、结构化、引导式、共情
招聘工程经理的具体事项:
- Cracking the Engineering Manager interview — Part 1
- Hunting for Rock Star Engineering Managers
- VP of Engineering interview
- 产品经理(PM)和工程团队之间合理的互动方式是什么?
- 你如何提高团队的吞吐量?
- 你如何扩展工程团队?
- 工程团队如何支持销售?
- 这家公司有什么吸引你的地方?你认为自己能为团队带来什么?
- 你能做些什么来加速产品交付?
招聘:面试问题
- 45 sample behavioral questions for interview with developer
- Behavioral interviews
- 🧰 MaximAbramchuck/awesome-interview-questions:面试问题列表集合。
- 40 Favorite Interview Questions from Some of the Sharpest Folks We Know,First Round Review
- 你希望在新角色中做出哪些改变?
- 想象一下三年后的自己。你希望那时的自己与现在相比有哪些不同?
- 在你共事过的人中,你最欣赏谁?为什么?
- 你擅长做什么,但再也不想做了?
- 你是如何为这次面试做准备的?
- 你认为在我们这里工作,你个人或职业上能实现哪些在世界其他地方无法实现的目标?
- 你最近一次在重要事情上改变主意是什么时候?
- 你的同事对你有什么误解?
- 你最近痴迷于什么事情?
- 有哪 10 种方法可以加快 Domino's 披萨的配送速度?
- How to create a good problem-solving interview
- 关注要点:方法论、沟通能力、编程技能
- 不要追求复杂性
- 面试你的同事
- 标准化你的面试
- 5 coding interview questions I hate
- 琐事型问题
- 细节型问题
- 模糊不清的问题
- 未明确行为的问题
- Bug squash: An underrated interview question
招聘:职位发布
- Software Engineer Job Descriptions that Attract the Best Developers
- How to communicate why your startup is worth joining
- 很多很棒的想法。
招聘:流程
- Medium’s engineering interview process:Medium 开源了他们的招聘流程。
- Gitlab,Hiring Principles。他们的整个流程也是开源的。
- How Firebase Interviewed Software Engineers
- 我们寻找友好、聪明且有动力的候选人
- 我们寻找通才、务实的问题解决者
- No engineer has ever sued a company because of constructive post-interview feedback. So why don't employers do it?
- 明确告知候选人未被录用。
- 提供建议时,要具体且具有建设性。
- 给出推荐。他们可以读什么书吗?
招聘:简历审查
招聘:人才寻访
- How To Hire Engineers: Step 1, Sourcing
- The Case For Language-Agnostic Hiring
- 优秀的程序员能够适应任何语言
- 招聘思路开阔的开发者,而非局限于特定语言的开发者
- 鼓励开发者之间的知识共享
招聘:带回家作业
- How GitHub does take home technical interviews
- guardian/coding-exercises
- Take-home vs whiteboard coding: The problem is bad interviews
- Live Coding Interviews 描述了现场编码面试无法提供准确信号的一些方面。
招聘:名言
如果你能“严格招聘”,就能“轻松管理”。
Sue Tetzlaff,《员工体验:巅峰绩效的核心指南》
我坚信,我们所做的事情中,没有什么比招聘和培养人才更重要。归根结底,你是在押注于人,而不是策略。
Lawrence Bossidy,通用电气(GE)
我雇佣比我聪明的人,然后我就不挡他们的路。
Lee Iacocca,福特汽车公司
你可以梦想、创造、设计和建造世界上最美好的地方……但这需要人们来实现这个梦想。
Walt Disney
雇佣品格,培训技能。
Peter Schutz,保时捷
在科技行业,关键在于人。找到最优秀的人才,留住他们,培养创新的环境,并帮助找到创新的方法。
Marissa Mayer
我宁愿面试 50 个人却一个不雇,也不愿雇错人。
Jeff Bezos
天赋赢得比赛,但团队合作和智慧赢得冠军。
Michael Jordan,美国前职业篮球运动员
管理问题的最佳解决方案往往是找到合适的人。
Edwin Booz
有人曾经说过,在寻找要雇佣的人时,你要寻找三个品质:正直、智慧和精力。如果你没有第一个,那么另外两个会害了你。你想想,这是真的。如果你雇佣了一个没有[正直]的人,你其实希望他们又笨又懒。
Warren Buffet
你不能只雇佣一双手;整个人总会随之而来。
Peter Drucker
如果你认为雇专业人士来做这项工作很贵,那你就等着雇业余人士吧。
Red Adair
事件预防与响应(值班、故障)
另请参见我的 professional-programming 列表
- 处理事件和故障
- 当天空坠落时,Rands in Repose
- 🎞 事件分析:“学习”与“修复”的区别(幻灯片)
- 为何 LFI 难以推广——驾驭复杂性
- 有趣的评论:“对我来说有趣的是,RCA 和 LFI 在评估投资回报时都面临一个看似无法解决的问题:你可以统计所遭遇的面向客户的故障数量,但你无法统计因为采用了这两种方法而避免的故障数量。我听 Allspaw 把这称为‘缺失的分母’问题或类似的说法。当组织寻求投资 LFI 的可量化理由时,却无法量化 RCA 的益处,这确实令人沮丧——我认为这正是你在这里所描述的原因。”
学习、回顾、事后分析
参见我的 professional-programming 中关于事件响应的部分
- 高效领导者如何超越指责
- 关于无指责文化实际含义的精彩描述:team-member-1 近况如何?(team-member-1 是在 2017 年 2 月 Gitlab 全球故障期间“发出了删除主数据库这一不幸命令”的人员姓名。
- 复盘引导指南:Etsy 的复盘与事件审查指南。
- 詹姆斯·“疯狗”·马蒂斯将军关于“太忙而无法阅读”的邮件必读:“通过阅读,你可以从他人的经验中学习,这通常是一种更好的行事方式,尤其是在我们这个行业,无能的后果对年轻人来说是致命的。”
- 你可以提高智商:5 种方法最大化你的认知潜力:原谅这个标题党链接,内容其实是一篇好文章。
- 创业墓地——历史不应重演
- Figma 的设计评审
- 选择合适的形式:标准评审、头脑风暴、小组讨论、静默评审、书面评审等。
- 使用更小的会议室
- 购买计时器并严格控制时间
- 记住在每周例会之外进行评审
引言:
- “卓越源于对基础的掌握”,文斯·隆巴迪,被认为是 NFL 历史上最优秀的教练之一。
管理风格
- 人性化开发: "我们是人类,与人类协作,为人类的利益开发软件。"
- 领导力正在回归:这是一篇有趣的文章,提出了一种模型,即领导者既非仆人也非英雄,而是主人。
- 管理哲学
- 硅谷顶尖科技公司的12份“经理自述”
- 🎞 你的领导哲学是什么?你如何激励团队做到最好?:纳尔逊·曼德拉(摩根·弗里曼饰演)和弗朗索瓦·皮纳尔(马特·达蒙饰演)之间的精彩对手戏。
- 为什么软件开发需要服务型领导者
- Andreessen Horowitz,和平时期CEO/战时CEO
- 和平时期的CEO知道,恰当的流程能带来成功。战时的CEO则为了成功而打破流程。
- 《一来自多》节选,迪伊·霍克,扎克·坎特在Twitter上的分享。
- 作为管理者,你的首要责任是管理好自己:你的正直、品格、道德、知识、智慧、性情、言行。
- 第二项责任是管理那些拥有对你的管理权的人。
- 第三项责任是管理你的同级:没有他们的尊重和信任,一切都无法完成。
- 第四项责任是管理那些归你管辖的人。
- 你无法管理你的上司、同级、监管者等。但你可以理解他们、激励他们、影响他们、原谅他们。
- “令人惊叹的成长和优雅往往源于失败,前提是一个人能够认识到失败、承认失败、从中学习、超越失败并再次尝试。真正的领导力预设了一个远非人类完美所能企及的标准,这完全没关系,因为喜悦和满足在于追求目标的过程,而非目标的实现。”
- 管理Staff-plus工程师
- 人人都是领导者的工程团队,Gergely Orosz。
- 一个项目,一位工程负责人
- 指导并培养最初的几位领导者
- 通过每周书面更新实现透明化和问责制
- 成为服务型领导者所需的一切
- 服务型领导者的例子和书籍推荐
- 你需要:同理心、自我意识、积极倾听、信任、透明度
- 培养领导风格,威尔·拉森,包含机制和示例。
- 以政策为导向的领导
- 以共识为导向的领导
- 以信念为导向的领导
- 从优秀到卓越:打造卓越产品工程团队的能力框架
- 问责制陷阱
引用:
如果你想造一艘船,不要召集人们去收集木头,不要给他们分配任务和工作,而是要教会他们渴望大海的无垠广阔。
——安托万·德·圣-埃克苏佩里
管理是正确地做事;领导是做正确的事。
——彼得·德鲁克
为你工作的人拥有三种资源:时间、精力和在乎。时间是最便宜的,每小时都会补充。精力更昂贵,耗尽后需要大量休息来恢复。一旦“在乎”被耗尽,就永远消失了。
——@leftoblique

会议
- 论更高效的会议: Lara Hogan 分享了确保会议高效进行的技巧。
- 🎞 近乎直播!中层管理的奉承会议: 一个糟糕且低效会议的绝佳反面例子。
- 借助专家级建议举办更出色的会议,First Round Review
- 工程团队会议:形式与议题创意: 许多有助于启动会议的优秀创意。
- 亚马逊的文档文化
- 文档有助于消除对文档撰写人的各种偏见,无论是正面还是负面的。
- 在理解会议主要内容时,不会出现“你能看到我的屏幕吗”、背景噪音或通话音频中断等问题。
- 如果能接受结果,就取消你的会议
- "我新喜欢的团队仪式:每周召开一次名为‘搏击俱乐部’的会议,你与领导团队会面,目的就是进行一场辩论。"
- 会议本身就是工作
- 拥抱沉默
- 简单破坏活动 “一本现代实地手册,用于发现和根除破坏工作场所的日常行为”。涵盖了协作行为的反模式,并为在会议中出现这些问题时提供了具体的解决建议。
指导
- 高级别发展的连体三角形 探讨了如何定义高级工程师。
- 向导师提问的 30 个问题
- 建议易得,背景无价
- 开发者指导其他开发者:我见过的有效实践,Gergey Orosz
- 提供背景和视角
- 利用你的人脉帮助被指导者
- 给予支持
- 避免直接给出答案
- 针对技术与非技术话题调整方法
- 人们在自助时学习效果最佳
- 你的优势即是你的劣势
- 我们在团队成员身上所推崇的品质,往往也是给我们带来最大麻烦的根源。
- 我们需要有自我认知的工程师,他们了解自己的自然倾向,并能根据不同情况的需求进行调整。
- 管理强势个性
- “如果你不能指导大牌球员,你就不能指导任何人。对教练来说,非常重要的一点是要明白,你不是要教他们如何踢足球。你不会教罗纳尔多如何踢任意球。你不会教伊布如何胸部停球。你不会教德罗巴如何抢前点并头球破门。你要教他们如何在这支球队里踢足球。”——何塞·穆里尼奥
- 吉普车、法拉利及其他工程师
思维模式与态度
- 主动承担责任是实现目标最有效的方式
- Shreyas Doshi 在 Twitter 上的分享:优秀管理者的所作所为、思维方式与行动准则
- 优秀的管理者善于提出问题,帮助团队成员从新的角度看待问题,并自主找到正确的解决方案。
- 优秀的管理者会先阐明背景,再传达具体内容。
- 优秀的管理者深知,他们首先是公司的代理人。他们的默认模式是制定并推动有利于公司整体利益的决策。
- 优秀的管理者明白,作为公司指定的领导者,改善公司整体文化是其职责的重要组成部分。
- 优秀的管理者懂得,从长远来看,一切都与人息息相关。
- 优秀的管理者不会只有一种固定的管理风格,也不会抱有“理想员工”的刻板印象。
- 优秀的管理者能够分辨出善意与恶意。
- 英伟达 CEO 黄仁勋:“没有什么任务是我不屑于做的。”做需要做的事,而非想做的事
只有当潮水退去,你才会发现谁在裸泳。 —— 沃伦·巴菲特
@farbood:做正确的事,关乎方向;正确地做事,关乎速度。
@jasonfried:你不能自称为领导者。这取决于其他人。
“在组织中,只有三件事是自然发生的:摩擦、混乱和绩效不佳。其他一切都需要领导力。” —— 彼得·德鲁克
激励
- 🎞 驱动力:关于激励的惊人真相(丹尼尔·平克著作摘要)。
- 双因素理论(维基百科)“指出工作场所中存在某些因素会带来工作满意度,而另一组不同的因素则会导致不满。”
- bored People Quit,Rands in Repose
- The Development Abstraction Layer,Joel on Software
名言:
- “种树最好的时间是二十年前,其次是现在。”——中国谚语。
- “船停泊在港口固然安全,但那并非造船的初衷。”——约翰·A·谢德。
为新团队成员或自己办理入职
- 如何快速且成功地为工程师办理入职,GitLab
- 🎞 电影中的5个入职惨败案例
- 入职 - Mattermost 员工手册
- Gitlab 的工程入职清单
- 如何利用你的“不公平优势”为新员工打造难忘的第一天,Oren Ellenbogen
- Medium 的工程入职流程,Medium
- 职业冷启动算法,Andrew Bosworth。如何在新团队中进行你的第一次一对一交流。
- 前25分钟:请他们告诉你所有他们认为你应该知道的事情。
- 接下来3分钟:询问团队目前面临的最大挑战。
- 最后2分钟:询问你还应该和谁交谈。写下他们给出的每个名字。
- 入职,MartinFowler.com
- Ask HN:如何在新工作中快速熟悉新产品/行业?
组织结构
另见 数据组织
- Martin Fowler 的 团队组织 文章
- 康威定律,Martin Fowler
- “任何设计系统(广义定义)的组织,都会产生其结构复制了该组织沟通结构的设计。”,Melvin Conway
- 团队拓扑中的康威定律
- 反向或逆康威策略意味着我们应该设计团队(还不是软件)以“匹配”所需的软件架构。
- Spotify 的 #SquadGoals 失败教训
- 在这种模式下,工程经理的职责几乎仅限于所管理人员的职业发展。
- 没有一个人对工程团队的交付负责,也没有人能够在同等责任级别上就工作优先级进行谈判。
- 自主性需要一致性。公司优先事项必须由领导层定义。自主性并不意味着团队可以随心所欲。
- 业务部门、部门、团队和经理在沟通组织结构角色和职责方面,比 Spotify 的那些同义词更有效,并且不依附于一种连其创造者都失败了的工作方式。
- 独立性、自主性与过多的小团队
- 每个自主团队都应独立产生直接的业务价值,与其他团队没有太多重叠。
- 团队应能够独立实现其目标(即不依赖其他团队或不受其他团队干扰)。
- 协调,也称为对齐、沟通、共享路线图、甘特图以及许多其他听起来积极的名称,是自主团队的主要敌人。
- 🎞 单体与微服务没抓住重点——从团队认知负荷说起,由《团队拓扑》的作者主讲。
- 软件团队的组织方式(《团队拓扑》书籍摘要)
- 不应存在组件、库或代码的共享所有权。
- 如果你有微服务,但仍需等待对多个服务组合进行端到端测试,那么你拥有的是一个分布式单体(分布式单体是指服务中的所有更改都需要更新其他服务)。
- 使用由业务领域限界上下文定义的软件边界
- 应不惜一切代价避免仅由具有单一职能专业知识的人员组成的团队。
- 四种基本团队拓扑:流对齐团队、赋能团队、复杂子系统团队、平台团队。
- 结构决定战略
- BAPO:业务(B)应定义架构(A),架构是流程(P)的起点,而组织(O)则基于流程。
- 大多数公司并非 BAPO,而是 OPAB:将现有组织用作定义便利性驱动流程的基础,进而导致偶然架构的产生。
- 基础设施平台工程的组织结构和模型:一篇关于如何构建基础设施团队的精彩文章。
- 描述了4种典型的组织模型及其优缺点:
- 嵌入基础设施团队的产品组织
- 共享云工程团队
- 基础设施组织
- 基础设施平台组织
- 结论是,最终专业知识应编码到软件解决方案和自动化中
- 描述了4种典型的组织模型及其优缺点:
- 架构师、反模式与组织混乱
- 团队拓扑,Martin Fowler 撰写的精彩书籍摘要。
- 平台的主要好处是减轻流对齐团队的认知负荷
- 超越合弄制的炒作
- 组织边界问题:厨师太多还是厨房不够?。包含许多设计组织的有用资源。
- 我们如何以及为何围绕小团队构建初创公司
- 错误观念:平台会自动提高生产力
- 作为产品的平台能提高生产力;“因为我说了算”的平台则不能。
- 小团队,Posthog 员工手册
- 基础设施引力与领域工程 主张设立“领域工程”团队的价值。
- 高绩效技术组织的非主流默认做法
- 高绩效技术组织的非主流默认做法
- 不要微型团队
- 不要黑客马拉松
- 不要硬性规定“工程时间”
- 不要过度溺爱工程师的时间
- 追求健康的人员流动
- 打破过度专业化
- 软件的魔力:或者说,是什么让优秀的工程师也能造就优秀的工程组织:发人深省。
- “事情并非总是从愿景开始,然后利用可用资源去构建那么简单。它们往往是共同或交织出现的,并且事物会不断地向前飞跃。”
- “在像计算这样的复杂生态系统中,对我们用来创造事物的工具如何运作的深入理解,与我们最终获得的输出质量或创造力之间,似乎存在着某种持续的关系。”
- “当今许多‘最佳实践’都源自谷歌等历史悠久的互联网公司。然而,基于这些公司的成功而复制它们当前的做法存在一个问题:这些公司中的大多数都找到了近乎无敌的商业模式,基本上是印钞机,因此几乎任何随机制定或选择的组织或管理实践在某种程度上都可能继续‘成功’。”
- 初创公司工程团队组织
绩效管理
- 解雇员工:Zach Holman 分享了他被 Github 解雇的经历,为这个很少被公开讨论的流程提供了深刻见解。
- 解雇宜早不宜迟,Andreessen Horowitz。
- 绩效评估纯属浪费时间:对正式绩效评估的一种有见地的反向思考。
- 绩效评估校准的方法与原因
- 九格人才矩阵:实践者指南
- 如何有效管理低绩效员工:CARES 框架:沟通(Communicate)、问责(Accountability)、路线图(Roadmap)、执行(Execution)、支持(Support)。
- 为初创企业和成长型企业解锁绩效管理
团队绩效 = f(结果, 行为)
- 等等——员工绩效真的是高斯分布吗?
- 文章认为员工绩效实际上是帕累托分布。
- 我认识的最差程序员:不要试图衡量复杂适应系统中个体的贡献,因为这个问题的前提本身就是有缺陷的。
- 管理低绩效者
个人生产力
另见:开发者生产力部分
关于一般生产力:
- 43 Folders 系列:收件箱清零:如何将电子邮件收件箱保持在一个合理的水平。
- 无法衡量生产力,Martin Fowler(关于为何无法衡量开发者生产力)。
- 🎧 如何改变你的行为,Coaching for Leaders
- 认为养成一个习惯需要 21 天或 66 天是个误区。重复不会创造习惯,情绪才会。
- 通过 ABC 流程创建微小习惯:锚定时刻(anchor moment)、微小行为(a tiny behavior)和即时庆祝(instant celebration)。
- 避免提高微小行为的标准。如果愿意可以做得更多,但不要改变基本标准。
- “一次处理”任务法可提高生产力
- 一旦接触到某件事,就立即采取行动。
- 个人生产力方法终极指南,Todoist
- 如何在任何工作中取得成功的循证建议:大多数自助建议并非基于研究,本文列出的建议是基于研究的。
- 深度工作完全指南
- 在我们的经济中,进行深度工作的能力变得越来越稀缺,同时也变得越来越有价值。
- 选择你的深度工作策略
- 建立深度工作常规
- 原则一:专注于极其重要的事情
- 原则二:对领先指标采取行动
- 原则四:建立问责节奏
- 我们的深度工作能力是有限的
- 工具选择的工匠方法
- 停止使用社交媒体
- 让你的老板支持深度工作
- 我所有的生产力思考,尽可能简洁地呈现
- 情境意向性是家庭与地球上其他所有地方的关键区别
- 规则是关于例外情况的
- 改善生活的 100 条建议
- 不足并不会让你变得特别。年纪越大,不会做饭就越会成为别人眼中的一个危险信号。
- 历史记住的是那些第一个进入市场的人。把你的作品推向世界比把它做得完美更重要。
- 纪律优于动机。前者可以训练,后者转瞬即逝。如果你只依赖动机,就无法成就伟大的事情。
- 你不是生活在电子游戏里。当你即将做傻事,或者在错误的方向上走了太久时,不会有弹出警告。你必须自己创造警告。
- 培养可靠的声誉。良好的声誉很有价值,因为它们很罕见(容易被破坏,难以重建)。如果你的顾客知道咖啡总是热的,你不一定非要煮出最惊人的咖啡。
- 多赞美别人。许多人除非被别人告知,否则很难认为自己聪明、漂亮或善良。你可以帮助他们认识到这一点。
- 九大 productivity myths 大揭秘,Todoist
- 围绕工作流构建工具,而不是围绕工具构建工作流
- 重新思考最佳实践
- 完成的 cult 宣言
- 以正确的方式提问
- 如何变得伟大?只需持续做好
@shreyas:不要被“最佳实践”所迷惑。当某件事被贴上“最佳实践”的标签并进行宣传时,它其实只是平均水平。遵循这些实践只能说明你不会落后,但并不能让你领先。最佳实践实际上是平均实践。
自动化:
关于 GTD:
- 📖 David Allen,搞定:无压工作的艺术:虽然这本书可以更简短,但它可能是学习 GTD 方法的最佳途径。
- 生产力 101:搞定(GTD)哲学入门:GTD 的精彩总结。
- 禅习惯:一个可以关注以获取生产力技巧和窍门的博客。
- 简化版搞定(ZTD):一个更简单的生产力系统。
- 🏙 2011 GTD 搞定
关于日历:
- 创造者的日程,管理者的日程,Paul Graham
- 为什么创造者的日程如此罕见?
- 忙到死:一个涉及 W. Edwards Deming 的精彩故事。
- 创造者,不要让自己被迫进入“管理者日程”
- 研究表明,创造者可能需要长达 30 分钟才能进入工作流
- 使用创造者-管理者办公时间
- 沟通可以以更安静的异步频率进行,形式为深思熟虑的书面讨论,而不是令人厌烦的会议或断断续续的单行聊天消息
- 建立团队知识库,以减少重复问题并允许自我入职。
- 你的 90% 利用率的非线性问题,Jason Cohen:为什么持续以 90% 的利用率运行实际上会适得其反。
- 你的日历 = 你的优先事项
- 作为管理者的时间管理建议
关于干扰:
- 如何停止“永远在线”
- 确定你为什么“永远在线”
- 检查你的偏见
- 理性看待你的错失恐惧症(FOMO)
- 接受真实的自己
- 停止过度讽刺
- 慢慢来
- 寻找其他联系方式
- 扩展你对互联网的定义
- 寻找其他新闻网站
- 使用 RSS 订阅源
- 找到帮助他人的方式
- 培养一个爱好
- 限制为职业用途
- 保持信念
“做你热爱的事,直到你热爱去做” 我经常想起 @naval 的评论“读你热爱的书,直到你热爱阅读”,这是一个很好的概括。我的经验是,教育一个行动者比激励一个受过教育的人更容易;在开始努力之前,你必须相信自己能做到。—— John Carmack
在任务管理软件方面,我强烈推荐 Things(仅适用于 macOS 和 iOS)。这是一款非常出色的软件,它不会妨碍你,让你能够专注于任务本身。
规划(路线图、目标设定、KPI、OKR 等)
- 导致开发速度缓慢的十大原因
- 海尔迈耶准则:一套精心设计的问题,旨在帮助 DARPA 官员深入思考和评估拟议的研究项目。
- 路线图的基本原理
- 在持续创新、新市场参与者以及全球疫情等潜在黑天鹅事件的背景下,领导者所能做的最佳选择是制定一个 12–18 个月的战略计划,该计划需与公司的核心方向保持一致。此计划应按季度分解,并假设每个季度内实现目标的信心度会随着时间的推移而下降。
- 期望组织内的每个团队都能根据这些战略重点制定各自的运营路线图。运营路线图应明确关键举措和里程碑。
- 如何衡量和提升工程团队的成功
- “用户故事”无法完整叙事:良好的 sprint 规划需借助里程碑
- 通过里程碑进行管理
- 高速增长的例行实践:YouTube 规模化发展的内部视角
- 规划节奏:6 个月战略规划与 6 周冲刺
- 战略规划有两个关键产出:(a) “重要事项”列表和 (b) 项目分配矩阵
- 我们的流程旨在避免“即时性”的临时会议
- 我们的许多会议都包含一段较长的“自由讨论”时间(即非结构化的多线程讨论时间)
- 用广播邮件替代汇报会/会议
- 预读材料(“提前准备,并期望他人也做好准备”)
- 致产品经理:是时候重新思考企业级初创公司的敏捷方法了
- 当所有事情都重要却无一进展时
- 步骤 0:达成存在问题的共识
- 步骤 1:统一查看所有现有工作
- 步骤 2:制定并实施项目比较标准
- 步骤 3:对项目进行排序并承诺执行该顺序
- 步骤 4:启动工作
- 步骤 5:识别并解决组织约束
- 步骤 6:设定明确的终点线(完成定义)
- 步骤 7:持续推进
- “大石头、鹅卵石、沙子”理论的实际应用,A Smart Bear
- 如果你先安排小事,就会没时间做大事。
- 大石头(Rocks)追求最大化影响力
- 大石头注意事项:“最大化影响力”比你想象的要难得多
- 高管做决策,但理想情况下产品经理掌控方向
- 沙子(Sand)追求最大化吞吐量
- 注意事项:行政 overhead 会破坏吞吐量
- 沙子:凭直觉和意愿优先排序,而非数学和指标
- 自管理团队自行安排沙子的时间
- 鹅卵石(Pebbles)追求最大化投资回报率(ROI)
- 注意事项:估算误差对 ROI 的影响可能大得惊人
- 关键绩效指标信息图
- 衡量重要的事物,即使你无法完全控制它
- 领先指标与滞后指标:如何衡量产品 OKR。对该主题的阐述非常清晰,并包含大量参考资料和链接。
- OKR 理想情况下衡量的是结果(outcome),而非产出(output)。
- 滞后指标易于识别、反应迟缓且难以改变,是过去的明确结果
- 领先指标难以发现、能响应团队行动,是未来成功的预测因素
- 指标是领先还是滞后,取决于团队/具体情境
- 优先关注领先指标,以避免滞后决策
- 如何进行规划?
- 少做一些事情。
- 自下而上的流程行不通。
- 规划阶段不是引入新事物的好时机。
- 你必须提供框架和约束条件。
- 项目规划存在一个拐点。
- 不要等到糟糕的想法发展壮大才去终止它。
- 尽量减少依赖关系。
- 人员规划不会与你的计划完全匹配。
- 如果资金不是问题呢?
- 工程师如何评估产品路线图
- 路线图是否清晰地与更高级别的公司或产品使命、愿景和战略相连接?
- 路线图是否直观,能否不用术语就轻松解释清楚?
- 路线图是以结果为导向还是与客户价值保持一致?
- 路线图是否具有灵活性或迭代性?
- 路线图中的举措是否基于证据进行范围界定和优先级排序?
- 路线图是否识别了主要依赖关系或风险?
- 路线图是否既具有挑战性又切实可行?
- 路线图在日后是否易于查阅?
- 停止凭空创造产品问题;开始解决客户问题
- “构建陷阱”指的是组织更专注于发布和开发功能,而不是这些功能所产生的实际价值。—— Melissa Perri,《逃离构建陷阱》
- 当成熟度较低的产品团队开始接触结果目标时,诸如“查询数量”或“邮件发送率”之类的虚荣指标往往会占据主导地位。
- 当你问“用户希望仪表板有哪些功能”时,你永远不会听到“用户不需要仪表板”这样的答案,除非你非常善于解读言外之意。
- 项目团队倾向于解决“功能缺失”的问题,而不是“客户无法达成其目标”的问题。
- 发布 MVP 很快就可能演变成逐步解决有趣的编码问题,而牺牲了对用户体验的可衡量改进。
- “从客户需求出发反向工作需要大量的努力。但这将为你节省日后更多的工作。”—— 杰夫·贝索斯
- 实际上,没有任何产品对客户来说是绝对必需的。客户有他们期望达成的结果,而产品可以帮助他们实现这些结果。
- 为什么大多数产品规划都不尽如人意以及如何改进 对 OKR 提出了发人深省的批评,并提供了一种专注于问题的不同方法。
- 对 OKR 模型的合理批评:(1) 对于“发展业务”或“提高转化率”这类无限制的目标,其目标本身对于确定工作优先级并非特别有用;(2) 它们缺乏灵活性。
- 此外:OKR 依赖于整个组织都擅长设定目标,这需要大量的培训。
- 我的笔记:OKR 确实会导致过度讨论关键结果(KR),而对关键绩效指标(KPI)讨论不足。
- 他们的方法:只提出并优先处理值得解决的问题,并简单标记为 P0(生存风险)、P1(必须做)、P2(锦上添花)
- 每个季度用 4 天时间进行公开承诺。
- 欢迎来到决策室
- “我们的资源分配是否真的支持我们的成功理论?”
- “哪些信号能告诉我们我们的理论是否合理,以及我们需要多久才能获得这些信号?”
真理从错误中比从混乱中更容易浮现。 弗朗西斯·培根
目标
- 有目标,FAST 胜过 SMART:目标应嵌入频繁的讨论中;目标范围应具有挑战性;通过特定指标和里程碑进行衡量;并且对组织中的每个人都保持透明可见。
没有计划的目标只是空想。 安托万·德·圣-埃克苏佩里
OKRs
- 如何将 OKR 用于季度和年度规划
- 🎞 创业实验室研讨会:谷歌如何设定目标:OKRs
- 如何让 OKR 在你的初创公司真正发挥作用,First Round Review
- 🎞 为什么成功的秘诀在于设定正确的目标,约翰·杜尔
- 精益 OKR 现代指南(一个三部分系列)
- OKR:终极目标与关键成果资源
- OKR 示例(以及创建你自己的 OKR 的技巧)
- 经理 OKR,执行者 OKR:早期初创公司应如何思考目标设定
- 目标与关键成果,GitLab 手册
- 有效使用 OKR 的 10 个技巧
- 目标必须宏大且具有激励性
- 关键成果(KR)必须可衡量
- 谨慎使用二元关键成果
- 所有关键成果都必须有仪表盘
- 关键成果必须详尽无遗
- 将指标与反指标配对
- 区分承诺型 OKR 和 aspirational OKR
- OKR 应向上、向下和横向级联
- 个人 OKR 很有力量
- 宁愿选择少量重点突出的 OKR,也不要一长串 OKR
- 有效使用 OKR 需要数年时间
演讲、设计与公开表达
- 🎞 加尔·雷诺兹,Presentation Zen Talk(谷歌演讲)
- 📖 加尔·雷诺兹,Presentation Zen book
- 加尔·雷诺兹,Top Ten Slide Tips
- 🎤 You suck at PowerPoint
- 📖 爱德华·塔夫特,The Visual Display of Quantitative Information,一本关于如何呈现数据的经典著作。
- 📖 The Non-Designer's Design Book——尽管书名有点标题党,但实际上是一本很棒的书,其中包含一个非常易记的首字母缩略词,让你了解设计出色文档有多么简单。
- 📖 威廉·利德威尔、克里斯蒂娜·霍尔登、吉尔·巴特勒,Universal Principles of Design。
- A Five Minutes Guide to Better Typography
- Presentation Zen: Living large: "Takahashi Method" uses king-sized text as a visual
- How to tell great spoken stories
- 有限记忆
- 钩子
- 悬念
- 高潮
- 主人公视角
- 重温故事;让自己也感到震撼
- 魅力源于自信、喜悦以及对听众的热爱
- 变换语速、音量、能量和节奏
- 勇于沉默
- 想象自己乐于并兴奋地讲述这个故事
- Death by PowerPoint: the slide that killed seven people(参见爱德华·塔夫特关于此主题的文章)
- 另见爱德华·塔夫特的The Cognitive Style of PowerPoint,其中包含对此幻灯片的精彩分析。
- How to present to executives,Irrational Exuberance
- 永远不要抵触反馈
- 不要回避责任或问题
- 不要只提问题不给答案
- 避免学术式的演示
- 不要执着于你偏好的结果
- 1 Trick to Finish Your Next Talk in Style
- “好的,在我做总结之前,我会回答几个问题。”
- How to tell a great story,朱利安·夏皮罗
- 让自己也感到震撼
- How to Create, Structure, Design, Prepare and Hold a Great Presentation,iA,提供了如何构思和交付演示的精彩总结。它遵循了昆体良的修辞五法:
-
- Inventio(构思):发展和完善论点。
-
- Dispositio(布局):组织论点以达到最佳效果。
-
- Elocutio(表达):呈现论点。
-
- Memoria(记忆):学习和记忆演讲内容。
-
- Actio(传达):手势、发音、语调和节奏。
-
一些精彩的演示示例:
优先级排序
另请参阅我的 创业资源列表中的优先级排序部分
- 如何少做事
- 为待办事项列表排序与只做列表中的首要任务
- 两个元优先级:(1)维持基本运营,并降低维持成本;(2)将整个路线图精简为每次只做一件事
- 如何处理失望情绪
- 尽早且经常说“不”
- 如何说“不”
- 如何纠正干扰
- 保持灵活性:默认采用迭代方式,但也愿意进行投资
- 优先级排序既是分析问题,也是政治问题
- 行不通的做法:要求高管团队集体为一长串事项确定优先级
- 行不通的做法:讲授算法、开发流程和人员短缺问题
- 行不通的做法:期望电子表格为我们完成优先级排序
- 有帮助的做法:自上而下明确分配在几个广泛类别上的精力
- 有帮助的做法:促使每位高管级利益相关者提供其团队需求的非常简短、完全有序的列表
- 有帮助的做法:每周简要回顾 3-4 个最重要的产品或项目
- 有帮助的做法:使用“现在/接下来/永不”框架来规划即将做出的选择
- 有帮助的做法:预先明确哪些类型的工作可以实际外包,并积极招募外部合作伙伴
- TBM 245:神奇的优先级排序技巧
问题解决
请参阅我的 专业编程部分中关于问题解决的内容
工程流程
- 乔尔测试:提升代码质量的 12 个步骤
- 简单规则让你获得自由,来自 Bob Sutton 的 Friction 播客
- 建设性混乱与一团糟,来自 Bob Sutton 的 Friction 播客
- 官僚模式,Andrew Chen
@samkottler:再多的流程也无法确保完成正确的工作。
产品管理
另请参阅我的 entrepreneurship-resource repo。
- Dropbox 在扩大产品管理规模方面所做的最重要的事:一个用于说明产品所处阶段的非常简单的模型。
- 亚马逊云服务(AWS)如何通过逆向工作实现 115 亿美元的运行率:阐述亚马逊的产品管理流程。
- 瓶颈 #03:产品与工程,Martin Fowler
- 您正接近规模扩张瓶颈的迹象
- 识别并强化您的“第一团队”
- 定义并传达您的初创企业如何创造价值
- 创建多学科的流线型团队
- 协商平衡的产品投资组合
生产与生产力
- 丰田模式,维基百科
- 管理决策基于长期理念,即使以牺牲短期财务目标为代价。
- 创建连续的流程流,使问题浮出水面。
- 使用“拉动式”系统避免过度生产。
- 均衡工作负载
- 建立发现问题就立即停止并解决的文化,确保首次就把质量做对。
- 标准化的任务和流程是持续改进和员工赋权的基础。
- 采用可视化管理,使问题无所遁形。
- 只使用可靠的、经过彻底测试的技术,这些技术能为员工和流程服务。
- 培养能够透彻理解工作、践行理念并将其传授给他人的领导者。
- 培养遵循公司理念的优秀人才和团队。
- 通过挑战和帮助合作伙伴及供应商改进,来尊重您的扩展合作伙伴和供应商网络。
- 亲自到现场去,以彻底了解情况
- 通过共识缓慢决策,充分考虑所有选项;快速实施决策
- 通过不懈的反思(反省)和持续改进(改善),成为学习型组织
- LinkedIn DPH 框架
- 目标、信号和指标
- 开发者角色画像
- 设计指标时的常见陷阱
- 他们的示例:开发者构建时间(DBT)、合并后 CI 持续时间、CI 确定性、代码审查者响应时间。
- 拿破仑技巧:通过推迟事情来提高生产力
项目管理
- 📖 人月神话(Frederick Brooks 著)是一本关于软件项目管理的经典著作。
- 我并不认为软件经理在内在的勇气和坚定性方面不如厨师,也不如其他工程经理。但在我们这一领域,为了迎合客户期望的日期而进行错误的进度安排,比在其他工程领域要普遍得多。
- 老板必须首先区分行动信息和状态信息。他必须约束自己,不要对其经理能够解决的问题采取行动。
- Jason Yip,不只是站起来:每日站会模式:站会是一个颇具争议的话题。这篇发表在 Martin Fowler 博客上的文章提供了一系列良好的模式和反模式,以确保站会能高效利用每个人的时间。
- 软件开发的 15 条基本法则
- Basecamp 如何组织工作与团队
- 你的项目会成功吗?五分钟内知晓答案
- Project Smart,项目管理工具
- 在软件工程中应如何使用截止日期?
- 我二十年的软件开发方法论经验:包含一张关于不同项目管理方法论的精彩海报。
- JIRA 是一种反模式,Jon Evans 著。
- 敏捷精简版:没有倦怠的敏捷
- 你想用截止日期给谁留下深刻印象?
- 错误的截止日期会对“什么是好的”产生错误的预期。
- 如果你给人们设定了艰难的截止日期,他们就会走捷径。
- 如果你盲目追求在截止日期前完成任务,没有人会尝试新的做事方式。如果 Facebook 有人没有错过某个截止日期,我们前端应用可能还在使用 MVC。
- 要有截止日期,但可以模糊一些。模糊的程度应取决于你的目标。如果错过某个截止日期可能会让你损失一百万美元,那么这个截止日期的模糊系数应该为零。
- 瀑布式流程,Martin Fowler 著。
- 高效软件项目管理的根本
- 成功的项目启动会议的关键在于互动性。
- 只要有了良好的里程碑,团队无论是使用故事点、工程师天数还是其他任何方式来衡量进度都无关紧要。
- 定期、坦诚地更新团队的真实进展情况。
- 以务实的方式进行依赖和风险管理。
- 完成后要庆祝!
- 如何领导一个项目——作为软件工程师,Gergely Orosz 著
- 建立协作框架。
- 向利益相关者沟通状态。
- 帮助团队集中注意力——并且不要害怕委派任务。
- 这篇文章包含了一个面向首次担任项目经理的人的简短清单:启动会议、里程碑、设计流程、每周更新邮件、每日站会、每周目标、进度演示。
- 直接负责人
- 软件估算很难,但还是要做
- 优秀的工程团队关注里程碑而非项目
- 里程碑应该是小的、高质量的、可理解的、有价值的。
- 我们可以估算 1-3 周的工作量。
- 分解项目有助于交付增量业务价值。
- 打造世界级 TPM 团队的 6 项原则,Sophia Vicent 著
- 驱使工程师追求一个随意设定的日期是一个破坏价值的错误
- 大型科技公司如何管理技术项目以及 Scrum 的明显缺失,Gergely Orosz 著
- 完成你开始的工作如何让团队更高效和可预测
- 如何进行规划?
- 少做事情。
- 自下而上的流程行不通。
- 规划不是引入新事物的时候。
- 你必须提供框架和约束条件。
- 项目规划有一个拐点。
- 不要等到糟糕的想法发展壮大才去扼杀它们。
- 尽量减少依赖。
- 人员规划不会与你的计划完全匹配。
- Basecamp 的 Shape Up:停止原地打转,交付重要的工作
- 待办事项列表是我们不需要背负的沉重负担。(关于这个话题:当你以六周为一个周期工作时,“稍后”意味着下一个周期)
- 重要的想法总会回来。
- 选择合适的周期长度(六周)。
- 分配项目,而非任务。
- 进行有上限下行风险的投注(熔断机制),并给予不受干扰的时间来兑现这些投注。
- 下坡工作与上坡工作,以及关于未知因素的沟通。
- 软件工程师的项目管理:一个运行项目的五步流程。
- 拯救进行中的项目,Jason Fried 著
- 停止(Stop)、状态(Status)、选择(Selection)、专注(Focus)、完成(Finish)、下一步(Next)。
- 我是如何管理大型项目的
最终的灵感来自截止日期。 — 诺兰·布什内尔
你必须为自己设定极其激进的截止日期,否则,你会被那些并非真正关键的不必要细节所淹没。如果你还在考虑配色方案和按钮宽度,那你的时间线就太长了。 – 塔拉·维斯瓦纳坦
工作量估算(项目管理)
- 是的,你应该估算软件项目,Gergely Orosz 著
- 在路线图上去除时间估算:进入产品交付节奏
- 工程估算技巧
- 估算(Estimate):对项目所需时间的预测。
- 目标(Target):期望达成的业务目标陈述。
- 承诺(Commitment):在特定日期前交付特定功能的保证。
- 计划(Plan):实现特定结果的步骤。
- 确定极端情况(最早/最晚)。
- 注明精度(周?天?小时?)。
- 随着时间推移询问置信度。
- Ask HN:当经理/客户质疑你的估算时,你会如何处理?
- 称之为预测(forecast),而非估算(estimate)。
- 提供置信区间。
- 表现出同理心。
- 提供解决方案。
- 试试这个工具:https://estigator.mozz.app/app/
- SomeEstimates
质量
另请参见我的 professional-programming repo
- 代码质量金字塔
- 是时候发出代码黄色警报了?一种简单却有效的方法
- 我们暂停了一周的路线图工作,修复了 189 个 bug(关于集中修复周)
- 安东系统(制造业):“警报可由工人通过拉绳或按钮手动触发,也可由生产设备自动触发。该系统可能包括暂停生产的功能,以便问题得到纠正。”
发布管理
远程团队
- 如何在远程团队中提高工作效率
- Notion,远程工作维基
- Gitlab,远程工作应急计划:该做什么以及从何入手
- 分布式团队指南,Increment:团队版块。
- 远程工作终极指南,Zapier。包括以下主题:
- 如何进行远程头脑风暴
- 远程团队活动:居家办公时如何寻找乐趣
- 最佳在线白板工具
RFC(请求评议)
- 通过书面记录与共享来扩展工程团队——即 RFC,Gergely Orosz
- 在开始构建新事物之前进行规划。
- 如果每个人都同意项目应如何进行,那么将方法写下来应该是轻而易举的事。
- 组织中向人们传递的信息类型在很大程度上塑造了文化。
- 轻量级 RFC 流程,Apache 软件基金会
- 将技术 RFC 作为决策工具实施时我学到的 6 个经验教训
- RFC 团队全面指南。
- Google 的设计文档
组织规模化
二级经理(2LM)
安全
- SaaS 首席技术官安全检查清单更新版
- 您的组织是否有 security.txt 文件?,Krebs on Security
- SOC2:安全状况不改善,截图就不停
软技能、情商(EQ)
- 阻碍你发展的20个关键习惯
- 如何应对软件项目中的难相处之人
- 领导力软技能:掌控自我,引领团队走向成功
- 软技能在工程领导力中的重要性
- 提升领导力软技能的步骤
- 优化领导力软技能的实践方法
- 帮助直接下属提升领导力软技能
- 在企业文化中强调领导力软技能
故事讲述
参见演示文稿
战略
另见:charlax/entrepreneurship-resources 中的战略部分
在此不揣冒昧,分享两个我参与的演示文稿:
- 🎤 亚马逊:隐藏的帝国
- 🎤 苹果:击败微软的8个简单步骤
- 迈克尔·波特的通用战略(维基百科)
- 史蒂夫·乔布斯解释为何应从客户需求出发,反向推进(视频 🎞)。他指出,终止 OpenDoc 项目是正确的决定,因为那是一项没有任何客户需求的技术。
- 能做之事与必做之事,AVC。“创办初创公司就像玩电子游戏。每一关都要求你掌握一项技能,一旦你掌握了,就会升级,然后又有新的技能需要掌握。”
- 比尔·戈尔提出的“水线原则”:“想象你在一艘船上,任何错误的决策都可能在船侧造成一个洞。如果洞在水线以上(船不会进水,也不会沉没),你可以修补洞口,从经验中学习,然后继续航行。但如果洞在水线以下,你可能会面临大量海水涌入,将船拖向海底。如果洞口足够大,船可能会迅速沉没,就像2008年一些金融公司的灾难一样。需要明确的是,伟大的企业确实会下大赌注,但它们会避免可能在水线以下造成漏洞的大赌注。”,《我们可能如何失败》。
- 先写五个方案,再综合提炼:优秀的工程战略往往平淡无奇,威尔·拉森
- 工程战略有用吗?,威尔·拉森
- 不要一开始就试图通过改变文化来推动改进,先去顺应它
- 自主开发 vs 外部采购
调查
- 利用文化调查数据,威尔·拉森(Will Larson)
人才管理
- 你的公司需要初级开发人员
- 初级人才促使团队进行教学、指导与协作
- 知识发现即创新
- “ protege 效应”是一种经过充分研究的现象,指当教师需要进行教学时,其自身知识会得到深化。
- 通才比专才更擅长创新
- 初级人员意味着心理安全,进而带来更多创新
- 不招聘初级人员会让你的组织蒙受损失
团队愿景
“从为什么开始”是《高效能人士的七个习惯》中最精彩的章节之一。
- 赛斯·戈丁(Seth Godin),小型团队从事重要工作的宣言:非常鼓舞人心的团队简短文化价值观清单。来制定你自己的吧!
- 赛斯·戈丁(Seth Godin),先有大问题,后有小问题
- 🎞 专注就是学会说不(史蒂夫·乔布斯)
- 🎞 愿景在于坚持不懈(史蒂夫·乔布斯)
- 🎞 布莱恩·坎特里尔(Bryan Cantrill,Joyent 工程副总裁)谈“为什么”的重要性。
- 主要驱动力是使命和目标。软件开发的意义在于为人类提供实用价值。
- 灵魂是激励的源泉。你需要能够解释“为什么”。
- 🎞 史蒂夫·乔布斯关于同一主题的演讲。
- 专注于精华。
- 🎞 从为什么开始,西蒙·斯涅克(Simon Sinek)的 TED 演讲。
- 🎤 坚持专注,基思·拉博伊斯(Keith Rabois)
- 这种[迫使人们专注并只解决一个重要问题]之所以成为如此成功的策略,原因在于大多数人倾向于从非常难以解决的 A+ 级问题,转向他们已经知道解决方案的 B+ 级问题。
- 每个组织都必须回答的六个关键问题(来自帕特里克·兰西奥尼(Patrick Lencioni)的《优势》)
技术战略
- 乔尔·斯波斯基(Joel Spolsky),《永远不要做的事:第一部分》:乔尔阐述了(在他看来)为什么永远不应该重写代码库。
- 🎤 《选择 boring 技术》,丹·麦金利(Dan McKinley)。
- 《史蒂夫的谷歌平台咆哮》:亚马逊如何成为一个平台。
- 《致股东的信》,杰夫·贝索斯(Jeff Bezos):“第二天意味着停滞。随后是无关紧要。接着是痛苦的、折磨人的衰退。最后是死亡。这就是为什么永远都是第一天。” 这封信包含了太多深刻的见解。“第一天”的核心在于真正以客户为中心、拒绝使用替代指标、拥抱外部趋势以及高速决策。
- 《预示你的重构将会失败的 5 个危险信号》
- 《创业环境中的多语言编程》
- 永远不要因为个人偏好而在现有代码库中引入新的编程语言。软件开发是团队合作。使你的代码语言全球化。团队凝聚力才是最重要的。
- 你必须对想要替换或补充的编程语言有生产环境经验。
- 引入新编程语言的决定必须基于非功能需求、度量数据或其他相关论据,而非个人观点。
- 始终考虑团队和公司,尤其是招聘和团队扩张。
- 编程语言只是交付软件的工具。不要和你的螺丝刀建立过于紧密的关系。
- 《技术迁移:Spotify 之道》
- 无情地进行优先级排序
- 将迁移产品化:明确责任、测试先行、培训、以价值为导向、了解你的用户(KYC)、游戏化
- 自动化,自动化,并向更高层抽象迁移!
- hwayne/awesome-cold-showers:当人们对某些事物过于狂热时,可以看看这个。
- 《IT 软件工程原则》
- 《自信领导:工程经理如何避免技术衰退》
- 向一线贡献者询问更多关于他们所面临挑战的细节
- 建立知识共享会议,并鼓励分享近期经验
- 实施副业项目实践
- 遵循工程师/经理摇摆式职业路径
团队文化
- 7个极其成功的软件工程文化带来的启示
- 构建心理安全的文化氛围
- 文化能把战略当早餐吃掉
- 高效能团队的习惯
- 高度的心理安全感
- 良好的工作规范
- 主动分配“经验值”
- 充分沟通
- 原则胜于流程
- 工程团队中的“天才混蛋”
- 无私型天才混蛋
- 自私型天才混蛋
- 天才混蛋引发的问题
- 如何应对天才混蛋
- 包含大量资源和实用问题!
以下被视为经典文献:
culturecodes 是一个公司文化手册的资源库(包含上述手册)。
工程价值观:
- 工程价值观:致 Medium 工程团队的一封信
- 个人与职业成长比团队稳定性更重要
- 人人都是导师;人际连接是激发潜能的途径
- 优秀团队需要多样性与包容性
- 优秀的领导者应积极主动且给予支持
- 优秀的工程师应严谨且坚定
- 追求卓越是一种美德
- Lullabot 的工程价值观
- 以人为本
- 培养包容性
- 学习与分享
- 在完美与完成之间寻求平衡
- 为未来编写代码
- 在工作中注入乐趣
- Figma 的工程价值观
- 尽早沟通,经常沟通
- 支持团队成员
- 精益求精
- 优先考虑影响力
- HubSpot 的工程价值观
- 客户至上
- complacency 等于失败
- 像所有者一样思考
- 快速行动,持续迭代
- 小团队获胜
- 保持简单
- 拥抱组织变革
- 共同成长
- Wise 的工程价值观
- 频繁交付,持续学习,不断迭代,创造影响
- 保持可替代性——个人独揽责任等于无人负责
- 快速行动,但要为未来而建
- 观点鲜明但不固执己见,乐于公开分享
- 提升标准——为自己,也为团队
团队动态
- Shields Down,Rands in Repose
- 各种形式的无聊是导致员工辞职的主要原因之一,但事实上,导致“盾牌”削弱的因素还有很多。
- 作为领导者,每一刻都是增强或削弱“盾牌”的机会。
培训
- Great developers are raised, not hired
- 拿出一部分用于招聘的资金、精力和时间,投入到培养优秀开发人员的指导技能上。
- 调整面试流程,给那些目前可能还不够优秀,但渴望学习且具备成长型思维的候选人一个机会。
- 放宽招聘广告中的“硬性要求”,以避免将“ impostors”筛选出去。
- “Sharing Interesting Stuff”: A simple yet powerful management tool
- 你的直接下属会在你们会面的前几天,发送一些他们认为值得与你分享的内容(可以是博客文章、书籍章节、视频、播客等),以及他们想到的几个相关问题。
- 在会面当天,你分享自己对该内容的看法,并尝试回答附带的问题。
- 下一次会面时,你们互换角色。
- Introduce Team G Morning Learning Sessions to Coach the Growth Mindset
- 每天早上会面30分钟。花20分钟学习,10分钟分享所学内容。
- Your Startup’s Management Training Probably Sucks — Here’s How to Make it Better,First Round Review
- 人们常常认为自己不喜欢管理培训。但他们真正想表达的是“我不喜欢糟糕的管理培训。”
- 误区:只培训新经理
- 零食在厨房很有用,但在领导力课程中没那么大用处。
- 每个经理培训都应包含的4个主题:
- 目标设定
- 人才管理
- 组织规划
- 领导力与文化发展
信任
最出色的新想法往往能带来意想不到的益处。因此,要求那些想要尝试新事物的人事先列举出所有益处,是非常不明智的做法。你能做的最好的事情,就是挑选聪明的人,然后相信他们对于哪些事物值得探索的直觉判断。
——保罗·格雷厄姆(Paul Graham)https://twitter.com/paulg/status/1619753568264921089
职业道德与工作/生活平衡
- 懒惰与急躁的美德:“有两个方面我鼓励你现在就开始实践:弄清楚什么是重要的事,以及准时回家。”
- 懒惰式领导力:“创业,其实不过是‘委派任务’的华丽说法罢了。”
- 90% 利用率的非线性难题,杰森·科恩(Jason Cohen):阐述为何持续以 90% 的利用率运转实际上会适得其反。
- 经实证的职场成功指南:大多数自助类建议缺乏研究支持,而本文所列的建议均基于实证研究。
工作坊引导
写作
➡️ 另请参阅我的 professional-programming 列表
另请参阅 RFCs 部分。
- 你需要掌握的 7 种邮件写法
- 倒金字塔结构 或 BLUF(结论先行)(维基百科):一种在文本中对信息进行优先排序和结构化的方法。
- 如何道歉,杰森·弗莱德(Jason Fried,Basecamp 创始人兼 CEO)
- 如何写出风格,库尔特·冯内古特(Kurt Vonnegut)。
- 博客写作风格指南
- 杰夫·贝索斯如何将叙事转化为亚马逊的竞争优势
- 写作即思考:学会自信地写作
- 保罗·格雷厄姆(Paul Graham),如何写出有用的东西
- 有用的写作会告诉人们一些他们原本不知道的、真实且重要的事情,并且会尽可能清晰明确地传达。
- 落实到文章写作上,这意味着如果你写出了一个糟糕的句子,就不要发表它。你应该删掉它,重新尝试。你常常需要舍弃整段甚至四五段的内容,有时甚至是整篇文章。
- 一篇好文章的秘诀在于:重要性 + 新颖性 + 正确性 + 说服力。
- 培养书面沟通文化
- 易于搜索。单一信息源。
- 平衡异步与同步沟通
- 出声思考
- Google 的设计文档
- 如何写出引人入胜的内容
- 如果你想创作出有吸引力的内容,就必须在创作过程中加入一个维度:让想法既简单又具有普遍性。
- 我编辑时会思考什么
- 明确你真正想表达的是什么
- 适当重复(在合理范围内)
- 避免使用被动语态
- 不使用副词
- 善用空白
其他资源
其他清单
- 🧰 92bondstreet/cto:精心整理的 CTO 资源清单
- 🧰 mateusz-brainhub/awesome-cto-resources:社区精心打造的优质资源清单,助力你成长为 CTO
- kuchin/awesome-cto
- ryanburgess/engineer-manager
电影
- 🎞 点球成金(Moneyball)。问题何在?
- 🎞 上班一条虫(Office Space)
- 🎞 当幸福来敲门(The Pursuit of Happyness) 蕴含诸多关于拼搏的深刻启示。观看面试场景。
电视节目
Netflix 的 主厨的餐桌(Chef's table) 介绍了几位世界知名主厨。厨房世界与管理领域有许多共通之处。第二季中,我特别推荐第 1 集和第 3 集:
- Alex Atala 的故事表明,你需要不断自我革新与突破。
- Dominique Crenn 讲述了她在第一份厨房工作中如何获得工作自主权(当时她基本上只得到菜名、食材清单,在没有厨房培训的情况下就需要发明食谱)。她在自己的厨房中也践行了这一理念。
《办公室(The Office)》是一部关于 dysfunctional 办公室的出色讽刺作品。
保持更新:博客与通讯
以下是我关注的一些博客和通讯。
通讯
- Software Lead Weekly(Oren Ellenbogen):简短精悍的管理文章精选。也包含一些视频和轻松有趣的内容。本仓库中的许多链接都曾出现在 Oren 的每周邮件中。
- 哈佛商业评论管理每日贴士(HBR's Management Tip of the Day)
- Tech People Leadership(Joe Dunn):面向科技行业领导者的链接、笔记与观点。
- CTO Insights(Tosho Trajanov):关于软件工程与技术领导力的每周阅读推荐。
博客
- Hacker News:如果你想及时了解科技领域的动态,这是必读的。时不时也会有一些优质的管理文章。由于它可能会非常耗费时间,我选择订阅精选的顶级文章(RSS 订阅源在此)。
播客
- FRICTION with Bob Sutton。这个播客自 2017 年起就没有更新过新节目,但它包含一些非常棒的内容。对话精彩,故事丰富。
- 一部分是组织设计,一部分是“团队疗法”。组织心理学家、斯坦福大学教授 Bob Sutton 再次回归,探讨“摩擦”这一让员工受挫、团队疲惫、组织陷入困境甚至失败的现象。
- CTO Insights with Katerina Trajchevska。这是一档关于 CTO 所有事务的精彩播客,其中包含与科技领袖如 DHH(Basecamp)、Kent Beck(敏捷宣言)等人的深度对话。
- The Pragmatic Engineer Podcast with Gergely Orosz 该播客收录了与顶级科技公司资深工程领导者的坦诚对话。话题包括团队扩展、应对高速增长、构建弹性系统以及高效领导等,均以真实的实践经验为基础。
我的其他列表
项目介绍
一系列关于工程管理与技术领导力的启发性资源集锦【此简介由AI生成】