浅谈软件项目中的需求管理
浅谈软件项目的需求管理

浅谈软件项目的需求管理浅谈软件项目的需求管理软件项目区别于其它项目的最显著的特征是其不可见性,它不像硬件购销、建筑工程,都是实实在在可见的东西。
而软件项目在系统交付之前很长一段时间,客户是无法感知自己想要的系统究竟是什么样子。
因此,需求管理就显得十分重要,据相关统计数据分析,软件项目90%以上失败的原因都在于没有重视需求或者需求管理方面做的不到位导致的。
需求管理作为软件项目管理的一个重要内容,贯穿项目实施的全生命周期。
俗话说:万事开头难。
需求作为软件开发的第一个环节,其重要性不言而喻。
市面上关于需求管理的相关理论和书籍很多,但多数停留在理论层面,实操性不强。
本文主要是根据我们以往项目的经验,进行一些需求管理方面的探讨。
我们可以简单的将软件项目的需求管理分为需求获取、需求分析与验证、需求变更控制三个核心内容。
(一)需求获取需求获取是软件项目需求管理的第一个过程,在这个过程中我们需要运用科学的方法以及相关的项目经验库辅助我们进行需求获取。
需求获取的核心内容是通过调研掌握软件项目的实际需求,以便于指导整个项目的实施。
需求获取的主要方法包括:用户访谈、问卷调查、现场观摩、头脑风暴等方法。
在实际的项目操作过程中,相对比较明确的需求,我们可采用比较固定的需求获取方式,比如:问卷调查等。
而对于相对比较模糊的需求或者说用户无法清晰表述自己需要的是什么的时候,我们可采用比较灵活的方式,例如:用户访谈、现场观摩等。
需求的类型主要包括:业务需求、用户需求和功能需求。
在需求获取的过程中,无论采用哪种方法,我们都需要自顶向下或自下向上去了解用户真实的想法。
业务需求的获取对象主要是客户的高层领导,我们都知道,项目的发起、实施、最终的成败很大程度上都取决于高层领导,我们需要对他们进行访谈,了解高层领导的公司战略、发展方向,更为重要的是获取他们对将要开发的软件系统的期望,以及希望该系统在解决现有业务问题,对公司整体战略的支撑方面的期望。
实习报告:软件开发项目中的需求管理与变更控制

实习报告:软件开发项目中的需求管理与变更控制一、引言需求管理和变更控制是软件开发项目中至关重要的环节。
合理的需求管理和变更控制可以确保项目的顺利进行,并最大程度地满足客户的需求,同时避免项目的范围扩张和风险的增加。
本文将从需求管理和变更控制的概念、方法和实施步骤等方面进行详细论述,并结合我的实习经历进行分析。
二、需求管理1. 需求管理的概念需求管理是指对软件开发项目中的需求进行规范、控制和追踪的过程。
它涵盖了需求的获取、分析、规划、确认、变更管理和跟踪等环节,旨在确保需求的准确性、完整性和一致性。
2. 需求管理的方法(1)需求获取:通过与客户沟通、需求调研和文档分析等方式,获取项目的需求。
在实习中,我参与了与客户的沟通,通过详细了解客户的需求,确保需求获取的准确性。
(2)需求分析:对需求进行分解、整理和分类,形成可执行的需求文档。
在实习中,我参与了需求分析的过程,通过与开发团队的讨论和确认,将需求转化为可行的开发任务。
(3)需求规划:对需求进行优先级排序、时间估计和资源分配,确定项目的需求计划。
在实习中,我参与了需求规划的过程,与项目经理一起制定了合理的需求计划,确保项目的进度可控。
(4)需求确认:与客户共同确认需求是否满足其期望,并形成正式的需求文档。
在实习中,我参与了需求确认的过程,与客户进行了多次会议,及时沟通并记录客户的反馈意见。
(5)需求变更管理:对需求变更进行评审、控制和处理,确保变更的合理性和可行性。
在实习中,我参与了需求变更管理的过程,及时评估变更对项目进度和资源的影响,并与相关方面进行协调。
三、变更控制1. 变更控制的概念变更控制是指对软件开发项目中需求的变更进行管理和控制的过程。
通过合理的变更控制,可以避免项目范围的扩大、风险的增加和资源的浪费,确保项目的稳定性和可行性。
2. 变更控制的实施步骤(1)需求变更的登记:在项目中设立变更控制机制,建立需求变更登记表,及时记录需求变更的内容、原因和提出者等信息。
软件项目管理中的需求管理与变更管理

