速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

中台之上(十):业务架构设计“笨重”,它能跟敏捷沾边吗?

  • 2019-03-13
  • 本文字数:3629 字

    阅读完需:约 12 分钟

中台之上(十):业务架构设计“笨重”,它能跟敏捷沾边吗?

传说中和现实中的双模开发

“天下武功唯快不破”。电影《功夫》中火云邪神这句台词可谓深得互联网时代竞争的要旨,也不乏业内人士常常感叹,一个产品的成功可能只是领先对手一周甚至两三天的上市时间,产品创新速度、市场响应速度越来越被企业重视,但这两个指标似乎都是大型企业,特别是传统行业中大型企业的弱项。所以,不少人都致力于教大象跳舞,不断有关于软件过程、项目管理的概念应运而生。比如,Gartner 在 2014 年提出了“双模开发”,敏态加稳态,可预见性的业务使用传统瀑布式开发,也就是稳态;探索性业务使用敏捷开发,也就是敏态。


2015 年,Gartner 对全球 2800 多位 CIO 进行了一次调研,结果显示:38%的企业已经实施了双模 IT,26%的企业将在未来 3 年内实施双模 IT,只有 13%的企业不会实施双模 IT,另外还有 23%的企业则不确定。虽然没有找到近期的数字,但是按照 Gartner 的说法“双模开发”少说也占据了半壁江山。我无意在这里去质疑或者争论这种统计,但是,显然这些 CIO 们口中的敏捷开发未必是“敏捷宣言”所提到的敏捷开发,更多的还是应对特殊需求时,打破常规的“快速”开发,省略了通常的管理环节,组个小分队,快速上线。这种剧情相信大家都经常遇到,市场着急、领导着急,大笔一挥,桌子一拍,下月上线。当然,对互联网科技公司而言,可能就是下周上线。所以,大家都经常在稳态和敏态,也就是按部就班和大干快上中做来回切换。


无论是符合敏捷开发定义的敏捷,还是特事特办的敏捷,都意味着忽略既有流程中的一些环节,压缩周期,快速实现目标,那么,相比之下,经过业务架构设计、应用业务模型驱动的开发是不是显得有些笨重,是否与敏态不兼容?是否在敏捷过程中应该被省去?要回答这些问题,我们还是从符合敏捷开发定义的敏捷和特事特办的敏捷这两个角度分别看看吧。

跟正宗的敏捷比比

说到正宗的敏捷开发,自然要说到“敏捷宣言”中提出的四个核心价值:个体和互动优于流程和工具、工作的软件优于详尽的文档、客户合作优于合同谈判、响应变化优于遵循计划。最直接的冲突莫过于第二项,敏捷开发素来以“不重视”文档闻名,但其实敏捷开发并非不要文档,而是不要那么详尽的文档,过于详尽的文档会消耗大量不必要的精力,而用途又非常有限。对于开发人员而言,在软件维护方面,高质量的需求文档远不如整洁的代码加上详尽的注释会更让人清楚软件的结构,所以敏捷开发在这方面做了大胆的改变。但是,敏捷开发也还是要求有一份恰当的概括性文档作为项目的总体目标,而不是什么都没有就甩开膀子干。如此,业务模型这套方法要想与敏捷开发融合起来,自身也必须具备一定的简洁性。


从之前的介绍来看,首次企业级转型肯定不适合这么干,而且企业级转型需要深思熟虑,也不是应该去“敏捷”完成的事情。一旦转型结束,具备了企业级架构之后,就是如何快速应用架构工具的问题了。我之前提到过,业务模型不应该承载太多的业务细节,要保持适当的抽象度,否则不利于对企业级的描述,至于细节要描述到什么程度,不同的企业可能会有不同的要求,大的原则是,可以基本解释清楚任务对数据实体的创建和变更,以便划分任务以及组件的边界。因此,模型本身具备快速应用的潜质。而且,模型本就是一张“作战地图”,通过模型也可以更快摸清项目范围、涉及的组件和团队以及潜在影响。敏捷并不是不顾一切的敏捷、更不是牺牲企业级架构一致性的敏捷,否则,敏捷项目就成了为短期利益而有意忽视长期影响的盲目行为。无论多着急,不看看地图就冲向战场,都是危险行为。不过话说回来,模型分析和调整需要一定的过程,企业级这类庞大的模型体系也需要工具来支持,否则真的谈不上快。


