主要观点:
- 认为精益软件开发存在错误,软件开发不应类比制造业,软件与制造在成本、可变性等方面有很大差异。
- 软件开发更像是设计“工厂”(程序),开发者是“工厂”的设计者,而非生产者,目标是找出用户需求并打造有价值的产品。
- 以 GUI 为例,说明用户体验难以准确把握,软件开发是一个不断尝试和迭代的过程,而不是一次性制造。
- 强调 mental model(对软件开发的认知模型)的重要性,不同的认知模型会导致不同的管理和行为方式。
关键信息:
- “Pipes and Filters”等架构模式在编程中常见,如 Unix/Linux 命令行等,在软件开发中广泛存在。
- CI/CD 管道是类似“工厂”的架构,体现了 DevOps 的理念。
- 软件开发过程中,开发者需深入理解上下文,通过不断尝试和反馈来确定用户需求,如制作定制西装。
- 软件成本主要在首次制作,后续复制成本低,且可长期更改,与制造业不同。
- 用户对 GUI 的需求难以准确描述,软件开发过程充满反复和压力。
重要细节:
- 心理学中的“schema”与编程中的模式概念不同。
- 在“Pipes and Filters”模式中,输入和输出在形状上相同但意义不同。
- 在“Pads, Sources and Sinks”等模式中,节点可有多输入多输出,且输入输出不一定可自由组合。
- 在 Triple Buffering 中,通过两个节点保证图形卡获取完整帧,避免延迟和卡顿。
- 软件开发中的“浪费”概念主观且因对软件开发的认知不同而不同。
- 作者多年来的经验表明,软件开发是一个不断尝试和迭代的过程,与精益软件开发的理念不同。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。