软件项目管理中的需求管理与变更管理1. 引言在软件项目管理中,需求管理与变更管理是软件开发过程中非常重要的一环。
正确的需求管理能够保证软件开发人员真正理解客户对软件系统的需求,从而开发出符合客户要求的软件;变更管理能够帮助团队应对客户需求的变化,及时做出调整,保证软件开发项目能够按时交付。
2. 需求管理需求管理是软件开发过程中的一项基本管理活动,也是软件开发的第一步。
在需求管理中,开发团队需要与客户多次沟通,理解客户的需求,分析客户的需求,确定开发目标,明确开发计划。
需求管理分为需求获取、需求分析、需求确认、需求跟踪等多个阶段。
2.1 需求获取需求获取是需求管理的第一步,其目的是收集客户的需求,确定客户的真正需求。
在需求获取中,软件开发团队需要耐心听取客户的需求,整理好客户对软件系统的要求,以便进一步分析和确认。
2.2 需求分析需求分析是在需求获取的基础上,分析客户需求,将需求明确具体化,并进行可行性分析。
在需求分析中,开发人员需要对客户的需求进行分类、整理、分析,明确需求的重要性、优先级,以便为开发进一步制定计划。
2.3 需求确认需求确认是需求管理中最为重要的一个环节。
在需求确认中,开发团队需要将对客户需求的分析结果提交给客户,进行确认和讨论。
在确定客户需求与软件开发的实际情况相符后,团队可以开始软件开发工作;若客户对需求分析结果存在异议,则需要进一步与客户沟通,以修改、确认需求。
2.4 需求跟踪需求跟踪是一项重要的需求管理工作。
在需求跟踪中,开发团队需要跟踪需求的变化,及时进行调整,确保软件开发项目可以按时交付。
此外,需求跟踪还可以帮助团队分析需求变更的原因和趋势,优化需求管理的流程。
3. 变更管理变更管理是软件开发过程中一项非常重要的管理活动,它负责跟踪、评估、协调和实现识别的软件问题,以期使软件产品能够按时按质量要求交付。
变更管理包括变更识别、变更控制、变更评估、变更实现等四个方面。
3.1 变更识别变更识别是变更管理中的第一步,其目的是识别软件开发过程中出现的问题,及早发现潜在的问题,并及时进行处理。
软件工程中的软件工程项目需求管理和变更

软件工程中的软件工程项目需求管理和变更在软件工程项目中,需求管理和变更是一个关键的环节。
它涉及到对项目需求的定义、分析、评估、变更和控制等方面,对于确保项目的成功和客户满意度至关重要。
本文将介绍软件工程中的软件工程项目需求管理和变更的重要性以及相关的流程和技巧。
一、需求管理的重要性需求管理是一个跨功能的过程,它是项目成功的基石。
合理、准确地管理需求可以帮助项目团队有效地实施工作,确保项目按计划顺利进行。
以下是需求管理的重要性:1.明确需求目标:需求管理可以帮助团队确定项目的目标和要求,确保团队的工作与需求保持一致。
只有明确的需求目标,才能有针对性地开展工作,提高效率。
2.有效分析和评估:通过需求管理,项目团队可以对需求进行全面的分析和评估,明确需求的可行性和必要性。
这样可以避免因为误解或不完善的需求而导致项目失败或额外的开销。
3.变更控制:在软件工程项目中,需求的变更是常态。
合理的需求管理可以帮助团队及时识别并控制需求变更,避免因为频繁的变更导致项目延期或超出预算。
二、需求管理的流程需求管理的流程包括需求获取、需求分析、需求评估、需求变更和需求验证等环节。
1.需求获取:在软件工程项目启动之初,需求获取是首要的任务。
项目团队需要与客户和利益相关者充分沟通,了解他们的需求和期望。
采用面谈、问卷调查、竞品分析等方法可以帮助团队获取全面的需求。
2.需求分析:需求分析是将获取到的需求进行整理、归类和详细描述的过程。
通过需求分析,团队可以查看需求的完整性、一致性和准确性。
此外,还需要将获取到的需求与项目目标和计划进行匹配,确定需求的优先级和关联。
3.需求评估:在需求分析的基础上,团队需要对需求进行评估,包括技术可行性、成本估算和资源投入等方面。
通过需求评估,团队可以确定哪些需求是可行的和有意义的,并对项目的计划进行调整。
4.需求变更:需求变更是软件工程项目中常见的情况。
当项目团队和客户发现需求有变化或不完善时,需要及时对需求进行变更。
软件工程中的软件项目用户需求管理

