需求分析那些事儿

2012-08-23
  • 1190
  • 0

俗语云,师傅领进门修行在个人。都是做项目的,谁会不知道“需求分析”呢?可问题就往往出在这貌似不起眼的地方。谁都能做,却都做不好。

记得一位资深项目经理回忆自己刚从学校毕业到公司的时候,曾无知的在老板面前吹嘘,我对需求分析还有很有工作经验滴,老板笑言,小盆友,你才多大啊,我告诉你,要想成为一个有经验的需求分析人员,起码要有十年左右的工作经历。好友作震惊状。做了一些项目后,好友坦言,自己当初的理解太过肤浅,需求分析真不是一件容易做的事情。

首先,是我们对目标领域知识的缺乏。客户所在的领域并不都是我们所熟知的,这不像是在学校里做课程设计,不是图书馆管理系统,就是学生管理系统,连蒙带猜也能编出来。行业的多样性必然会导致需求领域知识的多样性,面对这样的困境,又怎么能要求我们在与客户短短的几次交谈中就获取足够的信息来 完成一个复杂的软件产品呢。

其次,客户对需求的理解偏差与传达的不确定性。需求分析很明显是由客户传递给项目组的。客户在解释需求的时候,有时就会带有很大的含混性,而且客户对 需求的说明不能做到完全的正确。同样,分析人员在对需求进行吸收的时候也会产生误解,一些信息也会被遗漏掉。靠这样获取的需求进行开发,结果是可想而知的了。

想要解决上述的问题,似乎没有什么比“经验”更好的办法了。对于某一行业领域的熟悉,需要一定时间的积累,了解了一定的知识之后,就能更容易 得与客户进行有效的沟通,获取项目中需要的信息。需求对于项目的重要性不用多说,一个项目至始至终都是为了达到让客户满意的目的,满足客户的需求,其实是 一种对需求含混性降低的过程。为了达到这一目的,还有一些称为方法的步骤可以让我们减少对需求的误解:

1. 尽可能细地划分项目干系人(Stakeholder):关键分清谁是客户,谁是使用者。在了解需求的时候,我们能从哪些人中获取信息。同时还要注意到,获取的信息是否得到负责人的确认。

2. 召开需求分析会议:与客户沟通时尽可能多的找出不清楚的地方,及时的提出,如果客户允许可以进行录音,不过这一招估计很难做到,大部分时候客户可不想留下自己的话柄。与项目组成员的开会是 为了在组内加深对需求的了解,集思广义,再用点头脑风暴之类的东东,会发现很多问题。

3. 在最初的需求分析成型后,要对其进行细致的分析,划分功能块及其属性和约束条件。

4. 形成具体的业务模型,参照模型分配开发和设计工作。

5. 重中之重,清楚的定义项目的边界,说白了就是,那些要做,那些不与理会。