FDE Times 数据在招 FDE 职位 863▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 71在招公司 181支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

独自驻场的 FDE,为什么该读《程序员修炼之道》

书中“提供选择,而非借口”一条,正是没人兜底时 FDE 报告坏消息的方式。

封面: The Pragmatic Programmer
The Pragmatic Programmer · David Thomas · 封面图片:Open Library
分享微博

要点速览

  • 读 20 周年纪念版(2019 年,320 页):这是一次重写,加入了新的提示和主题,不只是重印
  • 值得记住的三个观点:提供选择,而非借口;不留破窗;尽早做出端到端的曳光弹
  • 这本书的价值在于习惯,所以要记录自己如何实践,为简历和面试积累素材
前后对比图。左侧灰色背景上只有一个借口:“数据太差,没时间”。右侧是三个选项:只处理新扫描件;全部处理并标记交人工复核(橙色高亮,客户的选择);截止日期推迟一周。
把“提供选择,而非借口”用于一批旧扫描合同档案须在周五前完成的场景:不说做不到,而是给客户三个选项,由客户决定。

《程序员修炼之道》(The Pragmatic Programmer)开篇不久有一节叫“我的源码被猫吃了”(The Cat Ate My Source Code)。前线部署工程师(FDE)在客户面前恰恰不能找这种借口,因为现场没人会替你担责。

这本书由 David Thomas 和 Andrew Hunt 合著,1999 年 10 月首次出版。出版社明确列出的要点之一,是对自己的工作和职业负责。这也是 FDE 独自面对别人的系统时,首先要学会的事。

如果你是有两到八年经验的开发者,正考虑转做 FDE,这本书值得排在许多技术书之前读。它不教工具,只教习惯,而独自工作时能否扛住,靠的正是习惯。

建议读的版本是 The Pragmatic Programmer, 20th Anniversary Edition: your journey to mastery(Addison Wesley,2019 年 9 月,320 页)。这一版是重写,新增了提示和主题,全书都有修订。这本书并不构建系统理论,而是汇集了许多简短的建议,不绑定任何语言、框架或方法论。

观点一:提供选择,而非借口

FDE 用得最多的一条提示,大概是“提供选择,而非借口”(Provide options, not excuses)。它把上面说的“负责”落到了具体行动上。

设想一个场景:客户希望周五前让一个智能体读完全部扫描合同档案,但较早的扫描件光学字符识别(OCR)效果很差。如果你只说“数据太差,赶不上”,那就是在找借口。

带着三个选项去谈就不一样了:只处理较新的扫描件;全部处理,但把低置信度结果标出来交给人工复核;或者把截止日期推迟一周,先清洗数据。这时你是在帮客户做决定。

每遇到一次这样的情况,就在工作日志里记下来,每次大约三行。

面试时,这条日志可以改写成 STAR 回答。情境(Situation):扫描合同档案过旧,赶不上演示截止日期。任务(Task):周五前交付结果。行动(Action):提出三个方案,并说明各自的代价。结果(Result):客户选择人工复核方案,演示如期进行。

对应的简历条目可以写成:“旧扫描件阻碍试点时,提出三种范围取舍方案;在原定演示日期交付人工复核方案。”这样一行字既体现了决策,也体现了结果,而不只是罗列用过的技术。

观点二:不留破窗,即使在别人的系统里

书的前部有一节叫“软件的熵”(Software Entropy),由此引出提示“不要留破窗”(No broken windows):看到糟糕的设计或代码,立即修复。Dan Lebrero 的总结把它编为第 5 条,其他总结的编号有所不同。

对 FDE 来说,难点在于破窗通常在客户的系统里。假设你发现一个抽取、转换、加载(ETL)脚本里硬编码了密码。

你可能还无权修改,但应当记下来,告诉负责人,并在当天提出修复方案。第一处破损没人理,后面的破损就更容易被忽视。

观点三:第一周就做出曳光弹

Lebrero 总结中的第 20 条是“曳光弹”(Tracer Bullets),也叫行走骨架(walking skeleton)。做法是先搭一条贯穿整个系统、端到端跑通的细路径,再逐步充实各个部分。

放到客户现场,意思是第一周就要让一种文档类型走完全程:从上传,到客户自己屏幕上出现答案。

在真实数据和真实基础设施上运行,能尽早暴露防火墙、访问权限、特殊格式之类的问题。等到第六周才发现,就太晚了。

用错了会怎样?

这三个习惯很容易只做一半。最常见的错误是给出选项却不说代价:“全部处理但做标记”听起来不错,可如果不说明谁来复核、要花多少小时,客户仍然没有足够信息做选择。

第二个错误是未经许可就修客户的破窗。直接给那个 ETL 脚本推补丁,可能弄坏一个你不知道的任务,好心变成事故。在别人的系统里,“立即修复”应当理解为立即报告、立即提出修复方案。

第三个错误是在样例数据或自己的机器上做曳光弹。这样它就不再是曳光弹了,因为它恰好绕开了你需要尽早发现的问题。

应该按什么顺序读?

先通读“务实的哲学”(A Pragmatic Philosophy)。这部分共七个短节,从对职业负责、不找借口,到软件的熵,再到够好的软件、知识组合和沟通。客户想在过短的时间里拿到完美结果时,“够好的软件”(Good-Enough Software)一节尤其有用。

接下来,在接手第一个项目前,读关于曳光弹的部分。开始和客户团队合作后,再读“务实的项目”(Pragmatic Projects),这部分讲团队协作和让用户满意。

“做变革的催化剂”(Be a Catalyst for Change)这条提示适合这个阶段:与其强迫客户团队改变工作方式,不如让他们看到新方式是什么样子,让他们自己想改。

最后是“定期投资你的知识组合”(Invest Regularly in Your Knowledge Portfolio)。每个 FDE 项目都逼你学一个新领域,所以要把记录所学当作定期投资,而不是等有空再做。

这本书最值得重读的时候,正是你最需要它的时候:独自站在别人的系统前,需要一个比“我的源码被猫吃了”更好的回答。

这篇文章对你有帮助吗?

4 个信源
路线图上的下一篇 · 阶段 1: 基础认知Google 培训千名 FDE,却全归 Accenture这是 Accenture 不到半年内第三次与平台厂商合作 FDE,而 Gemini 证书无法说明谁对客户结果负责。