关于最小化设计(尽早实现)的一些想法

    当提到最小化设计或者尽早实现时,保守派最强有力的反击就是“没有设计就没有编码”“最小化设计就是没有整体设计”“尽早设计会失去统一过程的控制”,但是事实到底是不是这样呢?问题(或者争论)的实质在于到底什么是最小化设计。

我们先来看看最小化设计的描述:

1、最小化设计要求尽早的实现用户所想要的优先级最高的需求点。

2、尽快的让用户看到产品,以便确定其是否为用户想要的,并带着用户的反馈开始下一次设计。

3、每一次设计的依据都只是当前用户暂时(即以设计开始时用户要求为准)的需求(包含上一次设计的反馈信息)。

以上描述只为我们提供了一个过程,而其中的前提和条件并没有澄清,争论恰恰起源于人们在各自前提下对描述的理解,所以为了平复这场误会,有一些前提需要明确。


首先,最小化设计是建立在拥有完善条件基础上的,包括:及时的用户反馈、频繁的集成和交付、无阻力的持续改进和需求变化、积极的团队、完备的回归测试。如果没有这些条件做保证,最小化设计将会失去动力和灵魂。


其次,最小化设计并不是没有设计。它要求一个尽量开放的抽象接口(设计的重点)和尽量封闭的具体实现(够用就行的实现)。这样会在获取扩展性的同时,尽量节省实现的时间(即减少返工损失)。


再者,统一过程的最终目的是让一次开发过程可控,而最小化设计是让开发过程粒度更细,以获取最灵活的控制,它只是将形式化的资源浪费降至最低,把时间用在刀刃上,不与统一过程相抵触。


最后,最小化设计是一种设计策略和建议,并非万金油。

实际上,很多的争论都是来自前提不明、对对方理解不够深入,所以遇到此类问题,我们要做的是把双方的本质澄清,以消除误会所在。

以上是最近看到某些混战之后的一些思考,如有差池,望各位不吝赐教。

标签:
文章分类 openparty

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

点赞
如果您觉得很赞,我将非常乐意接受虚拟币的捐赠,以示您对我的肯定。

比特币钱包地址:
1PqpqA8FyH3NbfCrbcRd1YxQk3LEsSEYDV
莱特币钱包地址:
LRTdmovGGVEHCKWz7JdL9aiB7VZkuNycJf
站点勋章
网站统计