在任何相当规模的开发项目当中,孤军奋战显然是像是一种幻想,为了获得一个团队所能提供的容量和差异性,我们必须放弃任何个人英雄主义的幻想,为和他人合作付出代价。而这种人际的花费在会议中体现的最为明显,会议也是一种工具,一种社交工具。很多人都会感觉会议是很可怕的,它有的时候并不会产生什么效果,但是我们离不开它,一旦离开会议,就只能开发出最简单的产品。每一个会议能达到的结果是度量需求工作的健康状态,一个糟糕的会议,说明了需求过程的不完善。要想每一个参与者都完全的参与进会议中,这个会议就必须是稳定的,我们可以通过达成一些会议前的协议如建立一个打断机制、设置时间限制、反对人身攻击和贬低等来实现。
上次阅读的时候读到过关于含混性的问题,其在需求定义中是一个重要的问题,这次阅读了解到了用一些工具来启发我们确定在问题陈述中的含混性的源头,这些启发则是降低含混性的有力工具。例如我们可以根据记忆和含义之间的关系构造一种启发来确定问题描述的含混性;含混性投票是揭示问题描述含混性来源的另一种有用工具。得到这些启发还需要在一种幽默的气氛下能够得到完全的成功,会有效的找到问题描述含混性的来源,从而降低含混性。
探索中的工具在探索过程中很重要,利用这些工具,我们就可能在需求过程中找到一些激动人心的目标。
我们需要的不仅仅是召集一次能够产生想法的会议,也不仅仅是一些通用的优秀会议规则,真正需要的是专门为了产生想法而设计的会议,这种会议的原型就是头脑风暴,是许多启发方法的重要组成部分。头脑风暴分为两个部分,第一部分主要是增加想法的数量:对于一开始的想法不许批评和责备;你的想象要足够丰富;想法越多越好,及头脑风暴必须设计成能够产生大量想法的过程;最后在正确的头脑风暴设计中,最好要对列出来的想法进行合成或更改来创造出更多更好的想法。第二部分则是将想法列表中的想法数量减少到一个可操作的规模:门限投票法、合成想法、应用标准等方法。
在探索需求过程中,我们需要使用映射图,通过映射图工具在不同细节程度上产生映射图,在这个过程中,映射图也会越来越细化。草图和画曲线图两种工具可以帮助我们产生映射图。而头脑风暴后的可视化变化就是头脑作图,每个参与者在这个过程中循环画图形成头脑作图,这种方法能够将大脑的其他部分也带入创造过程。在每一个过程中我们都可以相似的做“右脑运动”,将语言的假设具体化,刺激新的想法。
名称是人们对一个项目的介绍,同时也是另一个容易产生含混性的地方,所以在探索需求中,我们要选择一个无含混性的名称。所有的项目名称——从工作名称到正式名称——都是具有含混性的,因此给项目起名的时候,为了探索项目需要做什么,做出选择是一种恰当的方式。一个项目的名称可以对它的结果和参与者的行为产生深远的影响,有几种方法可以帮助我们创造一个没有含混性的名称:启发式命名方法——首先提出一个名称,然后提出三条理由,说明这个名称为什么不合适,最后提出能够消除这三条理由的另一个名称。
每一次的探索中都会遇到一次或两次的冲突,这时候要准确的判断该冲突是否重要来控制非本质冲突的发生;另外还要能够让一些相关人员完全集中注意力,这也能够避免非本质冲突;要想会议更为有效,就要控制本质冲突。
对于我们的项目,做需求探索的时候要有明确的期望。通过从功能、属性、到约束条件,到偏好,再到期望的每个步骤,能够循序渐进的得到相应的信息,从而使我们更好的了解项目,有效的进行需求探索。
当然,探索需求中我们要获取信息过程首先要定义功能,了解系统的存在功能、并测试功能。通过客户的头脑风暴,记录所有潜在的功能;理解明显的、隐藏的以及装饰性的功能;识别未注意到的功能等方法会让我们更清楚、准确的把握项目功能。使用功能启发方法来识别真正需要的功能,减少忽略重要隐含功能的机会,为新的功能提供认识和机会,创造功能的一致。