核心问题

软件工程到底在做什么?

这套笔记先采用十维框架,把软件工程理解为一种 world-building:构建一个可执行世界,并长期照看它。

另一套以“逻辑学、模型思维、商业理解”为核心的框架后续会单独展开。这里先完成十维版。

十个维度

Philosophy   -> 定义世界:什么东西存在?
Epistemology -> 验证世界:什么是真的?
Ethics       -> 约束世界:什么被允许?
Aesthetics   -> 整理世界:什么是优雅?
Politics     -> 组织世界:谁来决定?
Economics    -> 取舍世界:什么值得?
Psychology   -> 理解人:人会如何误判?
Sociology    -> 理解群体:群体如何演化?
History      -> 理解时间:系统为何成为今天这样?
Systems      -> 照看整体:复杂系统如何持续适应?

下降路径

一开始我们以为软件是代码。然后发现软件是模型,是证据,是约束,是秩序,是权力,是成本,是人的认知,是群体记忆,也是历史沉积。

所以成熟的软件工程不是只问:

这个功能怎么实现?

还要问:

它定义了什么世界?
我们怎么知道它对?
它允许了谁的权力?
它是否优雅可改?
谁负责它?
它值得现在做吗?
真实的人能维护它吗?
团队能传承它吗?
它如何带着历史演化?
整个系统是否有韧性?

最终心法

软件工程不是写代码,而是构建一个可执行世界,并持续定义它、验证它、约束它、整理它、组织它、取舍它、理解构建它的人、理解维护它的群体、理解它的历史,最后把它作为复杂系统照看下去。