这似乎跟第一项核心价值也有冲突。其实不然,敏捷开发的速度来自于节省不必要的步骤和提高协作的效率,所以“个体和互动”才“优于流程和工具”,注重面对面直接交流,减少分歧。这就要求业务架构师必须参加敏捷项目,在项目中快速完成架构分析,把控项目引起的架构调整,而不能在项目之外等着按“流程”操作。敏捷开发团队在要在业务架构师的直接参与下,在项目一开始就根据需求描述快速使用模型工具澄清项目范围,列出对架构的改变事项,这其实也是对企业“统一语言”构建效果的检验。在项目期间,业务架构师则可以根据项目的具体情况完成对模型的详细调整,实现并行作业。所以,应用业务架构和业务模型驱动的开发过程,可以转变为敏捷过程,并为敏捷过程提供更好的分析依据。

跟“特事特办”论论

再说到特事特办的敏捷。这种敏捷其本质就是“临时事项”,因事而立,事过则废,这种方式其实对企业整体的架构管理带有一定的破坏性,往往会直接要求一些违反“架构”整体安排的改动。而事后也经常无人对此负责,做了就做了,然后交给运维团队去维护。有些真有长期价值的系统可能会持续使用,还好些,但是做了之后就再无人问津,半死不活地躺在哪里的系统也屡见不鲜。


与上文提到的“真”敏捷不同,“真”敏捷是软件过程的差异,并不意味着要去违反企业级,可以与企业级很好地融合;但是有些特事特办的敏捷确实有不管不顾的意思,上线是唯一目标,手段可以不问。这种情况就很棘手了,因为它超出了业务架构师的控制能力之外,是对企业文化的考验,是对企业维护其企业级架构决心的考验。


不过我们还是坚持下具体问题具体分析,别一概而论地扣大帽子。


首先,有些项目确实形势逼人、速度第一,不上线毋宁死,这种要举全局之力搏一隅的情况不支持也不行,但是业务架构师要切实参与到项目中,不但要给出当时的架构设计建议,也要尽快给出影响分析和事后的重构方案,如果成本允许,尽可能要在企业“搏命”之后,回归正途,避免架构遭到破坏,如果成本不允许,那这块架构“飞地”也要标识清楚,尽可能让它成为以后架构设计可以利用的“轮子”而不是会踩的“坑”。


其次,对于不具备上述价值的“特事特办”,架构师应该从业务架构的角度申明其立场,给出认真的分析意见,这是架构师自身的职业操守,而能否容忍架构师的意见则是企业文化的真实体现了。如同会议表决中的“保留意见”一样,如果架构师真的反对项目的设计和实现方式,那企业就必须在项目文档中保留其分析意见,这倒不是非要“立贴为证”,而是在未来真的需要调整时,作为参考意见使用,同时也供所有架构师进行检验和学习。这是对企业级的一种警醒,但并不是业务架构师工作中的常态,也不应是其工作追求的目标,架构师不是以参倒了宰相为荣的“言官”,要有原则但也不要让自己孤立,更不能变成言必称企业级、处处拿大帽子压人的“反对派”,架构师的宗旨是解决问题,而不是让自己变成问题。虽然跑了点儿题,聊了下架构师的素养,但这是“特事特办”牵出来的,足见这种事的麻烦,它超越了正常工作的范畴,带有点儿其他色彩,需要架构师谨慎对待。


综上,无论是否企业有意识地推行过“双模开发”,大家也总是忙碌在一般流程和“特事特办”之中;无论是否建立了敏捷开发体制,也总有项目必须要快上。大型企业中,企业级体制建立不易,打破却很容易,不要为了“快”而牺牲企业级。管理大企业开发就像指挥大兵团作战,既有担当主力、要稳扎稳打的方阵部队,也有要处理特殊任务的游骑兵,多兵种之间的有序协作是克敌制胜的关键,这就离不开有序的架构管理,通过业务架构方法、应用业务模型驱动开发本身与敏捷并不矛盾,敏捷可以是、也应该是一个有序架构体系下的敏捷,而不是“叫嚣乎东西、隳突乎南北”的乱闯,好像有句格言,“捷径是迷路的最快方法”。所以,一定要有效利用业务模型这个“作战地图”,培养好业务架构师这个“领航员”。


说到这里,朋友们也不妨想一下,仅凭中台模式就能很好地解决敏捷问题吗?其实,这应该还是一个更大范围的企业管理或者企业文化要去解决的问题,它并非一个单纯的开发模式或者技术架构问题,之前我也提到过,企业级业务架构设计是希望实现企业整体的联动、文化的转型,而不是仅仅建立一套系统,实际上,阿里的中台背后支撑其运作的也是阿里的企业文化。没有敏捷起来的往往不单纯是工具,而是人和人所在的环境。


