核心问题
软件工程到底在做什么?
这套笔记先采用十维框架,把软件工程理解为一种 world-building:构建一个可执行世界,并长期照看它。
另一套以“逻辑学、模型思维、商业理解”为核心的框架后续会单独展开。这里先完成十维版。
十个维度
Philosophy -> 定义世界:什么东西存在?
Epistemology -> 验证世界:什么是真的?
Ethics -> 约束世界:什么被允许?
Aesthetics -> 整理世界:什么是优雅?
Politics -> 组织世界:谁来决定?
Economics -> 取舍世界:什么值得?
Psychology -> 理解人:人会如何误判?
Sociology -> 理解群体:群体如何演化?
History -> 理解时间:系统为何成为今天这样?
Systems -> 照看整体:复杂系统如何持续适应?
下降路径
一开始我们以为软件是代码。然后发现软件是模型,是证据,是约束,是秩序,是权力,是成本,是人的认知,是群体记忆,也是历史沉积。
所以成熟的软件工程不是只问:
这个功能怎么实现?
还要问:
它定义了什么世界?
我们怎么知道它对?
它允许了谁的权力?
它是否优雅可改?
谁负责它?
它值得现在做吗?
真实的人能维护它吗?
团队能传承它吗?
它如何带着历史演化?
整个系统是否有韧性?
最终心法
软件工程不是写代码,而是构建一个可执行世界,并持续定义它、验证它、约束它、整理它、组织它、取舍它、理解构建它的人、理解维护它的群体、理解它的历史,最后把它作为复杂系统照看下去。