Design Engineer 是一个容易被误解的职位。最表面的解释,是“既懂设计又会写代码的人”;但在 Vercel,这个角色的边界远不止两套技能的简单相加。
Vercel 的定义是:Design Engineer 把审美判断与技术能力结合起来,深入理解问题,然后能够自主地设计、构建并发布解决方案。真正的变化不在工具数量,而在责任范围——从只负责产品流程中的某一段,转向对最终结果负责。
#漂亮像素只是最外面一层
Design Engineer 当然在意视觉和交互,但一段体验能否成立,还取决于大量用户看不见的工作:
- 交互是否自然,控件是否清楚地暗示了用法;
- 组件和底层 primitive 能否复用;
- 页面速度是否足够快;
- 不同浏览器中的表现是否一致;
- 触摸、鼠标、键盘等输入方式是否都被支持;
- 是否尊重用户的系统偏好;
- 使用辅助技术的人能否顺利完成任务。
这也是 Vercel 对“精致”的理解:它不是给界面增加装饰,而是让视觉、性能、可访问性和真实使用条件同时达到较高标准。漂亮只是用户最先看到的结果,背后还有工程约束、边缘状态和跨平台细节。
#三种工作模式
Vercel 的 Design Engineer 会参与品牌、营销、产品开发和内部设计系统,具体工作大致分为三种模式。
#1. 与设计师共同完成设计
传统流程往往是设计师完成稿件,再把结果交给工程师实现。Vercel 尝试跳过这种机械交接:设计师先画出方向,Design Engineer 再与其一起在 Figma 或代码中迭代,最终设计是在实现过程中共同完成的。
Design Engineer 会参与几个关键判断:
- 某个动画带来的体验收益,是否值得对应的实现成本;
- 一个组件只是一次性需求,还是应该沉淀为可复用能力;
- 设计是否符合 Web 的通用规律和平台约束;
- 哪些探索更适合直接用代码原型验证。
动画、键盘操作和触摸交互尤其适合在浏览器中验证。它们在 Figma 里只能近似表达,重新实现到 Web 时还会经历一次媒介转换。直接用代码探索,可以更早暴露性能、输入方式和真实交互的问题。
这种协作从想法一直持续到生产,中间会使用 Slack 消息、截图、视频、预览链接和 Zoom 沟通。重点不是坚持某种固定流程,而是让反馈尽量贴近真实产物。
#2. 嵌入产品团队
对于持续一个月以上的大型功能,Design Engineer 会进入产品团队,参与完整发布过程。
如果有产品设计师协作,Design Engineer 负责界面实现,其他工程成员负责 API 和基础设施。如果没有设计师,并不意味着其闭门完成全部设计;Design Engineer 会先提出初始方案,再同时向设计师和工程师征求反馈。
这使角色既能独立推进,也不会因为“能设计、能编码”就脱离团队判断。自主性解决的是交付连续性,不是取消协作。
#3. 独立负责较小的用户问题
对于几天到几周可以完成的用户痛点,Design Engineer 可以独立画草图、形成方案、向团队公开讨论、吸收反馈并发布。
团队还会主动投入一些由设计驱动的项目。这些工作在普通工程 backlog 中常常因为不够紧急而被延后,例如:
- Geist 字体及其可交互的字形体验;
- 供全公司工程师使用的设计系统文档;
- 用来实验 Web 技术和分享设计资源的设计团队主页;
- Dashboard 中提升生命力和愉悦感的交互细节。
这类项目的共同点,是很难只用单个业务需求衡量价值,却会长期影响产品的统一性、品牌感和使用品质。
#质量优先,但不掉进完美主义
Vercel 给这个团队留出空间,让它可以优先考虑质量而不是数量:交互需要足够顺滑,不能随意掉帧;浏览器之间不应存在明显差异;可访问性也不是发布之后才补的附加项。
但“重视质量”不等于等到完美才发布。Vercel 使用 Iterate to Greatness 的原则平衡商业目标与工艺:先交付真实改进,再持续迭代,不让对完美的追求阻塞价值进入用户手中。
这里的关键是把“质量”理解为持续责任,而不是发布前的一次性验收。Design Engineer 对结果负责,也意味着承认首次发布不会是终点。
#能力模型属于团队,不属于一个全能个体
Vercel 没有为 Design Engineer 规定唯一工具箱,也不认为存在一种最佳出身。不同成员来自不同背景,积累了不同形式的判断力;这种差异本身就是团队执行复杂设计的基础。
整个团队覆盖的能力包括:
- 在 Figma 中设计;
- 直接在代码中设计;
- 编写生产级代码;
- 调试浏览器性能;
- 编写 GLSL shader;
- 撰写产品文案;
- 使用 Three.js 制作 3D 体验;
- 使用 Blender 建模和搭建场景;
- 结合 CGI 与实拍手段剪辑视频。
没有人被要求同时精通全部能力。个人可以独立完成工作,但团队最好的成果仍然来自协作,因为不同人的强项会互相补足。
这也解释了为什么“掌握哪些软件”不是判断 Design Engineer 的好问题。Vercel 明确强调结果而非流程或工具:工具会变化,媒介会变化,真正稳定的是能否理解约束、做出取舍并把体验交付到生产。
#这个角色真正消除的是交接损耗
Design Engineer 并不是用一个人替代设计师和工程师,也不是要求所有成员都变成全栈通才。它解决的是产品开发中一个长期存在的问题:设计意图、技术现实和最终体验常常被分配给不同角色,信息在每次交接中逐渐损耗。
当同一个角色能够理解审美目标、平台约束和生产代码,就能更早发现不必要的动画、错误的复用边界、只能在真机上暴露的输入问题,以及设计稿无法表达的性能成本。讨论不再围绕“有没有还原稿件”,而是回到“用户最终得到的体验是否成立”。
因此,Vercel 对 Design Engineering 的总结不是“同时成为设计师和工程师”,而是从拥有流程中的一个环节,转向拥有结果。
这也是这个角色最值得借鉴的部分:技能组合只是手段,完整责任才是定义。