初学架构设计的第一步:需求、愿景与架构
了解<需求>、<愿景>与<架构>三者的关系。也就是<需求分析>、<观想愿景>与<架构设计>三者的关系。
一、需求(Requirements)分析:
这通常是由目前面临的问题(Problem)所引发出来的。着重于现实问题和条件的分析,然后寻求解决问题的方法、技术和资源。就系统开发人员来说,需求主要有两种:用户需求和系统需求。一般而言,人们通常会把它看成是系统开发时必须满足的<限制>(Constraint),也是要达成的<目标>(Goal)。

(视频课程,请点击上图)
二、观想愿景(Vision):
由于需求非常贴近现实,若直接拿来当作<目标>的话,常有见招拆招或见树不见林的缺点。甚至,会有<短视而缺乏远见>之嫌。于是,透过观想愿景来汇集更多视角、扩大视野、产生洞见,成为系统开发的理想目标。一般而言,带来重大革新的公司(如苹果)都会提出一个愿景(Vision),告诉人们应该去追求的事物。苹果公司的前首席设计师布鲁诺(R. Brunner)说道:“通常,伟大产品的成功之道并不是从草图和定义开始的,而是以一个点子(想法)开始,形成一条切实可行的路;然后对此不断开发和经营,这是一个战略性的过程。”
(视频课程,请点击上图)
三、架构(Architecture)设计:
两者互补:需求分析偏重<分>,架构设计偏重<合>

需求分析与架构设计是两个不同视角,互补而相成,所以架构师必须兼顾两个视角,才能完成一个优质的架构(蓝图)。架构是独一无二的,架构设计是追求独特性的、气象万千的、与众不同的崭新组合。
苹果乔布斯说:“创造无非就是把事物联结起来。即若是非凡的创造通常也不过是对已有事物进行的新组合和关联而已。”
在《7 Brains:怎样拥有达芬奇(De Vinci)的7种天才》一书里,作者写道:“能不能看出事物的关系和模式,并做出不寻常的组合和关联,乃是创造力的核心要素。”
例如在飞机行业里,架构师的愿景是把一群各自「不会飞」的组件(如轮胎、引擎、机翼、机尾、油箱等),以精致架构将它们巧妙地组<合>起来,竟然整体就飞起来了。如下图:


相關文章:
1. 两种观点兼顾的架构设计方法
~ End ~