相关文章:


中台之上(一):重视业务架构,不要让“业务的归业务、技术的归技术”


中台之上(二):为什么业务架构存在 20 多年,技术人员还觉得它有点虚?


中台之上(三):战略和组织结构,业务架构设计中不应被忽视的关键因素


中台之上(四):面对复杂的流程和数据,我们总结出了一个分析套路


中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型


中台之上(六):如何为一个商业银行设计业务架构?


中台之上(七):不神秘但很麻烦的业务架构落地过程


中台之上(八):企业级业务架构的实现需要不断沟通和调整


中台之上(九):如何基于企业级业务架构管理业务需求?


作者介绍:付晓岩,原国有大行资深业务架构师,负责业务架构设计、项目管理,热衷新技术探索与实践,具有丰富的银行业务经验和企业级项目业务架构设计经验,曾主导客户关系、金融市场、同业、资管、养老金等多个领域核心系统的业务架构设计。公众号:晓谈岩说。



2019-03-13 08:005810
用户头像
钰湚—付晓岩 企业架构理论研究者,业务架构设计倡导者

发布了 78 篇内容, 共 63.0 次阅读, 收获喜欢 433 次。

关注

评论

发布
暂无评论
发现更多内容

“十四五”规划,开源重塑软件发展新生态,获国家重点扶持

腾源会

开源

WAVE SUMMIT+2021深度学习开发者峰会举办,开源共建助力飞桨生态发展

科技热闻

重磅|腾讯云开源业界首个 etcd 一站式治理平台 Kstone

腾源会

开源 cncf Kstone

解决rabbitmq消息队列的顺序及重复消费问题

编程江湖

大数据

Android aapt 在 Mac 和 Windows 上使用方法小结

阿策小和尚

28天写作 Android 小菜鸟 12月日更

东汉末年,他们把「服务雪崩」玩到了极致

悟空聊架构

熔断 28天写作 服务雪崩 悟空聊架构 12月日更

【漫画】数据云,真香在哪?

星环科技

大数据

Java Web开发之API Boy的进阶之路

@零度

Java web API boy

神器来袭,手把手教你使用 Milvus_cli

Zilliz

数据库 命令行

联邦学习在光大科技的落地应用

博文视点Broadview

华为硬件配置命令,建议收藏

Ethereal

网络工程师 网络技术 华为设备 厂商设备 运维技术

给弟弟的信第15封|情绪控制的重要性

大菠萝

28天写作

今夜无眠

Tiger

28天写作

Nebula Graph 源码解读系列 | Vol.06 MATCH 中变长 Pattern 的实现

NebulaGraph

图数据库 知识图谱 分布式图数据库

一文讲述数仓组件SysCache

华为云开发者联盟

事务 存储 GaussDB(DWS) SysCache 缓存信息

PingCAP 入选 CB Insights 中国「数据链路安全领航者」榜单,保障全球用户存储安全

PingCAP

超细!细说Zookeeper选举的一个案例(上)

恒生LIGHT云社区

golang zookeeper Go 语言

从前端到全栈 -- 最全面向对象总结

程序员海军

Java 面向对象

跟着动画学Go数据结构之插入排序

宇宙之一粟

golang 数据结构 插入排序 12月日更

前端开发之Vue框架的优势

@零度

前端开发 Vue优势

中石化信息化数字化首席专家李剑峰:数字化转型中关键基础软件的国产化应用

OceanBase 数据库

开源 国产化 oceanbase 中石化

Java 集合框架面试问题集锦

编程江湖

面试题 JAVA开发 java编程

简述移动端IM开发的那些坑:架构设计、通信协议和客户端

WorkPlus

AI 收藏夹 Vol.004:虚拟爱豆出道!

Zilliz

人工智能 神经网络 AI

Linux 基金会发布 2021 年度报告,预测今年收入为 1.77 亿美元

腾源会

Linux 开源

万字教你如何用 Python 实现线性规划

华为云开发者联盟

Python 函数 线性规划 求解器 单纯形法

资讯|WebRTC M95 更新

网易云信

WebRTC

5G专网+区块链:构筑智慧政务“安全信任基石”

CECBC

元气部落盲盒系统开发元气部落app开发

风行无疆

未来企业如何应对人才之争

WorkPlus

手写清除console的loader

编程江湖

前端开发

中台之上(十):业务架构设计“笨重”,它能跟敏捷沾边吗?_架构_钰湚—付晓岩_InfoQ精选文章