,IT项目的估算,计划,后续的跟踪控制,验证和确认等各项工作都是跟需求密切相关的。因此为了保证项目的进度,质量和成本的目标的顺利实现,保证项目计划的严肃性和可执行性;为了保证软件系统最终开发的产品正是客户期望的产品,必须要做好需求管理工作。
需求管理工作应该是需求全生命周期的管理,从用户原始需求的提出,到最终形成软件产品后用户对需求实现情况的验证以形成闭环流程。因此我们需要跟踪和了解到需求状态的演变过程。大型的项目软件生命周期模型较为复杂,一个需求的实现会经过用户需求,软件需求,总体设计,详细设计,开发和单元测试,集成测试,系统测试和验收测试多个环节,在这个过程中需要建立需求追踪以确认需求和中间阶段产生的工作产品的一致性。另外变更管理是需求管理的另外一个重点,需求在经过评审确认后需要基线并受到控制,当出现需求变更的时候必须进行相应的需求影响分析以确认对需求变更的处理方式,当变更工作量影响较大的时候还需要调整并重新基线项目计划。
对于整个需求调研,分析和需求开发,评审确认的过程也需要进行管理。在这个过程中的一个重点就是对需求输出的文档需要得到用户,项目组设计开发人员的共同确认和承诺。
7.需求变更管理重要性体现在哪里?有哪些具体的内容
户不断的提交需求修改,项目进度无任何保证不断延期;由于一次需求的修改导致原来本来稳定的系统出现各种原来没有想到的错误和异常;这些都是需求管理存在缺陷的表象。需求管理的重要性就体现到项目计划的严肃性和可执行性,以保证项目目标的实现。通过引入了需求变更管理后,使软件需求文档成为一份大家都共同承诺和作为依据参考的文档,这个文档需要在设计,开发,测试等多种角色之间充分传递和共享。另外通过需求管理工作,使每个人意识到变更对项目的影响和变更的代价,反向去促进需求开发质量的提高。
需求变更管理包括了变更请求的提出,CBB委员会对需求进行影响分析确认是否变更,设计开发负责人确认需求变更将影响到的模块和代码和具体修改方法,开发人员对变更进行修改和测试,最后再有变更请求人对需求变更满足情况进行验证。对于变更的影响分析一般需要项目组的开发负责人进行,大型项目可以依靠需求管理中建立的需求追踪进行分析,但根据实践需求追踪在影响分析中的作用还不明显。
8.需求是否必须要文档化,其意义体现在哪里?
做人员多方沟通的基础,使大家对需求有一致的理解并依据该文档开展各项工作。即时是对于敏捷软件开发,我们也需要对用例场景描述,CRC卡片等文档化下来以方便沟通。
再次强调沟通,特别是面对面的沟通是信息传递最高效方式,但是当一个信息是需要在软件开发整个生命周期的不同阶段,由不同角色人员多次使用的时候,就必须文档化。而需求文档恰好属于这种类型。
9.需求优先级的作用,如何评估需求优先级?
需求优先级的作用在于项目管理和用户满意度提升的需要。一个系统上线后经常出现情况就是往往经常使用的功能都集中在20%的功能上很多功能使用很少。需求优先级让我们更好的把握重点和分配资源,真正的把20%最重要的需求,经常使用的需求做好做精,只有这样才能够真正的提高用户满意度和达到项目目标。
需求优先级对于用户往往最有发言权,但当一个系统涉及到多个业务部门和组织结构的时候,难免出现各个用户都站在自己的立场来看待需求的优先级和紧急程度的问题。但是一个需求究竟对效率提升,成本的减少,相关周期的缩短起到了多大的贡献和作用却没有衡量。因此对需求优先级的评估应该考虑引入价值工程的概念,一个需求的优先程度应该体现在需求实现后能够产生的价值和节约的成本。
10.中小型软件开发项目团队需求开发和管理工作的重点在哪里
对于中小型的项目团队一定要使用轻量级的方法论和过程,过程是为了实现目标服务的,过程的目的是为了解决现在的问题和可能的问题。不在这个范围内做的过程,规则或工作都不会产生价值和意义。
对于中小型团队首先是要意识到需求工作的重要性,制定需求文档和DEMO界面规范,对需求进行文档化和结构化。其次是对开发完成的需求需要得到用户,实现人员,测试等多方的评审和认可。最后是需求文档化后该工件需要通过各种配置管理工具进行管理,需求完成后及时归档和受控,需求的变更需要受到管理而不是随意的。