高热度讨论表明设计师用Claude进行设计比用Figma更高效,反映AI对前端/设计工作流的深度改变。
很长一段时间里,我都对 LLM 持怀疑态度——每次尝试使用它们,结果总是令我失望。去年,我试过用 Copilot 和 Cursor 修改自己开发的一款游戏,但它们都没能生成可以正常运行的改动。在上一份工作中,我也试过让 Gemini 梳理产品简报的大纲、生成线框图,最后却把产出的东西全部扔掉了。每次使用 LLM,我让它们做的都是自己原本就很擅长的事情,而它们做得还不如我。
今年夏天加入 Jane Street 之后,我发现 AI 的帮助已经变得不可或缺。这里有太多东西是我从未接触过的,也有太多东西是我还不擅长的,比如 OCaml 和 Bonsai。但最令我意外的是,AI 甚至极大地改变了我最擅长的事情:我的设计工作流。
过去,我需要费力编写规格文档、制作 Figma mockup、撰写提案,再和开发人员一起审查实现。现在,我发现自己会直接构建功能原型,让它准确实现我脑海中的想法。实际的工作流程大致如下:
写一段文字,描述问题和我的方案
打开编辑器,启动构建任务、服务器和 Claude,把刚才写的描述作为 prompt
先实现基本功能,向自己证明这件事确实可行
按照自己的意愿不断迭代
把改动推送到开发环境,询问用户的看法
提交一个 feature(我们内部对 pull request 的称呼),让它的外观和行为都完全符合我的预期
与 mockup 和文档相比,直接在真实代码库里构建功能原型,几乎在各个方面都让我感觉更好。以我最近制作的一个原型为例,它为 JSQL 输入框加入了 LLM prompting 功能(JSQL 是一种内部 SQL 方言,我们的许多面向用户的工具都会使用它)。这个原型真的可以运行,我花了好几天实际使用并测试它。Claude 让我可以自由地、无限次地迭代;即使我第 50 次改变主意,或者只要求一个很小的调整,它也毫不介意。我改进了 Submit 按钮,添加了键盘快捷键,调整了文案和 prompt,还加入了生成式确认消息。在我上一份工作中,这些工作流改进需要工程师和设计师来回沟通数天甚至数周才可能完成,更有可能的情况是,它们根本不会发生。
投入到这个功能上的所有精力,都用来改进真正的产物了,没有浪费在创建 Figma 组件、整理文档格式之类附带的中间工作上。
我花了一段时间才摸索出这套工作流。去年夏天刚加入公司时,我只会用 AI 处理规模较小的任务,比如修复 UX 中那些虽小却恼人的问题。对于更大的想法,我仍然会使用 Figma 和文档;当我尝试用 Claude 完成这些工作时,它失败了。
但在过去两个月里,我需要打开 Figma 的场景已经断崖式减少。或许是因为模型有所改进、我自己变得更加熟练,也或许是因为我会谨慎地选择合适的任务范围——现在,AI 已经可以处理大型任务了。它不只是能实现 JSQL prompt,我还用它制作了另外六七个原型,涉及面向用户的功能、数据模型和库的改动,其中一些 diff 超过了 2000 行;我也会先在 Figma 中完成全新应用的设计,再用它实现交互式原型;对于某些新应用,我甚至会完全跳过 Figma,从一开始就和 Claude 一起迭代视觉设计。
作为一名设计师,这让我获得了更强的自主能力。工程师有了想法之后,可以自己做出能够运行的概念验证;设计师却必须说服其他人替我们把它做出来。对于“直接在 JSQL 输入框中使用 LLM prompting”这样的想法,我提出的方案在一开始甚至无法确定是否可行;让别人为此构建原型,可能只是在浪费对方的时间。还有些时候,我提出的方案可能并没有明确满足某种用户需求。用 Claude 把这些想法变成现实之后,其他人评估它们就容易多了——直接上手使用即可。
但这也有一个缺点:在这套工作流中,交到 reviewer 手上的已经是一个完全成形的功能。这是否意味着,他们对功能本身没有任何发言权,只需要审查代码?Review 并不是最有趣的工作——放到设计领域,就相当于 PM 递给你一份非常详细的线框图,然后要求你把它做得好看。我希望自己的方案尽可能清晰和完整,但也仍然希望工程团队的同事能像对待 Figma mockup 一样对待它,把它视为一个可以和我一起在设计空间中持续迭代的东西。
目前,我们的解决办法只是换一种方式看待这些 feature。我会在描述中写一段简短的提醒:原型是一份仍在演进的提案文档,其中的代码可以随时丢弃,而 reviewer 的职责是对设计和用户体验提出反馈。最终,reviewer 仍然会接手这个想法,在另一个 feature 中重新实现;他们会参考原型,但生产代码由他们全权负责。在实践中,我们仍在摸索怎样做才既合理,又能让参与者感觉舒服。
我还有另一个担忧:和 Claude 一起设计,可能会让我无法进入流畅、富有创造力的思维状态,而被困在迭代式思维中,受限于那些我认为 Claude 能够产出的结果。对于成熟工具来说,这没有问题,因为相关改动本来就是渐进式的;但在开发新事物时,这可能会让我错过一些想法。
这是一种人们早已熟悉的矛盾。2011 年,我刚开始职业生涯时,业界经常讨论设计师是否应该编程。批评者认为,一旦开始编程,你就不太可能再对一个想法做出大幅度修改。但我喜欢制作网站,也喜欢编程,所以一直都在写代码。后来,React 之类的前端框架逐渐普及,前端开发也变得更加复杂,我和其他人一样,决定走向专业化。我仍然会用 React 开发个人项目——这当然有助于我和开发人员沟通——但工作中的绝大部分时间,我都花在 Figma 和文档里。
如果我是在 LLM 出现之前加入 Jane Street,我想自己只会更深地困在 Figma 里。对于 JavaScript,我至少还有一些经验;OCaml 和 Bonsai 对我来说却完全陌生,要在技术层面作出贡献,感觉遥不可及。但现在,我重新开始亲手创造真正的产品,再次回到这种媒介中工作的感觉实在太棒了。我比以往任何时候都更加自由,可以放手尝试各种想法。