软件工程中的软件项目用户需求管理在软件工程领域,软件项目的成功与否往往取决于对用户需求的准确理解和有效管理。
用户需求管理是指对用户需求的搜集、分析、规范、跟踪及变更控制等一系列活动。
本文将探讨软件工程中的软件项目用户需求管理的重要性,并介绍一些有效的需求管理方法和工具。
一、用户需求在软件项目中的重要性用户需求是软件项目生命周期的基础和起点,它决定了软件的功能、性能、用户体验等方面。
准确理解用户需求能够帮助开发团队更好地导向项目的目标,减少在后期开发阶段的重大调整和变更。
同时,满足用户需求也是评估软件项目成功的关键指标之一。
因此,软件项目中的用户需求管理至关重要。
二、用户需求管理的方法和工具1. 用户需求搜集在软件项目开始之初,开发团队需要与用户进行充分的沟通与交流,以便全面了解用户的需求和期望。
可以采用面对面的访谈、问卷调查、用户故事、焦点小组等方法来搜集用户需求。
此外,还可以利用一些在线工具或平台,如调查问卷网站、用户需求管理软件等来进行需求搜集。
2. 用户需求分析需求分析是对用户需求进行深入研究和分析的过程。
开发团队可以采用需求建模、功能分解、场景模拟等方法,将用户需求转化为可行性的系统需求。
这一阶段还可以运用一些工具,如数据流图、用例图、需求文档等来对用户需求进行详细描述和规范。
3. 用户需求跟踪和变更控制在软件项目的不同阶段,用户需求可能会发生变化。
为了确保项目的可控性,需要对用户需求进行跟踪和变更控制。
可以通过建立需求追踪矩阵、变更控制系统等工具,及时记录和跟踪用户需求的变动,并对变更进行评估和管理,以确保变更能够被有效地控制和实施。
4. 用户需求验证用户需求验证是确保软件项目符合用户期望的一个重要环节。
开发团队可以通过原型演示、用户测试、评审会议等方式,与用户进行有效的反馈交流,验证软件是否满足用户需求。
这一过程对于项目的最终成功至关重要,可以及时发现和解决潜在的问题和风险。
三、用户需求管理的优势和挑战良好的用户需求管理能够带来诸多优势。
软件工程中的需求管理和变更控制

软件工程中的需求管理和变更控制需求管理和变更控制在软件工程中起着至关重要的作用。
在软件开发过程中,需求管理负责确保需求的准确性和完整性,而变更控制则用于管理需求的变更。
本文将探讨软件工程中的需求管理和变更控制的重要性、方法以及挑战。
一、需求管理的重要性需求管理是软件开发生命周期中的关键环节之一。
它的目标是确保软件项目的需求清晰、准确和完整。
需求管理的重要性可以从以下几个方面来分析:1.1 确保需求的准确性:需求管理帮助开发团队准确理解客户的需求,避免出现需求误解或不一致的情况。
只有在需求准确的基础上,开发团队才能设计出满足客户需求的软件产品。
1.2 确保需求的完整性:需求管理能够帮助开发团队收集和整理客户需求,确保需求不遗漏。
不完整的需求可能导致软件开发过程中的困惑和返工,增加项目的成本和风险。
1.3 确保需求的可追溯性:需求管理可以建立需求追踪矩阵,将需求与设计、测试、实现等不同阶段的工作关联起来。
这样一来,当客户提出变更请求时,开发团队可以更加方便地评估变更的影响范围,并作出相应的决策。
1.4 提高项目管理的效率:需求管理可以帮助项目管理人员在多个团队、多个开发阶段之间进行协调和沟通,提高项目管理的效率。
通过需求管理工具和技术,项目管理人员可以更好地跟踪项目的进度和资源分配情况。
二、需求管理的方法需求管理包括需求获取、需求分析、需求验证和需求追踪等多个方面,下面我们将分别介绍这些方法。
2.1 需求获取:需求获取是指通过与客户沟通、面对面交流、文档分析等方式,收集和整理客户的需求。
其中,与客户沟通是非常重要的一环,通过与客户深入交流,开发团队能够准确理解客户的期望和实际需求。
2.2 需求分析:需求分析是将收集到的需求进行深入细化和理解的过程。
开发团队需要将高层次的需求细化为可操作的软件特性,并对需求进行优先级和可行性评估。
2.3 需求验证:需求验证是确保需求的正确性和完整性的过程。
在需求验证阶段,开发团队会与客户进行确认,确保需求的准确性,并解决客户的疑问和建议。
软件开发过程中的需求管理

