网上有很多关于简单设计的争论. 观察了一下发现大家其实在说两个问题:一个是作为结果的简单设计,一个是作为过程的简单设计. 说一下我的理解.
做为结果的简单设计是这么一种设计,它能被几乎所有人理解, 但只有极少数人能做出. 或者反过来说也可以. 简单设计是一种只有极少数人能做出的设计,但设计一旦做出后,
如果team得到了一个大多数人都理解的“简单”设计, 它是经验较少的人和经验较多的都会做出的, 那么要么是问题域本身很简单, 要么是所有人都没有真正理解问题域; 当然也有可能是team应用了后面将要说的作为过程的简单设计.
做为结果的简单设计是很稀少的, 否则乔布斯, 牛顿和爱因斯坦也不会这么经典. 很多项目直到结束都未必得到一个简单的设计. 但所有项目都可以尝试的是作为过程的简单设计.
做为过程的简单设计是这么一种过程: 因为清楚的知道做为结果的简单设计是如此难以获得并深刻的理解难
一点都不简单.