看了王建硕的《世界不是天才创造的》,里面的游戏很有意思,也很有启发性。在软件开发中,其实也存在这样的现象,即:比规则前进了一步,不多不少,刚刚好一步,方能取得成功。
比如说需求分析,今天下午和客户谈需求时,客户提要求说:“文章分类分成两级,第一级包含XXX、第二级包含XXXX”。这个时候,我们多走一步,按无限级分类系统的要求设计,当用户提出要“第二级下面再分第三级”(这种可能性相当高)的时候,我们就可以开心的笑了。再比如说,客户提“校内分配的比率不能低于60%”,我们当然知道这里的60%是会变的,所以多走一步,将其作为一个可以由用户修改的设置值,就不怕哪天用说要改70%的时候,我们还要重新编译部署了。类似这样的例子还有很多,而有经验的分析人员其实早就是这么做的。
设计的时候也是这个样子,很多人(包括我)都在强调:不要做过度设计,哪么怎么把握设计的度?还是多走一步。比如系统要支持Access和SQL,那就用抽象的数据访问层好了。
多走一步,不多也不少,如果我们在设计完抽象数据层之后,还要预防时候Oracle的情况,再设计一个Oracle的Provider,就走的有点儿远了。
这“一步”有多大,还看具体的情况,我的看法是:团队的水平越高、步伐越小;水平越低、步伐越大。因为水平高了,写出来的代码质量高,容易改,在发生变化时,能很好的适应;水平低的,写出来的代码通常比较僵硬,改起来的成本高,不如开始的时候考虑的多一点儿。