沟通鸿沟:为什么资深开发人员难以阐述其价值

沟通鸿沟:为什么资深开发人员难以阐述其价值

在快节奏的软件开发世界中,定义产品的人与构建产品的人之间存在着一种反复出现的摩擦。对于产品经理或 CEO 来说,主要的敌人是 uncertainty(不确定性):用户会想要这个吗?这个功能是否有市场? 对于资深开发人员来说,主要的敌人是 complexity(复杂性):这个新功能会让系统变得难以维护吗?它会引入导致付费客户服务崩溃的 bug 吗?

这种错位不仅仅是技术分歧;它是一种沟通失败。当资深开发人员试图保护系统免受臃肿的影响时,他们通常使用“technical debt”(技术债)和“maintainability”(可维护性)的语言,而业务部门则在使用“speed to market”(上市速度)和“market validation”(市场验证)的语言。

业务的两个循环

要理解为什么会发生这种沟通中断,我们可以将业务视为通过两个同时运行的循环进行运作:

1. 不确定性循环 (Speed)

这个循环由市场营销人员、销售团队和产品经理驱动。他们的目标是尽可能快地学习。他们将一个想法推向市场,收集反馈,并进行迭代。在这个循环中,速度是唯一重要的指标,因为你交付得越快,减少不确定性的速度就越快。

2. 稳定性循环 (Scale)

这是资深开发人员所处的循环。一旦产品有了付费客户,目标就会转向服务的保证。优先级是保持系统可理解、可调试和稳定。在这个循环中,每一行新代码都是一个潜在的负债。

当这两个循环碰撞时,资深开发人员往往表现得像一个“blocker”(阻碍者)。他们对新功能的需求做出回应时,会发出关于复杂性和维护成本的警告。然而,正如文案撰写者可能会观察到的那样,你不能用你自己的问题来解释掉别人的问题。业务部门并不担心复杂性;他们担心的是不确定性。

弥合鸿沟:使用业务的语言

如果业务部门想要减少不确定性,那么资深开发人员的专业知识应该被框架化为实现该目标的工具。资深开发人员拥有的最宝贵的技能不是编写复杂代码的能力,而是 avoid writing it entirely(完全避免编写它)的能力。

与其基于技术复杂性反对一个功能,资深开发人员可以提供一条通往相同答案的更具资源性的路径。例如:

  • 与其构建一个完整的分析套件: “我们可以先从一个图表和一个指标开始,看看这是否甚至是一个趋势吗?”
  • 与其构建一个新功能模块: “我们可以在现有的 UI 中放一个按钮,看看是否有人先点击它吗?”

对于资深开发人员来说,“神奇的短语”是:“我们可以尝试一些更快的方案吗?”

这个短语承认了业务对速度的需求,同时允许开发人员通过减少和复用来发挥其专业知识。它将开发人员从一个“gatekeeper”(把关人)转变为一个“accelerator”(加速器)。

AI 因素:加速器还是破坏者?

AI agent 的兴起加剧了这种紧张关系。AI 是“不确定性循环”的一个不可思议的工具;它可以生成原型和功能,速度是以前无法想象的的。 然而,AI 是“稳定性循环”的一个“彻头彻尾的破坏者”。它可以产生“vibe code”——看起来正确并在短期内可以运行的代码,但缺乏连贯的思维模型,使得调试或扩展几乎变得不可能。

正如一位社区成员所指出的,AI 允许“火箭速度”开发,但它经常将这些火箭捆绑在摇晃的基础之上。危险在于,业务部门可能会误将生成的速度视为进步的速度,从而忽略了系统中一个没人真正理解的系统所带来的长期成本。

建议的解决方案:速度与规模的拆分

为了管理这一点,一些人建议将系统解耦为两个版本:

  1. 速度版本 (The Speed Version): 一个快速原型环境,AI agent、初级开发人员和产品经理可以在其中进行疯狂的迭代以寻找产品市场契合度。这里的目标不是稳定性,而是学习。
  2. 规模版本 (The Scale Version): 一个由资深开发人员设计的、后续的、稳定的系统版本。一旦一个功能在“速度”版本中得到验证,它就会被有意识地重新工程化,以实现稳定性、稳定性、可扩展性和可理解性。

通过明确地将“vomit draft”(草稿)与“edited manuscript”(编辑后的稿件)分开,公司可以满足快速实验的需求,而不牺牲平台的长期健康。

反方观点与细微差别

虽然“避免复杂性”的准则是一个资深开发人员的标志,但社区提出了几个重要的注意事项:

  • Context Matters (上下文很重要): 资深开发人员为医疗设备构建固件(firmware)无法承受与构建 CRUD SaaS 应用的人相同的“move fast and break things”方法。 “acceptable complexity”(可接受的复杂性)的定义因领域而异。
  • The Incentive Problem (激励问题): 通常,对复杂性的追求并非源于不确定性,而是源于内部政治。一些领导者可能想要复杂的架构,因为它们在投资者面前看起来很体现在,而不管实际的效用。
  • The Learning Gap (学习差距): 如果“速度”版本完全由 AI 和初级开发人员处理,那么下一代开发人员将永远无法学习如何构建稳定、可扩展的系统。专业知识不仅仅是一套事实,而是一个通过在维护复杂系统过程中所经历的挣扎而建立的“world model”(世界模型)。

最终,资深开发人员的角色正在从一个编写者转变为一个 editor(编辑)。在一个 AI 生成代码无限的时代,最关键的技能不再是生产能力,而是辨别什么是必要的、什么是稳定的、以及什么是值得保留的。

Sources