软件开发过程中的需求管理在软件开发过程中,需求管理是非常重要的一环。
通过合理的需求管理,可以提高软件开发的效率、降低风险,并最终实现客户期望的软件产品。
本文将着重探讨软件开发过程中的需求管理方面,包括需求收集、需求分析、需求验证和变更管理等。
一、需求收集需求收集是软件开发的第一步。
在这一阶段,软件开发团队需要与客户进行充分的沟通,了解客户的需求和期望。
通过面对面的会议、访谈、问卷调查等方式,收集客户的需求。
同时,也可以借助市场调研和竞争对手分析等手段,补充阳光不足。
二、需求分析需求分析是将收集到的需求进行整理、分类和理解的过程。
开发团队需要仔细研读收集到的需求文档,确保全面准确地理解客户的需求。
在需求分析的过程中,团队成员可以运用工具和方法,如用例图、状态图、数据流图等,对需求进行清晰的表达和梳理。
同时,需求分析还可以帮助发现潜在的需求冲突和矛盾,及时进行调整和沟通。
三、需求验证需求验证是确保开发团队理解准确的需求是关键步骤。
在这一阶段,需要制定一套明确的验证方案,确保软件的开发符合客户的需求和预期。
常用的验证方法包括原型验证、测试验证和用户验收验证等。
通过验证过程,可以发现并修正之前可能存在的误解和偏差,确保需求的准确性和可行性。
四、需求变更管理需求在软件开发过程中是可以变更的,因此,需求变更管理就显得至关重要。
在软件开发过程中,几乎所有的变更都会带来影响,包括时间、成本和资源等方面。
因此,需要建立一套规范的变更管理流程,明确变更的原因、影响和后果。
并且,变更管理流程需要与需求验证和项目管理相结合,确保需求的变更能够得到妥善的处理和控制。
五、需求文档管理需求文档是需求管理的重要组成部分。
在软件开发过程中,需求文档记录了需求的收集、分析、验证和变更等过程,也是需求沟通和交流的重要工具。
因此,需求文档需要规范、清晰地记录需求的内容和约束,并且需要根据实际情况进行定期更新。
六、需求管理工具和技术随着软件开发的不断发展,需求管理工具和技术也在不断更新。
软件开发项目中的需求分析与管理

