根据 Ian Thomas 的研究:一次又一次,IT 技术始终未能交付预期价值。Ian 认为我们所有人
都需要承认这些趋势,并从其他成熟行业的工业化进程中汲取教训。
在详细阐述早期工作的基础上,Ian Thomas讨论了软件交付工业化所需要解决的问题及其解决方法。
Ian 首先定义了他对平台 (平台即服务,简称 PaaS) 和软件 (软件即服务,简称 SaaS) 工业化交付的看法,
我们处于 IT 产业某种重大变革的前沿,并且通过 SOA, Web2.0 和 Saas/PaaS 等技术的出现,我们仅仅只看到了这些变革的早期苗头。我认为组织将会被迫分解和重组,其技术将变得越来越商品化……“软件即服务”已经开始证明存在可以用较低开销将同一功能分发给大量客户产生规模经济的模型。人们最终将逐步认识到,大家都不特别;他们工作的 80%并不需要对功能进行定制或裁剪;在帮助人们重新关注业务价值的过程中,SOA 将揭示出以往许多 IT 投资是愚蠢的。
据 Ian 所称,业务具有不断模块化的趋势:
在过去 100 年间,由于与第三方交易成本的不断降低,规模较小的商业组织逐渐受到专注……WEB 技术将这类交易成本降到近似为零……这将触发业务集合体的又一轮瓦解,使我们将重点放在“能力件”这一更小的业务粒度上。
这种更小的业务单元,一方面因为能更好地理解其提供的价值,会极大地提升它的机动性;另一方面为了通过降低交易成本来在市场上取得优势,更加注重成本。这类小型业务单元的定义可以通过基于能力件的分解实现(类似报告作者所著的《应用 SOA(Applied SOA)》书中对业务模型的定义)。
传统组织采用业务流程、组织结构和 IT 架构来表示组织的设计……如果他们使用企业架构方法的话,三种都有可能。这些视角的一个最大问题在于,它们很少告诉我们合并的输出到底是什么……要做的事情是什么,实现了哪些基本商业组件?。……这些业务视角天生就是不稳定的,因为它们表达的是“事物如何在某一特定时间之前完成”;最终他们需要定期变更,并且以不同的速率……能力件从另一个抽象层次来看待这些问题。它们能够看到组织的稳定、组件部分,无需操心它们的工作方式。这样,我们就可以系统地关注组织需要的东西……依据产出和承诺……而无需让我们关注这些承诺实现的具体细节……本质上,它们就是意图的表达并将策略作为结构表示。
作为成本驱动的结果,能力件的所有者将从内外两方面寻找 IT 解决方案,并试图回答以下问题:
- 是否有人可以从外部为我提供满足我需要的性能级别的能力件。例如,SaaS 或者 BPU 可以依据使用和订阅两种方式提供这种可用性。
- 找到谁能以最快、最可靠、最经济的方式帮助我实现我的能力件。
这种 IT 能力技术强调了“能力件实现平台”的重要性。这种平台是一个标准化的程序集(assembly),能够托管能力件,由不同厂家采用不同技术实现。
这种实现平台……需要我们将基础设施、应用、业务和服务管理纪律(discipline)集成为一个综合、可靠和可伸缩的能力件实现平台。它反映出服务交付不是一个技术问题,而是一个整体性的纪律。更重要的是……至少我们认为:这种平台需要高度的工业化;由基础设施、应用、业务和服务等方面的可重复、可靠和有保证的组件构建而来,从而保证为客户产出合格产品。
在文中,Ian 描述了这种平台的主要构件,它是企业服务总线(ESB)的延伸,增加了:
服务工厂:高度模板化的建模及开发环境,通过使用一套用 DSL 表示的架构和开发模式来完成服务设计、实现和部署流程,促使人们自上而下地实现能力件的抽象概念视图。这里的 DSL 可以是 UML profile 文件组、小语言或者专门为服务域实现的完整 DSL 的结合体。
近 10 年来的多篇已发表论文中已经覆盖了工业化的软件交付。Ian 的文章描述了实现这一转变所用到的分解技术和软件平台(如 TRIOLE )等实用步骤。
查看英文原文: The Industrialization of Software Delivery - - - - - -
刘涛,博士,毕业于西安交通大学,主要研究网络体系,现在主要从事多核环境下高性能算法的研究与开发工作。曾经进行过多个企业级软件的设计与开发工作。关心开源软件的发展动态,乐于使用开源软件。对前沿的系统软件与技术有浓厚兴趣。
评论