据统计,软件开发项目的失败,有80%的原因是由于需求工程的失败;而软件开发的困难所在: 1】抽象的问题如何转变为具体的需求, 2】需求如何对应到系统的功能, 3】如何适当地表达这些功能, 4】如何验证各阶段的质量 这些又都统统和软件的需求分析、设计、表达已经验证有关。 下面我主要总结一下,作为PM应该如何从需求开发和需求管理的源头开始来确保项目的成功率,站好需求工程的岗。 1、什么是需求工程? 需求工程:与需求相关的活动通称为需求工程,分需求开发和需求管理。 需求开发:通过调查与分析,获取用户需求并定义产品需求 需求管理:在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。 在产品经理的定义中讲到了,PM是靠想的,下面就讲一下在软件的需求开发过程中,一般我是怎么想的,采用什么样的逻辑,需求是怎么开发出来的? 2、如何进行需求开发? 下面是我画的一个大略示意图(之前的公司是台资所以用繁体字,大家正好感受一下中国的传统文化……): 1】 业务了解 这个是一个反复的过程,需求分析的整个过程都需要,一般按照下面的步骤或方法来: A】初步交谈 开放式谈话,重在倾听、记录,了解项目发起人的主要意图及业务痛点 B】現有文檔/作業辦法查閲 通過查閲現有作業辦法對總務租賃業務進行了解 C】电话访谈 对现有作业办法中的问题点及期望的改进进行了解 D】座谈或主题会议 封闭式谈对现有作业办法中的问题点及期望的改进进行了解 在初步业务了解的基础上设置谈话主题,针对性业务了解 2】 业务抽取 业务抽取实际是一个对前面业务了解所获取资料的分级分类。我一般将业务分为两个层面来看,即业务面和用户面,以便进行系统功能模块划分和系统权限管理设计: 1、 业务面(需要利用VISO画初步的业务流程图,并表明相关的表单) 策略:抽取核心业务 关注业务主流程 忽略业务细节 发掘业务问题 描述改进构想 2、 用户面(识别出主要的用户类别及关注点) 如一个人资系统的角色一般有管理员、一般员工、人资主管、部门主管等。每类用户关注的重点、具有的权限都会不一样。 3】 需求分析 需求分析的关键在于将用户的需求转换成系统/产品的功能性描述。我一般会根据前面的业务流程图画出一个系统整体功能架构(这个是很需要技巧的哦,有空再详细讲解如何画产品的功能架构),哈,还是来现一下宝,我之前做的一个功能架构图:
然后用一个EXCEL分级分类列出主要的功能点和优先级。 如下图是我的一个简单实例: 4】 需求表达 我认为是最难的,这个时候就是来显示你需求开发的结果。需求表达时,我一般使用Axure制作demo,或用PPT讲故事,这样同时也可以挖掘客户新的想法,因为客户通常根本不知道他们要什么,除非你给他一个模型,他们才知道这个是不是他们想要的,就像女孩子逛街,看到具体的衣服才知道想买个啥样的,总是抱着逛逛看的心态,以我4年的工作经验来看,客户就是这个心态在进行软件产品的购买或评估。 5】需求确认,也就是获得客户的反馈信息,修正需求开发结果,或获得项目开发启动的认同。这个在需求管理过程也反复进行。 3、如何进行需求管理? 需求管理主要进行以下3件事: 1】對需求進行確認,獲得客戶對需求的承諾 2】程式開發及測試過程中跟蹤客戶需求是否實現 3】對需求變更進行控制,管控項目風險 需求管理的工具有:Rational Cqweb / VSTS 等 做好需求管理,我个人认为需要有符合实际情况的、易推行的需求管理规范支撑,然后再加上一款适合自己部门实际情况的需求管理工具,否则讲需求管理的理论,简直就像是一个美丽的传说!这里也就不啰嗦了!
|
|