软件开发项目中的需求分析与管理在软件开发项目中,需求分析与管理是确保项目成功的关键环节之一。
通过准确地识别和管理项目需求,能够有效地指导开发过程,并最终实现用户期望的功能。
本文将着重讨论软件开发项目中的需求分析与管理。
一、需求分析需求分析是指在软件开发项目初期,通过对用户需求进行认真研究和分析,明确项目的功能和性能要求。
需求分析的效果直接影响项目的后续开发和交付过程,因此需要详细而准确地进行。
1.用户需求的收集用户需求的收集是需求分析的第一步。
开发团队通过与用户、客户沟通,了解他们对软件产品的期望和要求。
这可以通过会议、访谈、问卷调查等方式进行。
在需求收集过程中,开发团队需要尽可能确保获取到全面和详细的需求信息。
2.需求的分类与整理收集到的需求信息需要进行分类与整理。
将需求按照功能、性能、安全性等方面进行划分,构建需求的分类体系。
这样可以更好地理解和组织需求,为需求的分析和管理提供支持。
3.需求的分析和详细化在需求分析阶段,开发团队需要对收集到的需求进行详细的分析和梳理。
通过与用户、客户的进一步沟通,澄清需求的不明确之处,并尽可能将需求细化为明确、可执行的指标。
需求的详细化有助于后续开发过程的顺利进行。
二、需求管理需求管理是指在软件开发项目中,对需求进行有效的组织、监控和调整的过程。
通过需求管理,可以提高项目的可控性和开发效率,避免开发过程中的需求变更和偏差。
1.需求的优先级规划在需求管理过程中,开发团队需要根据用户需求的重要性和紧迫性,制定需求的优先级规划。
将需求分为高、中、低优先级,有助于指导开发工作的安排和调整。
高优先级的需求应该优先考虑,以确保核心功能的实现。
2.需求的变更控制在开发过程中,用户对需求的变更是常见的情况。
因此,需求的变更控制也是需求管理的重要内容之一。
开发团队需要建立变更控制机制,对需求变更进行评估和审批,避免无效的变更和对开发进度的不利影响。
3.需求的跟踪和验证需求的跟踪和验证是确保项目进展顺利的关键环节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈软件项目中的需求管理曾创能-3320700632013年4月17日摘要:需求管理在软件开发项目管理中起着至关重要的作用。
本人以曾作为项目经理参与的国内某期货交易所核心结算业务系统(下称“结算系统”)的项目为例,阐述需求管理的流程和自己摸索出的一些需求管理方法和心得。
关键词:项目管理需求管理软件项目开发引言:在如今软件开发领域,尽管各种开发技术越来越先进,可利用的软件开发工具和方法也越来越多,但仍然有相当比例的软件项目失败。
究其原因,常常是由于在项目开始阶段没有正确地理解、确定和定义需求,或者是由于在项目进展过程中没有正确地管理需求。
众所周知,项目管理的三要求为TQC(时间、质量、成本)。
我个人认为,在软件开发项目中,要使TQC目标最大化,范围管理中的需求管理有着至关重要的作用,这与当今中国软件开发的特征有很大关系。
当前中国软件开发的领域集中在应用开发领域,多以开发业务管理系统为主。
而中国是新型经济体,在企业管理等领域处于逐步摸索、不断变更,以适应国际化竞争的转型初期。
在此转型阶段,各企业的管理模式、业务管理方法等有很大不同,且自身也处于不断否定自己的管理、不断变更自己的管理方法和调整业务模式之中。
作为软件项目开发承接方,必须适应中国这一各企业“需求各不相同”、“需求多变”的国情。
本人以曾作为项目经理参与的国内某期货交易所核心结算业务系统(下称“结算系统”)的项目为例,阐述需求管理的流程和自己摸索出的一些需求管理方法和心得。
软件需求管理的流程:软件需求是软件项目开发工作的一个重要源头。
需求管理一般由需求分析师和项目经理共同完成的。
需求分析师尽可能准确的理解和获取客户需求及潜在需求,编写《需求规格说明书》,而项目经理则需通过加强需求管理,有效的防范和减少不必要的需求变更。
按我多年项目开发管理经验,我个人认为,需求阶段准备把握了各类需求(功能、非功能、潜在需求等)并有效地管理需求,项目也就已经成功了一半。
在我负责结算系统时,按需求工程的方法论,将需求管理的流程可划分为如下几部分:✓制定需求管理计划需求管理计划往往被软件项目管理人员所忽视,很多项目经理在开发项目时,一上来就是让需求分析师跟客户谈需求去,这样做会导致需求工作的盲目性甚至可能让需求分析师无所适从。
在本项目启动时,我通过如下步骤制定需求管理计划:1、确定需求沟通机制;2、确定需求变更管理办法;3、确定需求跟踪方法;4、确定需求管理涉及的干系人,并明确职责;5、明确需求管理工具;6、编写需求管理计划。
✓需求调研需求调研是需求分析师一项非常重要的工作。
在本项目中,我确定了对期货核心结算业务吃得很透,具有5年以上相关经验的技术人员作为需求分析师负责与客户的需求访谈和调研,并成立需求组,在需求组中还配备了软件设计师和软件测试工程师旁听。
我认为,在需求阶段,虽然以需求分析师为主,但软件设计师和软件测试工程师参与非常重要,他们可以了解第一手的需求信息。
✓需求分析和定义针对获取的用户需求进行分析和整理,并规格化,形成需求规格说明书。
针对每项功能需求,定义需求的重要性、优先级、实现的难易程度。
✓需求确认针对需求规格说明,和客户业务、技术人员起来,通过讲解的方式,确认需求,并最终让客户方需求接口负责人签字确认。
✓管理需求变更管理需求变更是需求管理中非常重要的一环,也是经验不足的项目经理容易忽视的地方。
在软件项目中,没有不变的需求,不能指望在需求阶段一蹴而就,就此确定下来。
随着设计和开发的深入,有些原定的需求本来就可能显得不合理;加之时间的推移会伴随着客户业务的变化和发展,需求变更是不可避免的。
管理需求变更,是项目成功的关键因素。
在结算系统项目中,我采用如下方式对需求变更进行管理:1、需求变更申请需书面提出,并由客户方需求接口人签字认可。
当我方收到需求变更申请时,先由项目组经理与客户方需求接口人协商,协商未果,由包括双方领导在内组成的CCB审核,是否接受变更;2、CCB审核确定接受的需求变更,录入需求管理工具TD,并通知相关方(包括设计组、开发组、测试组),评估影响范围及工作量;3、针对需求变更,进行相应的设计和开发的调整;4、验证需求变更是否完成。
✓需求跟踪针对需求列表,定期对需求进展进行跟踪。
需求跟踪是指跟踪一个需求从定义、实现到验证的全过程,包括编制每个需求同系统各类元素之间的联系文档,这些元素包括其他类型的需求、体系结构、其他设计组件或模块、源代码模块、测试用例、帮助文件等。
需求跟踪的目的是建立与维护“需求-设计-编码-测试”之间的一致性,确保所有的工作成果符合用户需求。
如果采用手工操作方式,对需求进行跟踪,将是一个非常繁重的体力活。
在本项目中,我们应用TD管理工具,该工具把需求定义、设计(每项设计关联一个或多个需求点)、开发(建立开发模块与需求点的关联矩阵)、测试(每个测试用例关联一个或多个需求点)有机的联系在一起。
我负责专人(本项目以系统集成人员兼职)来定期扫描和跟踪需求的进展,可以让我随时了解项目的进展以及离完全符合客户所有需求还有多远的距离。
软件需求管理的心得体会✓要充分识别客户的需求和潜在需求客户的需求各种各样,纷繁复杂,我们要从中将这些需求进行分类。
有些需求是现有的业务规则和功能、有些是对现有工作的抱怨、有些是客户根据自己理解设想的业务规则和功能。
针对各类需求,我们要有不同的对待方法,尤其要慎重对待对现有工作抱怨的需求,这类客户他对现实不满,但又没有想法设想一套新的业务规则和功能,这时候需要我们充分理解,抓住客户抱怨的本质,通过自身对客户业务的理解,帮助客户设计一套能解决他的抱怨的新的规则和功能。
在本项目开发中,我们有重点地针对客户抱怨较大或较多的需求,内部召集相关人员充分挖掘客户的需求和潜在需求,并运用快速开发工具AxureRP-Pro搭建系统原型,以直观易懂的界面作为交流工具,充分讨论其是否满足客户的真实需求。
✓需求确认非常重要在以前的项目中,经常在项目验收时存在客户反悔、扯皮的事情,而项目开发时需求文档等各类开发文档却都很齐全。
究其原因,跟需求没有正式确认有很大关系。
有些项目经理或需求分析人员抱怨项目时间紧,客户需求人员没空,所以免了需求确认这一环节。
但我认为这一环节一定不能免。
哪怕项目组再忙,客户再忙,一定要想办法让客户书面确认需求并签字。
在本项目中,需求分析完成后,我通过给客户逐步讲解需求,同时逐步让客户对需求进行确认。
在客户需求变更后,我通过会议纪要、需求变更单等让客户确认签字以保护当前协商的成果。
✓需求双方都要务实需要双方领导层达成共识,需求是无止境的,项目成功才是关键的。
在本项目初期,我请求我方领导和客户方领导多次沟通,定下保证实现项目主要需求,一定要保障项目成功的基调,并为此做了一些物质上的一些激励,即我方拿出项目合同额10%的钱,激励由甲、乙双方共同实际参与此项目的项目人员,当然包括客户方的需求人员,如果项目按时上线,实现所有主要的日常业务功能,那么就可以参与分享此项目奖,否则该项目奖池归零。
✓设计实现别让需求扩大化追求完美是技术人员的通病。
在校期间,课程设计等计算机实现方面,学生追求算法完美可以认为是一种美德,但项目是受多种因素约束的,我们不可能实现完美无缺的项目。
我们的设计人员一定不要把需求放大,放到一个更完美,适应性更强的模型中,这样无形中扩大了项目范围,加大了项目的实现成本,对项目对个人都是有害的。
我们在提炼客户需求的时候,可以采用“往前跨半步”的方式,满足客户现在以最近的将来可能需要的需求以满足系统的灵活性,切忌追求更加抽象化,更加完美,盲目扩大需求范围,要知道,简单是美,适用的才是最好的。
✓严格规范需求变更控制流程项目开发中,需求变更是永恒的主题,我们要采取恰当的措施,正视这个问题。
以前项目开发过程中,由于客户方相关人单方面跟项目某一个开发人员指出说原理解的需求不正确,需重新拟定,导致后来需求变更泛滥,项目无法收尾的惨剧。
在本项目中,由双方领导层、双方项目经理等组成变更控制委员会CCB,并要求开发人员不得私自答应或接受客户某一个需求提出人员的需求变更,所有变更必须以客户方需求接口人汇总整理后,以书面方式提出向开发方项目经理申请,开发方项目经理可以与客户方需求接口人讨论是否接受和拒绝需求变更,当不能达成一致时,交由CCB,由CCB决定是否变更,确有变更的,录入到变更控制系统TD,并通知各方实施变更。
通过这套机制,客户要实现需求变更不是那么随便,有很多人会参与监督这一变更过程,客户也害怕自己的形象受损,有效杜绝了客户需求提出人员对需求的朝令夕改和源源不断提出的可有可无的需求的情况发生。
✓别忽视需求跟踪不要等到UAT时,才发现需求未实现,或实现不全,这样会让验收工作苦笑不得,影响在客户方的形象。
在本项目中,我委派系统集成人员兼做定期的需求跟踪,每个月一次,以检查正在进行的设计和开发,其功能点是否符合对应的需求。
✓抓住客户方需求接口人在项目启动初期,一定要要求客户规定唯一一个需求接口人,这个接口人就是项目开发方的教练(coach)。
在需求阶段,需求接口人需始终跟需求组一起,跟客户的各个部门一起讨论客户需求,所有部门的需求需经需求接口人同意。
这样做好处很多,客户方需求接口人起着沟通项目甲乙双方桥梁的作用,甚至算半个乙方(项目开发方)的人。
在讨论和汇总客户各部门、各人员的需求时,客户方需求接口人可以帮项目组过滤一些无用或很次要的需求,也可以协调客户部门各人员需求的冲突,更可以协调项目甲、乙双方的需求理解偏差和冲突。
客户方需求接口人还可以通过全程参与项目需求管理,了解更多以前没有机会了解的业务,提升自身业务能力,这也是他(她)所乐见的。
在项目验收时,客户方需求接口人可以根据自身全程参与,更深入地理解系统需求的重点,在验收或试用阶段如果有实际操作人员有反悔的情况,他(她)可以以更深入地对业务和对系统的理解来调停。
苦练内功,适当引导客户需求有很多时候,项目组开发人员抱怨客户需求太霸道,实现起来很别扭。
但究其原因,发现是由于你别客户牵着鼻子走,客户说怎样就怎样,但客户又不是计算机设计专家,导致项目开发人员抱怨不断。
我们在项目开发过程中,一定先要虚心听,且要多问几个为什么,然后在自己公司找相关业务专家、行业顾问多咨询,以更简洁、更合理的模型来满足客户需求。
如果自己公司缺乏行业经验,一定要聘请业务专家、行业顾问等专业人士,通过行业知识和业务的培训和专业指导等方式,提高项目团队特别是需求分析师对客户需求的把握能力。
此外,还可以对客户方业务人员提供免费的计算机和软件开发等基础支持的培训,以便引导客户需求提出人员以更接近技术人员的方式提出合理的需求。
结尾以上是我在负责国内某期货交易所的结算系统项目中,对需求管理流程的一些认识和心得体会,供广大同行交流,希望能抛砖引玉,为我国信息系统项目管理水平提高做点应有的贡献。