需求是项目执行内容中最为重要的内容,据统计,项目失败的最主要原因就是和项目的需求相关,特别是在软件项目中,所以需要在项目中对需求特别重视。IT项目执行过程中的需求和售前的需求不同,售前的需求是为了更快的形成有针对性的解决方案,而项目中的需求是真正将客户的需要形成为客户提高效率,进行业务操作的IT系统的需求工作,并且有严格的需求管理、需求变更等更深深层的内容。
需求在不同的工作中所需要的内容和粒度都不仅相同,售前的需求、项目的需求、产品的需求虽然描述方法类似,但是需求获取的目标和方法都不很一致。目前国内的项目经理很多都直接参与需求获取及管理的工作,但作为项目经理可能不涉及需求的具体工作,但是不能不知道需求是什么。
在项目中,业务需求放映客户对系统的目标要求,在项目定义中,项目目标和建设内容概要部分,说明的就是这种业务需求,从客户和用户处获取需求以后所完成的是客户当前业务及需要,但此时的业务需求还具有一些不确定性,很大可能还需要对业务流程进行改进后才是真正的业务需求。如果业务需求的稳定性较差,则最好采用先咨询项目后建设项目的方式,避免投资的浪费。业务需求一般用业务流程图来描述。用户需求描述了用户使用此系统或产品针对日常的工作必须要完成的任务。业务需求很容易对业务描述达成一致,而用户需求则不同,用户对实现这个新业务方式的方法理解不一致。用户对如何实现这项业务有了千差万别的理解,所谓“条条大道通罗马”,但是我们未来修路只能修一条,是修高速公路呢?还是修普通公路呢?正因为如此,用户需求是最不好平衡的,甚至对系统界面上的文字要求都可能起到对整个系统的影响。功能的需求和用户需求息息相关,有什么样的用户需求,就会有什么样的功能。需求不是设计,不能规定任何实现的内容。有时候我们把系统的原型当成一种需求,实际上可以用原型来引导需求,而不是真正的需求。非功能性需求描述了系统展现给用户的行为和感受,例如一些操作界面的要求,或者去满足某些规范和约束。
在项目中,无论那一种需求,都需要和客户、用户充分沟通,进行验证,这样会提高需求分析报告的清晰度,另一方面是为后续的工作提供坚实的基础,无论是设计、开发、测试、验收,都是和需求紧密相连的。
案例:用户需求的影响:
公司曾经为客户开发一个小软件系统,实现一个非常简单的流程和数据上报功能。合同签订以后,我们提出要进行用户调研,客户对我们说,不用调研,直接按照我们的思路和想法实现就可以,我们提出,系统最后要有真正的使用者来用,他们如果不提供,最后系统可能会缺乏信息而有隐患,客户固执己见,经过公司沟通以后项目继续。很快系统上线运行,客户要求用户来培训,准备使用系统的时候,系统的数据上报功能遭到用户的强烈不满,言辞激烈,客户负责人等面红耳赤,哑口无言,项目组在座位上脸色苍白。虽然从合同签订到系统部署上线,只有不到一个月的时间,但是对项目组而言,所有的时间完全浪费了,项目彻底失败,只能从头再来。后来凡是客户再有这种没有用户需求的事情发生,我就讲解这个教训,这会让客户转变观念,积极为我们协调真正的用户来参与。
在产品中,需求除了来源于客户、用户以外,还来自于项目组、产品运营过程,也可能来自于其他产品的某个功能。特别在互联网产品中,我们可能需要换一种描述方法,需求不是来源于某客户,而是面向于某客户,或者叫面对某客户群体。具有这样的思考方式,再考虑功能、技术实现、运营等就容易多了。
无论哪一种需求,都有具有类似的重要特性:
1、场景性,需求是针对特定业务环境的需求,使用的业务术语也具有明确的业务环境相关性。场景性的好处是,需求说明很容易形成验收测试的测试用例。
2、清晰明确性,需求会在整个需求规格说明书中具有唯一的解释,每一项需求都是被简洁、简单的语言进行描述的。并且是被所有人理解为同样的含义,此外这也解释了为什么在需求规格说明书中还要具有术语表的原因。
3、正确性,需求正确的描述了系统要交付的功能,并且最后是得到用户验证的,例如在项目中需求都是调研访谈得来的,而不是创造出来的,和产品不同,很多产品的需求是创造出来或想出来的。
4、可行性,在已知的能力条件下,需求是可以实现的。例如iPhone刚刚出现的时候,客户就要求在winphone中实现同样的功能和效果,这是不现实和不可行的。
5、必要性,小即是美,很多情况下,用户只需要完成需要完成的工作即可,并且,系统的每一项设计都会有明确的需求来源,如果超出了,那么这个需求很可能就是不必要的,会浪费工作量,换一个角度来说,需求是价值和利益导向的,没有价值则没有必要。
6、优先性,为每一项需求建立优先权,尽管用户可能会说,每一项功能都是具有最高优先权的,但从系统来说,我们要清晰,交付此系统的最小子集是什么,这些就是最具有优先权的功能。
7、可证实性,是能被客户、用户所认可,也能通过设计、测试和交付的功能所反向追踪和验证的。
需求是项目的关键,但在实际的工作中会存在各种各样的问题,各种各样不可控的因素,让需求的特性难以做到。举个例子来说,在项目工期紧的情况下,肯定都会有在开发后后补需求的状况,会出现仓促编写需求规格说明书的情况,也会出现形式上的评审的问题,也会出现客户方怕承担责任延缓签字的情况,更会出现客户的认知加强、或参与度过高主导了项目而不断提出新想法的问题,虽然这不是诚信的现象,但所有这些都是需要项目经理进行处理。
网友评论