第1988篇:跨界学习的价值——AI工程师向产品、设计、运营借鉴的智慧
第1988篇:跨界学习的价值——AI工程师向产品、设计、运营借鉴的智慧
有一次我参加一个产品评审,一个产品经理在白板上画了一张用户旅程图,旁边是用户在每个阶段的"情绪曲线"——在哪里感到困惑,在哪里感到满足,在哪里会想放弃。
我当时脑子里的第一个反应是:我写了十年代码,我知道系统是怎么工作的,但我从来没有用"用户情绪曲线"这个视角想过任何一个功能。
然后我想到:如果我用这个视角来设计API,会怎样?如果我把使用我接口的下游开发者也当成"用户",去画他们在接入我API时的情绪曲线——在哪里困惑,在哪里卡住,在哪里想骂人……这个视角会让我设计出更好的接口吗?
答案是:会。而且是显著地好。
这是我开始认真向其他领域借鉴的起点。
为什么工程师需要跨界学习
很多工程师有一种隐性的想法:技术本身就是一个足够深的领域,精通技术已经很难了,其他领域的知识和我关系不大。
这个想法在某个阶段是成立的,但到了一定程度就会成为天花板。
原因是:软件最终服务的是人,而人不只是技术问题。一个系统的成功,取决于它是否真正解决了用户的问题,是否被人愿意使用,是否在商业上可持续。这些问题,纯粹的技术视角是回答不完整的。
在AI时代,这个问题变得更加尖锐。AI应用的核心挑战往往不是技术,而是:
- 这个AI功能是否真的是用户需要的?
- 用户如何感知到AI的能力边界,在哪里会过度信任?
- AI的输出如何呈现才能被用户有效使用?
- 这个AI功能在商业上怎么说得通?
这些问题,产品经理、设计师、运营人员比工程师有更成熟的思考框架。
从产品思维借鉴:用户价值高于技术优雅
产品人有一个核心执念:用户价值。不是功能是否技术上可行,不是实现是否优雅,而是:这个东西,真的给用户带来了什么价值?
这个执念工程师往往缺乏,因为工程师本能地更关注"做对了没有"——代码是否跑通了,性能是否达标,系统是否稳定。"做对了"和"给用户带来价值",不是一回事。
我从产品人那里借鉴到最有用的一个思维工具是:Jobs to Be Done(用户雇用产品来完成的任务)。
这个框架的核心问题是:用户"雇用"这个功能来完成什么任务?他们在没有这个功能之前,是怎么完成这个任务的?
举个AI工程的具体例子:我曾经做过一个代码注释自动生成功能,技术实现很不错,准确率很高。但上线后用的人很少。
套用JTBD框架:用户真正需要完成的任务是什么?不是"生成注释",而是"快速理解别人的代码"。他们现在怎么完成这个任务?直接读代码,或者问写代码的人。
这时候问题就清楚了:我做的功能生成了注释,但用户实际阅读注释的场景是什么?他们是在review别人代码的时候才需要,而那个场景通常是在PR界面,而不是在编辑器里。功能放错了地方——不是功能不好,是场景不对。
如果我早点用这个框架来想,可能就不会犯这个错误。
从设计思维借鉴:可用性比完整性更重要
设计师有一个让我印象深刻的原则:简约不是减少功能,而是减少认知负担。
工程师设计的系统往往倾向于"功能完整"——我把所有可能需要的参数都暴露出来,所有可能的配置项都提供,所有边界情况都处理。这在系统内部是对的,但在系统的接口层,往往是反用户的。
设计师会问:在这个场景下,用户需要做决策的地方有几个?每增加一个需要用户决策的点,认知负担就增加一些,直到用户不想用了为止。
我把这个思维用在API设计上,变成了一个原则:默认值的设计应该覆盖80%的场景,让用户在最简单的调用下就能得到"够用"的结果,只有在需要精细控制的时候才去调参。
对比两个API设计:
设计A(工程师思维):
// 调用者需要理解并设置6个参数
RagResult query(
String question,
int topK,
double minScore,
boolean rerank,
String embeddingModel,
SearchMode searchMode
);设计B(设计师思维):
// 最简调用就能用,高级用户才需要Builder
RagResult query(String question);
// 需要精细控制时
RagResult query(String question, QueryOptions options);
// QueryOptions提供流式builder
QueryOptions options = QueryOptions.builder()
.topK(10)
.minScore(0.7)
.rerank(true)
.build();设计B的使用门槛低得多,但功能一点没少。这就是设计思维:不是减少功能,而是把认知负担从"必须面对"变成"按需面对"。
设计师还有一个我觉得特别有价值的方法:可用性测试——把你的设计给一个真实用户用,然后闭嘴看他用。不要解释,不要引导,就看他在哪里卡住了,在哪里感到困惑。
工程师很少做这个,因为我们倾向于假设自己知道用户会怎么用。但实际上,用户的使用方式往往让人大跌眼镜。
从运营思维借鉴:数据说话,但数据会说谎
运营人员有一种本能:量化一切。用户留存率、转化率、活跃度、点击率……他们对数据的敏感度让很多工程师汗颜。
但更好的运营人员不只是看数据,他们还懂得怎么解读数据。
有一次一个运营同学问我:为什么我们的AI聊天功能,用户第一条消息后的流失率这么高?他拿出数据:40%的用户在发出第一条消息后就没有继续对话。
我的第一反应是:AI回复质量有问题?他说:不对,我们A/B了不同质量的回复,差别不大。
他的分析是:用户发出第一条消息,拿到AI回复,然后思考了一下,不知道接下来该说什么——不是AI回答不好,而是用户不知道这个功能能做什么,他们在摸索边界,摸到感觉尴尬就走了。
解决方案:在输入框旁边加几个示例问题,引导用户迈出第二步。
这个分析方法我完全没想到。运营人员对用户行为数据的解读方式,和工程师对系统日志的解读方式,思路是完全不同的。
我从运营那里借鉴的另一个工具是留存分析:不只看"有多少人用",看"用了之后还有多少人回来用",以及"回来用的人和没回来的人,行为上有什么不同"。
这个分析经常揭示的是:你以为最重要的功能,可能不是让用户回来的原因;而某个你没太在意的功能,可能是留存的关键。
从市场营销借鉴:叙事能力
营销人员有一种能力让很多工程师羡慕但又不愿意承认:讲故事。
不是编故事,是把真实的东西讲得有吸引力。
工程师的本能是精确——我们描述一个系统,会尽可能完整准确地描述它的特性、参数、约束条件。这在文档里是对的,但在对外沟通的时候是反人类的,因为没有人有耐心听一个完整精确的技术描述。
营销人员会这样介绍同一个系统:"这个系统让客服团队的工单处理速度提高了40%,让他们可以把时间花在真正需要人情味的问题上。"
同样的技术事实,一个版本是技术描述,一个版本是价值叙事。在和非技术利益相关方沟通的时候,价值叙事要有效得多。
我把这个借鉴到了我的日常工作里:在写技术方案时,开头不再是"本方案使用X技术,实现Y功能",而是"这个方案解决的问题是……,解决之后用户/业务会获得……"。这个小小的结构调整,让方案更容易被非技术的决策者理解和支持。
借鉴的底层方法论
以上的例子,背后有一个共同的学习方法:观察其他领域解决了什么问题,然后问:我的领域里有没有类似的问题?
这种迁移不是直接抄作业,而是把一个领域里成熟的思维框架,翻译到你自己的领域里应用。
一个实用的跨界学习方法:
比如我想向项目管理借鉴,我会:
- 核心问题:如何在不确定的情况下按时交付高质量的结果
- 解决框架:敏捷、看板、风险管理矩阵
- 类比问题:我的代码库里有哪些"高风险"的模块,我有没有在管理它们的不确定性
- 迁移应用:为高风险模块建立一个简单的"风险日志",记录已知的风险点和缓解措施
- 沉淀工具:风险驱动开发,在写新功能前先问"这里的风险点是什么"
一个实用的跨界学习清单
以下是我觉得对AI工程师最有价值的几个跨界学习方向:
产品管理(推荐):
- 用户研究方法(访谈、可用性测试)
- JTBD框架
- 优先级框架(RICE、ICE等)
- MVP思维
UX/交互设计(推荐):
- 认知负担理论
- 信息架构
- 错误状态设计
- 渐进式披露
数据分析(强烈推荐):
- A/B测试设计和解读
- 留存分析
- 漏斗分析
- 因果推断基础
认知科学(不常提但很有用):
- 双系统理论(System 1/2)
- 认知偏见
- 决策理论
叙事与传播(对AI工程师尤其有用):
- 技术写作
- 演讲结构
- 视觉化表达
跨界学习的边界
最后说一个重要的限制:跨界学习是补充,不是替代。
你向产品人借鉴用户价值思维,不是要变成产品经理。你向设计师借鉴可用性思维,不是要变成设计师。你的核心身份依然是工程师,你的核心价值依然是工程能力。
跨界学习的目的是:让你在做技术决策的时候,视野更宽,能看到更多维度。一个只懂技术的工程师和一个懂技术又懂产品、设计视角的工程师,做出的技术决策质量是不一样的。
不是因为后者学了更多,而是因为后者在做技术决策时,会同时考虑"这个技术是否解决了用户真正的问题"、"这个接口设计是否让使用者的认知负担最小化"、"这个功能上线后我如何知道它是否有效"。
这些问题,是纯技术视角看不到的。
