Fergus Henderson 在 2017 年发表并被广泛阅读的公开论文《Software Engineering at Google》(arXiv:1702.01715),为我们提供了一个迷人的视角,深入展现了支撑超大规模软件开发的工程文化、工具与流程。
在阅读关于企业级规模工程的文章时,人们很容易陷入这样一种思维误区:“我的公司没那么大,所以这些对我们不适用。”然而,Henderson 这篇论文的真正价值并不在于其中提到的那些专有工具,而在于其背后的底层哲学——如何管理复杂性、扩展团队,以及随时间推移保持代码的健康度。
与其试图照搬他们的具体配置,不如来看看论文中总结出的四个高屋建瓴的核心启示,任何规模的工程团队都可以从中汲取经验并加以灵活应用。
这篇论文最令人印象深刻的启示之一,就是为了保持开发高效运转所需要的庞大自动化体系。从分布式构建系统,到在每一次依赖项变更时都会自动运行的自动化测试,人工干预在任何可能的地方都被降到了最低。
核心启示: 你并不需要一套自研的云端构建系统才能拥抱这种思维模式。其核心目标是消除开发者体验中的阻力。如果你的团队仍在手动运行部署脚本,或者全凭“祈祷”某次代码提交不会破坏主分支,那么现在就该大力投资 CI/CD 流水线、提交前检查(pre-submit checks)以及确定性构建(deterministic builds)了。让做事情的“正确方式”成为最简单、最自动化的方式。
Henderson 描绘了一个严格的环境:每一行代码都必须经过审查,并且由代码风格指南统一规范不同编程语言的一致性。然而,这并不是一种严苛的管理手段,而是一张协作式的安全网。此外,统一的代码仓库(Monorepo)让任何人只要知道如何修复,都可以修复任何地方损坏的代码。
核心启示: 代码审查(Code Review)不应该成为瓶颈或意气之争的场所;它是知识共享和维护统一代码库的主要机制。强制执行严格的代码风格指南(例如通过自动化 Linter 工具)可以消除拉取请求(Pull Request)中琐碎的争论,让开发者能够专注于架构和逻辑层面的审查。同时,要培养一种鼓励开发者走出自身直接项目边界去修复问题的工程文化。
当出现问题时——而问题总是不可避免的——应对机制高度结构化,但完全遵循“免责(不指责个人)”原则。对于重大故障,事后复盘(Post-mortem)是强制性的,但其核心严格聚焦于时间线、根本原因和可落地的预防策略,而不是将矛头指向某个个人。
此外,论文还谈到了“频繁重写”的现实。在组织层面上,大家普遍理解几年前编写的代码是为了适应当时的需求而设计的,随着时间推移自然会老化或过时。
核心启示: 错误是系统性的,而非个人问题。如果一名工程师导致生产环境宕机,应该问的问题不是“你为什么要那么做?”,而是“为什么我们的系统允许你那样做?”拥抱免责的事后复盘能够建立心理安全感,鼓励工程师承担经过权衡的风险,并尽早承认错误。同样,团队必须接受软件是一个有机生命体;重构和重写不应被视为最初设计的失败,而应被看作软件生命周期中自然而然的一部分。
论文揭示了项目与人员管理中一种耐人寻味的二元平衡。一方面,公司通过目标与关键成果(OKR)实现严格的战略对齐,确保每个人都朝着可衡量的公司目标共同发力;另一方面,公司又设有赋予极高自主权的机制,其中最著名的便是允许工程师自由探索自选项目的“20% 时间”政策。
核心启示: 当工程师理解宏观目标,同时又获得足够的信任与空间去创造性地解决问题时,创新就会蓬勃发展。虽然并非每家初创公司都能承担得起拿出一五分之一的开发者时间来自由探索的成本,但你依然可以培养团队的自主权。提供清晰、可衡量的目标(即“做什么”和“为什么做”),然后退后一步,让你的工程团队自己决定最佳的技术执行方案(即“怎么做”)。
Fergus Henderson 的论文提醒我们,编写代码只是“软件工程”中很小的一部分。真正的工程涵盖了让代码能够随时间推移而存活、演进和扩展的工具、文化与流程。通过专注于自动化、免责文化以及协作式的代码质量保障,任何团队都可以构建出更健康的工程环境。
获取《卡乌埃的生活方式》精选离线版——一份全面优化 🍏 健康、💰 财富、❤️ 爱 与 🧘 意义 的实践指南。
当我发布关于美好生活的新随笔、读书笔记和实践指南时接收通知。绝无垃圾邮件——可随时退订。
有任何问题、见解或建议吗?欢迎在下方分享您的想法。评论功能由 GitHub Discussions 驱动(无广告、无垃圾信息)——点击下方的使用 GitHub 登录即可发表评论或互动(注册免费 GitHub 账号不到一分钟即可完成)。
最后更新于 2026年10月11日.
免责声明:本站所有内容仅供信息参考与教育用途,不构成任何医疗、心理、财务、投资、税务或法律建议。此处呈现的观点、整理与见解仅代表我个人,不代表我雇主的立场。书籍、演讲及文章摘要均为独立的教育性评论,其知识产权归原作者所有。本站可能使用 AI 工具辅助编辑、排版与归纳;尽管我们竭力确保准确无误,但仍可能存在疏漏。隐私政策:本站使用第三方服务提供可选的邮件通讯订阅(follow.it)、评论(giscus / GitHub Discussions)以及嵌入媒体(YouTube),这些服务可能会依据各自的隐私政策处理访客的 IP 地址和 Cookie。