良好的需求定义应该包括对系统边界的描述。系统边界是系统包含的功能与系统不包含的功能之间的界限。也就是说,需求定义需要指出系统内部和系统外部的分界线。这一界定过程一般会在需求分析时完成,我认为,这个边界描述应该成为需求规格说明书的必要组成部分。它可以描述为系统“做”什么,也可以更清晰和明了的指出系统“不做”什么。这个边界,应该像孙悟空用金箍棒画的圈圈,被圈起来的需求,必须是只能出不能进;否则,需求边界蔓延就发生了。
需求边界蔓延,也即是项目管理中所说的范围蔓延(scope creep)。
在百度百科中,项目范围蔓延的定义如下:
范围蔓延和特征蔓延是项目失败的原因。项目超出计划的目标,通常被称为范围蔓延。范围蔓延是:在系统项目进行期间不期望的需求缓慢增加。特征蔓延是:不受控制地增加技术特征到一个项目中。你本来想更好更出色的完成项目,但你不断增加新的想法...可能会失去宏观上对项目的把握,反而失败。
项目范围管理是项目管理的基础,范围管理不成功,其他管理便无从谈起。范围发生变更,进度、成本、质量乃至人力资源都有可能跟着变更,只有确定了项目范围,才能合理确定项目的进度、成本和质量要求。从这个意义上说,项目范围的确定和管理是项目成功的基础。相对于特征蔓延,范围蔓延更常见,更普遍。
我们常常见到的场景是这样的,技术总监在电话里气急败坏的向项目经理吼叫:“我们必须拥有这个功能,否则就完蛋了”。这是非常经典的桥段。边界蔓延即将发生,我们应该对此心领神会。
项目经理有责任清楚、准确地