1 软件需求的分类
这里讲的“需求”这个词的含义是指客户对他所委托开发的网站在功能上明确约定和网站形式上应当达到的标准的约定。我把对一个网站(或者更广义的说,一个产品)的需求分为3个层次:
1)核心需求。核心需求定义了一个网站的最基本功能,是必须无条件得到有效满足的需求。核心需求是同一行业同一类型的单位所具有的共性需求。例如西安科技大学团委网站的核心需求就会与其它兄弟大学团委网站的核心需求具有高度的一致性。
2)扩展需求。扩展需求定义了一个网站的功能的扩展,它使得一个网站的内容更加丰富,功能更加完善。扩展需求使得网站实现了差异化和个性化。
在实际项目中,并不是所有的扩展需求都应该得到满足,而是需要根据具体情况加以取舍。扩展需求的取舍通常考虑的主要因素包括:(1)技术能力,如果实现某项扩展需求的技术能力达不到,那也只能忍痛割爱;(2)资金不足和工期紧迫等客观因素的制约,现实中往往会因为某些客观因素的制约,导致某项扩展需求无法满足,因此也需要将此项扩展需求舍弃;(3)客户意愿,如果客户对某项扩展需求表现出了强烈的意愿,那么该项扩展需求就必须得到满足。
3)引导需求。一般而言,网站开发人员比客户拥有更深厚的专业技术知识,因此他们能够比客户更清楚地了解自己所开发的网站还可以进行哪些技术升级和功能扩展。网站开发人员将网站技术升级和功能扩展的建议提供给客户,从而形成的新需求称为引导需求。引导需求是否需要满足取决于满足客户的这类需求是否对网站开发者有利,有利则满足,不利则不满足。
因为客户专业技术知识的掌握程度是不同的,因此引导需求与扩展需求之间很难划清界限,不过一个大致的区分标准是,客户通常愿意为满足引导需求而付出额外的资金,而满足扩展需求主要目的是提高客户对产品的满意程度,而不一定能使客户支付额外的资金。
例1:以手机为例。
一部手机的核心需求至少包括:(1)可以打电话;(2)可以收发短信;……。
一部手机的扩展需求包括:(1)时钟;(2)计算器;(3)手写屏;(4)彩玲;(5)电子字典;(6)小游戏;……。
一部手机的引导需求包括:(1)上网功能;(2)摄像头;(3)MP3;(4)GPS导航;……。
很清楚,如果核心功能不能满足,就不能称其为“手机”,而扩展需求和引导需求则根据各种手机的目标客户定位不同而有所取舍。
例2:西安宗江老川菜网站。
核心需求至少包括:(1)企业介绍;(2)特色菜肴;(3)地理位置和交通路线;(4)联系电话;……。
扩展需求可能包括:(1)网站的访客数量统计;(2)流动字幕,……。
引导需求可能包括:(1)网上订餐;(2)BBS;(3)烹饪教室;……。
满足核心需求和部分扩展需求只需要设计成静态网站,而满足某些扩展需求和引导需求则需要设计成动态网站,技术难度和工作量是不一样的。引导需求是否有必要提出,完全取决于是否有利于网站开发者以及用户是否有这样的意愿。
2 需求分析的具体做法
做一个网站的需求分析的关键是:
1)要通过调查了解、搜集资料以及和客户沟通,明确了解这个网站的核心需求是哪些、扩展需求是哪些以及可能会有哪些引导需求。
2)和指导老师沟通,评估满足这些核心需求、扩展需求以及引导需求可能会用到哪些技术上的知识点。
3) 评估掌握这些知识点所需的时间和难度。按照知识点的重要程度安排学习次序和学习重点。首先,满足核心需求所需要的知识点是必须要掌握的;其次,满足部分客户强烈关注的扩展需求所需要的知识点也是必须要掌握的;再其次,满足部分客户并不太关注的扩展需求所需要的知识点可以暂不学习;最后,满足引导需求所需要的知识点也可以暂不学习。