夜雨聆风学习资料网

ARTICLE · 1007208

从'世界观'视角看软件开发方法论(上):你的认知起点,决定了你的技术路线

从'世界观'视角看软件开发方法论(上):你的认知起点,决定了你的技术路线
同一个业务需求,两个团队给出了截然不同的方案。
A团队说:“用DDD(领域驱动设计),先做事件风暴,建立统一语言。”
B团队说:“直接建表,快速CRUD(增删改查),敏捷迭代就行。”

谁对?谁错?

表面上是技术选型的差异。但深挖下去,这两种选择背后藏着完全不同的认知世界的方式。
  • 一个倾向于符号交互论——认为意义源于社会互动,业务知识在对话中涌现。
  • 另一个倾向于结构主义——认为世界由稳定实体和关系构成,业务知识藏在数据关联里。
你以为你在做技术选型,其实你在做世界观选择。
而且,这个选择大部分时候是隐性的、不自知的。就像一个人习惯用右手,他从不会每天早晨问自己“今天该用哪只手吃饭”。
条条大路通罗马。但很少有人追问:为什么明明条条大路都能到,我们却总是固执地走上同一条路?
今天这篇文章,将为你拆解这个谜题的上半部分。

一、元认知决策:你还没意识到,就已经做了选择

我们常说“选择大于努力”。但选择本身是怎么来的?
想象你走进一家从未去过的餐厅。菜单上有川菜、粤菜、西餐。你几乎在几秒钟内就做出了选择——也许因为昨天刚吃过川菜想换口味,也许朋友推荐了招牌菜,也许今天下雨你想喝碗热汤。
这个过程看似随意,实则包含大量隐性推理:身体状态、过往经验、环境线索、天气……全部被整合,输出一个“感觉对了”的结果。
团队选择开发方法论的过程,与此惊人相似。
当一个团队决定采用DDD、TDD(测试驱动开发)还是数据模型驱动时,他们并不是坐在会议室里拿着Excel逐项打分。相反,他们是基于以下因素做出的“综合感知”:
  • 业务领域的复杂性:规则多不多?变不变?
  • 团队自身的能力:有没有领域专家?沟通成本高不高?
  • 时间压力:老板说下周就要上线
  • 过去的成功经验:上次用这套成了,这次还用
  • 行业风气:大家都在搞微服务,我们也搞
这些信息像数据一样输入团队的“集体大脑”,然后输出一个默认倾向。整个过程是隐性的、直觉化的、经验驱动的。
我把这个层次称为“元认知决策”——它发生在所有显性讨论之前,决定了后续一切决策的起点。
还有一种常见的情况:企业的选择并非来自团队自主决策,而是来自预设的流水线。
很多团队接手的是一个已经运行多年的开发体系——技术栈、架构风格、协作模式都是现成的。新成员进来,只能遵循既定轨道。这种“历史惯性”本身就是一种强大的元认知决策,它锁定了团队的世界观,除非有重大变革动力,否则很难打破。

二、认知起点:三种常见的开发过程认知方式

元认知决策的结果,是团队默认采用了一种“认知世界的方式”。
在开发过程方法论这个层面上,我归纳了三种常见的认知方式。它们处在同一维度(即“如何理解问题域的本质”),彼此独立、互不重叠,且基本完备:
  • 结构主义
    认为世界由稳定的实体和关系构成→ 倾向数据模型驱动、ER建模、DB-First
  • 行为主义
    关注可观察的刺激-反应序列→ 倾向TDD、BDD、事件驱动
  • 符号交互论
    意义在社会互动中产生→ 倾向DDD,通过统一语言来提升协作中的知识传递的效率和完整性、使用事件风暴等方式挖掘知识
这三种认知方式没有高低之分。结构主义非常适合查询密集型、规则稳定的业务;行为主义特别适合需要严格验证行为的场景;符号交互论则擅长处理业务规则复杂、需要多方对齐的领域。
问题在于,大多数团队从未意识到自己有认知偏好,更不知道这个偏好正在左右他们的技术路线。他们以为自己是在“理性选择”,实际上只是在重复自己熟悉的方式。

下篇预告:选定了认知方式就够了吗?不,你还需要选择视角。同样一件事,结构主义者看到的是数据,行为主义者看到的是动作——视角不同,萃取到的信息也有差别。

相关学习资料