需求基线是需求管理活动中最为基础的一个,通常是项目中首先引入的管理活动。需求基线中包含两个重要内容:“特定版本”和“一组需求集合”,一旦引入需求基线,就意味着团队抛弃了“瀑布模型”的软件开发生命周期,转而采用分阶段或迭代的开发模式。确定统一、明确的需求项划分标准十分重要,应该以业务驱动划分标准。基线划定的基础是优先级评价,首先将所有的需求项组织成一个树型结构,然后根据业务结构特点对所有需求项划分等级,从技术实现、项目风险调整优先级。对业务优先级评价时按照标识关键用例、标识重要用例、标识有用和一般用例的步骤进行,评价具体功能点的优先级时,应将其放到业务场景甚至是业务流程环境中考虑。要划定基线,还要具备工作量估算这个要素,软件估算实际上是一种手段而不是目标,追求的是管理的可控性,而不是估算结果的准确性。在划定基线时,首先根据优先级进行筛选,优先级越高的就应该安排在较早的基线中。优先级是相对的,要在同一级中进行比较。
需求变更频繁一直困扰软件开发团队,所以要进行变更管理。变更的来源无外乎两种:一是我们捕获的信息不全面,分析的结果不正确等;二是业务流程、业务规划在不断的变化,我们应该尽可能的避免错误,同时也要加强对变化的预测。但是需求变更是无法避免的。需求变更的目标是控制变更,而不是避免变更,控制变更的目标是减少变更对开发工作产生的巨大影响。若要对变更进行有效的控制,要抓好两方面的工作:“统一渠道”和“统一平台”,同时需要开发团队集体努力。建立统一的渠道可以让客户意识到变更的成本,减少“来路不正”的变更,记录变更的工作,采用统一渠道来接受、管理变更很重要,因为变更可能相互冲突、变更量无法引起重视;统一的管理平台可用于解决需求变量大、易于变化等问题。在选择变更管理平台时,需求变更的生命周期管理、有效的权限管理体系、变更的分类与分析功能这几个方面很重要。
需求跟踪是一个高阶的管理活动,它的目标是为了更好的管理需求的状态、更好的分析需求变更产生的影响。需求跟踪是将单个需求和其他系统元素之间的依赖关系和逻辑联系建立跟踪,元素包括各种类型的需求、业务规则、系统架构和其他设计组件、源代码模块、测试用例以及帮助文件等。需求跟踪涉及到5种类型的跟踪链:从用户原始需求向前跟踪到软件需求;从软件需求向前跟踪到下游工作产品;从下游工作产品向后回溯到软件需求;从软件需求向后回溯到用户原始需求;软件需求到软件需求的跟踪。要对需求进行跟踪,必须对每个需求定义一个唯一的标识,并且以前后统一的方式进行统一标识,在实际需求跟踪过程中,主要有表格法和链表法两种管理策略。
需求开发活动都是必备的,但是需求管理活动都是可选的。任何管理活动都是有成本的,因此必须对成本/效益进行分析,并不是所有管理活动都做到位就是最好的。借助基线管理能够使开发过程更加有计划、有节奏,而“良好、统一”的需求项划分标准是做好这一工作的基础,实现切实可行的优先级策略和估算方法是使基线管理有成效的必备要素。统一渠道、统一平台两大最佳实践能够为今后的工作奠定坚实的基础,为缓解变更影响提供有效的支持。我们应该根据项目、人员的特点,选择部分有意义、有价值的跟踪链,有时候也可以对项目的一部分进行跟踪,选择合适的需求管理工具,降低需求跟踪的工作量。
我们并不缺乏软件工程、需求工程的理论、技术,缺乏的是将这些理论与技术有效的应用到实践中去的具体方法发。另外这本书是由SERU过程框架贯穿下来的,这一框架可以分为3个阶段:“需求定义”阶段、“清理需求框架和脉络”阶段、“填充需求及细节”阶段。对于需求有几个要点:需求定义勿忽视、需求捕获要科学、需求分析要业务、需求建模要实用、需求评审要实效、需求文档要应用。