不懂软件需求的需求人员一般会犯如下错误:一是把版面美工形式看作需求,其实程序员看程序如同医生透过X光看一个人,看到的是骨架,至于是美人还是丑八怪如果能看出来,那个医生一定是变态的;在开发过程中都强调实现用例功能实现,而不是首先色彩如何花梢漂亮,后者不但不是主要的,也不是次要的,在开发过程中什么都不是;一开始把精力放在这里当成需求实现是浪费时间浪费金钱。二是把静态网页当成需求,特别是当把静态网页当成prototype时更经常犯这个错误;常常说:"按prototype做出来不行了?"实际上prototype本身如果不是看不出清楚的用例逻辑,是可能有几种用例解释;何况真正变成动态程序,与静态的东西是不一样的。我在网上看到的美女明星下了台到眼前成了丑八怪,是这个道理。而且更遭的是,客户还同时犯第一个错误,看着那里不顺眼改一改版面还三变,不知不觉的基本用例变成了另外一个东西,原来是宾馆现在成了盖殡仪馆,原来搞错了因为不知道躺的人不同叫不同的馆(死人还是活人),试问,如何实现?项目开始和后期看到的同一个版面成为不同的故事是经常出现的故事,软件上称为需求变迁,这是项目经常延期的主要原因。

三是需求人员把定制了解成按客户所有想法迎合静态页面,而不是按客户的业务用例要求建立相应的程序;还要求程序员也这样做;实际上,如果不能拨乱反正的话,任何项目到此为止已经是死路一条:那不是软件,无非是静态网页人员出租!需求人员常犯的另一个错误仍是不懂用例,是把用例的使用方式当成了需求;这种错误有时连初级程序员都会犯,典型是把一个菜单栏目当成需求,而程序员无法从菜单中看出明显的简洁的用例逻辑??这是一个没有意义的菜单,天晓得里头是什么?同样地,里头的要干的东西还三变。事实上,同一种逻辑用例可以用到N个栏目,那是"软件的使用而不是软件本身"。

以上的错误常见于网站建设,所以网站建设通常的结局是不了了之,大概占了50%以上,无论设入多少钱多少人花多少时间都是如此的;除非有人能够拨乱反正,让项目需求走上正道。而在ERP/DRP这类项目中,需求人员一般情况下是业务的行家,他们反而很容易理解用例是什么东西,象医院收费,不会把精力放在收费界面有没有脱衣舞女让收费员提神上,收费这个用例有多少个环节是他们理解的。这种项目需求易犯的错误是让先进的计算机工具重复原始状态下的不合理的流程。典型的笑话是:手工审批要盖五个章,用五天时间;现在电算化效率提高了一百倍,所以可以盖五百个章(电子签名呢!),时间嘛,仍然是五天!在这里,矛盾不是有没有用例,而是用例是不是合理的,高效率的。

所以对于需求由于用例的冲突,程序员如果不想不了了之后责任全部背上身的话,好是坚持原则;程序员迎合网页编写是没有意义的,迁需求也不是没有意义的,因为……无法迁的,越是迁越是没有办法实现,或者客户没有办法满意的。软件其实很简单的,无非是分析好用例,然后让计算机一步步实现而已,用例,是所有软件实现的前提:不然,软件到底要干什么?好的软件项目都有一个共同的特点,是简单的逻辑,明确用例。典型的,看google,ebay。