敏捷顶层设计方法(3)

发表于:2013-03-25来源:减法架构设计专业论坛作者:高煥堂点击数: 标签:敏捷
通常,人们会认为上图-9的三个步骤就已经完成了顶层设计,其实不然。因为从事实务经验中发现,常常会走到了中层设计步骤时,才发现业务模式可以有

  通常,人们会认为上图-9的三个步骤就已经完成了顶层设计,其实不然。因为从事实务经验中发现,常常会走到了中层设计步骤时,才发现业务模式可以有更多的创新,因为需要重新变更上层的业务架构设计。因此,需要像敏捷(Agile)开发一样,采取迭代(Iterative)模式。如图-11所示。

top-level-10

  图-11 顶层设计阶段也需要迭代

  所以顶层设计也需要迭代,于是我们采用敏捷的TDD来带动图-10里的迭代过程,来检验顶层设计、持续迭代,并不断重构顶层设计。

  3. 展开敏捷过程:检验顶层设计

  敏捷TDD所带动的迭代过程,其基本机制如图-12所示。

top-level-11

  图-12 基本的敏捷迭代机制

  如果将上图-12的迭代机制,整合到上图-11,就成为图-13所示了。

top-level-12

  图-13 顶层设计的敏捷迭代机制

  于是,以敏捷方法来检验中程设计里的EIT代码,如果有错误,就反馈给中层设计人员,必要时就进一步反馈给更上层的业务架构规划者,甚至调整高层愿景,这就是迭代&反馈的效益。

  这项敏捷TDD机制,是本方法的重要检验机制;它是为了提升顶层设计的<可实现性>,也就是检验顶层设计的互联互通规范能落实为实际的IT系统。除了TDD的检验机制之外,本方法里还采用AHP分析方法来评选顶层设计中的重要决策,这可确保顶层设计的决策<最佳性>。在下一节里将说明之。

  4. <敏捷大迭代>驱动

  本方法里,采用AHP决策分析方法来评选顶层设计中的许多重要决策,这可确保顶层设计的<最佳性>。顶层架构设计是要规划一个城市、家庭或大型系统的未来发展情境,其涵盖了各项未来投资,让城市、家庭或其它系统从现况(As-is)逐渐成长、演进,迈向未来(To-be)的美好情境。那么,我们又如何选择最好的决策、评估最好的投资、实践最美好未来呢? 除了顶层设计人员的主观评估之外,我们还需要仰赖定量、定性的分析方法和工具来协助评选出最好的设计决策和投资方案。

  然而,在AHP里并没有涉及深层的通信接口的检验,有时候经由AHP评选出来的最佳决策,落实到中层设计时,却无法通过敏捷TDD的检验,表示不具有<可实现性>,于是透过敏捷迭代(称为大迭代)去驱动AHP的重新评选(称为小迭代);如图-14所示。

top-level-13

  图-14 敏捷TDD迭代驱动了AHP迭代

  大家都知道顶层<设计>必须能流畅地<实践>才发挥其价值。然而,如何达到这种美好境界呢? 本方法采用敏捷TDD和AHP决策分析方法双重迭代机制,来协助顶层设计达到最佳性和可实现性。所谓可实现性,就是顶层设计最核心的<互联互通>规划,将来实际投资建置系统时,真的能顺利而流畅地对接起来。

  5. 衔接到实践层的传统敏捷开发

  5.1 实践层的敏捷迭代过程

  到了<实件开发阶段>,中层设计人员也会参与实践阶段的敏捷TDD迭代&反馈过程,协助实践开发人员来活用EIT造形,将较为细节的设计规范,包括软件、硬件平台的选择、数据库设计、代码测试方案、性能优化设计等实践层级的细节考虑等;包容到EIT造形的接口定义里;落实了顶层设计的互联互通要求。如图-15所示。

cm-08

  图-15 实践阶段的TDD迭代过程(产出软硬整合系统或模块)

  在这实践阶段的敏捷迭代过程里,以中层设计的产出代码为基础(Simple Solution),展开迭代过程。这个中层设计里的EIT造形就是软件<集装箱>,实践层的开发人员可以将实践层级的软件代码直接添加到中层设计的EIT造形里。而且能设计EIT造形幕后的形形色色软件代码,来处理实践层级的细节计算。所以,中层设计里的EIT造形的创意组合结构,能顺利成为实践层的基础架构,一方面作为实践阶段敏捷迭代过程的起始点;另一方面,基于这个基础架构,实践层的架构师可以增添较为细节的设计规范,包括软件、硬件平台的选择、数据库设计、代码测试方案、性能优化设计等实践层级的细节考虑;成为软硬整合的系统架构。愈大规模的SoS系统开发,其中层设计就愈重要;而造形则扮演核心角色。因为它为上、中、下层人员开创设计概念的一致性(Conceptual integrity),让他们获得一致的共识(Shared understanding)。

  5.2 各系统的深度软硬整合开发

  以深度软硬整合开发来支持各系统的独特性、普遍性和可靠性。为了实践各业务区块顶层设计的独特性,实践层必须仰赖深度软硬整合来达成;因为只透过单独软件或内容的特殊化,已经不足以支撑移动互联网时代的个性化需求了。尤其在开源开放的平台上(如Android),其产品多样性、市场普及和高度竞争;无论您是软硬件厂商、内容媒体业者、或是电信运营商等,都会积极将软硬件特性整合到自己的产品和(增值)业务上,藉由软硬整合手段来表达其创意和独特性。

  同时,移动终端系统平台版本的不一致性(俗称碎片化)、软硬件产品的百花齐放;在产品运行环境上,您也会让自己的系统(产品)或业务能完美跨(软硬件)平台,获得<普遍性>,是降低成本和迅速扩大市场的不二法门。因之,无论您是产品(或业务)的企划者、开发者或经营者,都会积极关注于软硬整合和跨平台相关议题上,力求在市场竞争上的独特性和普遍性。

Noname

  图-16 软硬整合系统(产品)的主要特性

  俗语说:欲速则不达。在力求上述的独特性和普遍性时,其生产过程往往是环环相扣的,如果关键环节不可靠,将会功亏一篑。于是,就需要精致的测试环境来检验产品的结构、效能和安全等,力求其可靠性。一旦,您的产品兼具了独特性、普遍性和可靠性,并取得用户感情的回馈,就能日益提升用户体验了。也许您会觉得要兼顾独特性、普遍性和可靠性是一件难度很高的事情。其实它们都是一个有机体的诸多面貌而已,只要切入其核心、关注其基因(gene);并且领悟它、淬练它,就能顺利兼而得之、一劳永逸了。

原文转自:http://223.26.63.39/?p=138