在系统工程实践中,我们常常面临一个核心挑战:如何从利益相关方纷繁复杂的“观点”中,抽丝剥茧,找到接近客观“事实”的真实需求?INCOSE(国际系统工程协会)的《系统工程手册》为此提供了一套严谨的方法论。
INCOSE手册将技术过程组细分为业务和任务分析、利益相关方需要和需求定义、系统需求定义和架构定义等14个核心过程,其流程关系如下图所示。

图:INCOSE系统工程技术过程组
在初始的“业务和任务分析”过程中,我们需要确定主要的利益相关方。紧接着,在“利益相关方需要和需求定义”过程中,一个至关重要的环节是理解每位利益相关方的角色及其独特的观点。这些观点是识别其需要和需求的基础依据。
然而,INCOSE手册也明确提醒我们:“……利益相关方的观点将受到基于特定角色、教育、工作经验、文化的认知偏差的影响。利益相关方的观点是在这些偏差的背景下形成的。” 这指出了问题的关键所在:认知偏差无处不在,它总会或多或少地让观点偏离事实。如果我们不加辨析,直接基于这些带有偏差的观点来定义需求,最终的系统需求便难以客观反映事实。
那么,如何克服这一难题?答案在于采用系统思维。系统思维是一种明确将所处理的问题视为一个整体“系统”的思考方式。这意味着我们需要从问题的各种关联关系中去认识它,并同样从这些关联中寻找解决方案。
一个理性、结构化的工程问题解决思路,通常遵循这样的路径:首先追问“为什么?”(目的与原因),然后思考“如何做?”(方法与路径),接着确定“用什么做?”(技术与资源),最后评估“成本是多少?”以及“做得有多好?”(效能与成本)。基于这些评估,我们可以回头审视所选择的技术途径是否恰当,从而做出最终的架构分析与决策。这种问题系统及其内部关联,可以用下图清晰地表示。

图:系统思维中的核心问题关联模型
如果我们使用对象过程语言(OPL)来形式化地描述上述认知和解决问题的过程,那么系统思维便可以具体化为一个更具操作性的模型,如下图所示。

图:基于OPL的架构定义与详细设计关联模型
这个模型的价值在于,它清晰地界定了“观点”所指向的客体。它将任务、功能逻辑和产品(物理实现)三个层次明确区分开来,避免了将针对不同层次的观点混为一谈。
设想一个场景:如果某位利益相关方没有遵循“任务 -> 功能逻辑 -> 产品”的正向思考顺序,而是直接跳出来提出了一个具体的“产品需求”(这通常只是一个基于其认知的观点)。此时,开发者可以借助这个模型进行反向追问:为了实现这个产品,背后需要的事实功能逻辑是什么?而要支撑这些功能,所要完成的事实任务又是什么?通过这一系列的追溯,很可能激发出超越原始“产品需求”的、更多样化的设计思路。
由此可见,上图所示的模型为INCOSE技术过程组(尤其是需求与架构定义过程)提供了一个坚实的系统思维框架。它将利益相关方的各种观点进行清晰归类,明确指出每一个所谓的“需求”究竟是关于哪个层面(任务、功能还是产品)事实的观点。这种方法能够有效避免开发团队盲目跟随主观意见,驱使观点不断逼近客观事实,从而为后续的系统设计与实现奠定可靠的基础。对这类系统工程中的思维方法感兴趣,欢迎在云栈社区交流探讨。
|