当客户和你说他要什么什么的时候,他很可能不能很清晰的表达自己,即使是有些想法,也需要我们的需求捕获者很好的引导。在需求访谈的早期阶段,我们需要明确这几个概念:假设、目标和需求。
假设,又可理解我们开发系统和软件的前提条件。比方说,中国银行开发港股直通车的前提是中国银监会,中国证鉴会同意内地股民买卖港股。因此,我们看到假设是一定为真的,至少当前我们知道这是一个可获得的真实的结果,而且也是可以验证的,每个利益相关者都是认同的。假设对于项目的立项和执行是必须的,但它很可能不可控,因此需要时常检查假设的条件是否还成立。
关于假设,经验上看,大家理解没有问题,但不一定重视,因此为以后的项目带来很多的风险,各个层面的假设:政策,组织,技术,人力等等。
关于目标和需求,目标是客户喜欢表达的一种“需求”,比如对内部信息管理信息系统来说,目标是提高公司的运营效率;对商业软件来说,目标可能是提高产品的市场竞争力。又比如说一个防盗的安全设备,保安呢希望它好用。一方面目标是用户的某种期望的“需求”,它可能可以达到,但需要通过更细化和明确的需求的实现。目标不一定可验证,比如说希望一个系统好用,但提高公司的运营效率这样的目标,如果加上一些数值指标的衡量,那就是可验证的了。每个利益相关者的目标可能是不同的,比如说防盗系统的警报,保安期望越响越好,但小区的住户可能期望不要非常吵。
目标是项目开发的意义所在,但正如目标可能是业务层面的,也可能无法真正去衡量,也很说能不能完全达到。而需求不一样:需求一定是可达到的/可获得的;它是必须的,但可由不同的优先级来表述其的必要性;需求是需要通过明确的需求验收/测试标准来表述需求是否能够被验证;正式需求表述也不应该是冲突的,目标的冲突可由折中的需求来解决或者通过不同需求版本的实现来解决。
图示关于这三个概念的对比