朋友给你看三个倒放的杯子,两个杯子下是小石块,另一个杯子下有块巧克力。他让你背转身,把杯子的次序搞乱,然后让你选择一个你认为其中有巧克力的杯子。你选定后,朋友打开另外的两个杯子中的一个,其下是石头,问你是否要改变主意,挑另外的那个杯子?(例子意译自Edward de Bono的著作《Serious Creativity》)
有时候,特别是在动态的开发中,一开始知道的只是个大致或模糊的用户要求,并不知道所有的细节,所以做出的决定也是个大概方向而已。只有在知道进一步的细节后,才能作出更明确的决定,甚至改变原来的方向。这不光需要一个灵活的架构,也需要开发人员拥有一个随时重构或改进的态度或意愿。
俗话说,The devil is in the details,无论是对小项目,还是大项目而言,甚至是企业级的东西也如此。