细节、细节

朋友给你看三个倒放的杯子,两个杯子下是小石块,另一个杯子下有块巧克力。他让你背转身,把杯子的次序搞乱,然后让你选择一个你认为其中有巧克力的杯子。你选定后,朋友打开另外的两个杯子中的一个,其下是石头,问你是否要改变主意,挑另外的那个杯子?(例子意译自Edward de Bono的著作《Serious Creativity》)

一开始选时,你知道猜中其下为巧克力的杯子的机率为1/3。朋友显示那个其下为石头的杯子后,从表面上,你猜中的机率变成1/2,好像没有改变的必要,是这样么?

有时候,特别是在动态的开发中,一开始知道的只是个大致或模糊的用户要求,并不知道所有的细节,所以做出的决定也是个大概方向而已。只有在知道进一步的细节后,才能作出更明确的决定,甚至改变原来的方向。这不光需要一个灵活的架构,也需要开发人员拥有一个随时重构或改进的态度或意愿。

俗话说,The devil is in the details,无论是对小项目,还是大项目而言,甚至是企业级的东西也如此。

《软件成功的诀窍(Secrets of Software Success)》一书中,通过对全球100个软件企业,450个高层管理人员的采访后,得出的结论是

“…Ultimately, say the authors, the secret to success lies in the details — the ability to choose from a range of key management decisions in order to balance the right set of actions at the right time with rapidly changing market conditions…”