世事唯有变化不变,架构亦如此。企业架构因其庞大的体量,必然蕴含众多引致其变化的因素,即便是一个被仔细切分过的服务也很难保证自己不会变化,何况包罗万象的架构。架构设计并不是为了一味的追求稳定,甚至不是为了单纯以复用为目标,架构首要任务是澄清事物的内部结构,这即是为了更好地再现事物(从业务需求到技术实现,本身就是一个再现的过程),也是为了通过一个清晰的结构接纳变化。架构的关键职能之一就是如何更好地接纳变化,对变化的范围和影响作出尽可能清晰的判断,而这个判断除了架构师的能力外,还可以依靠良好的架构资产,良好的架构资产是提高架构师团队平均水平和复杂工程管理效能的有效方式。

企业架构的设计本身需要消耗较大的资源,而破坏却很容易,通过一个一个需求对整体架构的些小违犯,就会积累出大量的偏离。架构资产相当于企业的能力地图,如下图所示:

图1 基于企业级业务架构的企业能力地图

作战需要军事地图,旅游需要旅游地图,做企业架构、企业转型自然也需要企业能力地图,有了地图才好走路。企业能力地图可以标识企业从战略到业务流程到IT实现的完整路径,但是地图的准确性是需要不断维持的,需求总在路上,系统一直在变化,地图自然需要更新,而更新最好的方式莫过于使用,坚持用企业级业务架构方法分解新需求,从而保持对地图的更新。关于企业级业务架构的详细构建方法,请参看笔者《企业级业务架构设计:方法论与实践》一书,本文集中讨论基于企业级业务架构已有的架构资产进行需求管理。

一、需求分析

需求管理是一个过程,在讨论管理之前,还是先讨论下如何应用架构资产进行分析,讨论过用法再讨论管理问题。

既然本文已经假设了具备架构资产,那么就先虚拟一个业务范围不是很完整的银行业务架构,并集中在对业务组件的展示上,不再花费过多笔墨从价值链一路讨论到业务组件了。我们假定一个具有存款、贷款、理财、贸易融资等几项业务的银行,其主要业务组件可能如下图所示:

图2 基于企业级业务架构的企业能力地图

在这个不完整的银行中,假定暂有9个组件,4个位于领域层,分别负责存款、贷款、理财、贸易融资方面的业务处理;5个位于公共层,分别负责统一的客户信息管理、统一的客户关系管理(一般包括客户政策、客户分配、集团客户关系维护等)、汇总分类账进而产生总账的财务会计、统一的风险管理和报表管理等职责。其实一提公共层,很多读者可能就会发现,这个架构是不是也有些“中台”的味道。

请注意,这里是业务组件,不是逻辑子系统,提到业务架构,也不要轻易把目前很多技术方案中画了几个功能模块的“业务架构”与通过完整的企业级业务架构方法得出的业务组件等同。熟悉笔者之前方法论介绍的读者会知道,每个组件中聚类的是关系相近的数据以及和这些数据关系相近的行为,是经过充分的分析和企业级标准化处理之后的结果,而非在预先指定了系统边界后切出来的内部功能模块。

有了架构(当然线条很粗)就可以应用架构资产进行需求分析,我们可以用下区块链的例子,区块链在金融领域的应用还是比较广泛的,我们可以虚拟讨论下,如果业务部门或者技术团队提出要用区块链技术构建新的贸易融资平台,那么业务架构会怎么看这个问题?

首先,业务架构是从业务角度出发看问题,而不会直接受技术实现方式的干扰。那么,区块链的贸易融资平台就要先分析业务流程有哪些变化。国内区块链一般是联盟链的方式,多数平台对成员资质都有认证,既有发行机构CA证书的,也有采用国家CA证书的,无论用那种方式,成员管理都是其必要流程之一。

客户信息的建立与维护自不必说,这个流程必然有,而且总体来讲,因为贸易融资的业务要求现阶段并不会因为区块链改变,所以客户信息管理流程也不会有什么变化。同样不变的还有业务处理流程,比如信用证的处理过程,区块链平台一般是提供了业务资料的可信传输,利用了区块链的防篡改属性进行信息加固。采用区块链平台之后也许自动化处理能力可以适度提升,但自动化处理严格来说并没有彻底改变操作环节,而是操作者从人变成了计算机,如果业务建模具备适当的抽象度的话,那么,自动化处理对业务模型的改变并不是十分明显,RPA理论上也是如此。

如果上述分析成立的话,那么,主要的流程变化其实在联盟管理上,也就是成员的资质认证,这部分可以归属于客户关系管理组件,在数据上可以表现为客户间的联盟关系、联盟角色等,相应的业务处理过程,也就是新增的任务,可以放在客户关系管理组件中。

那么区块链在哪里呢?业务架构上其实看不到的,业务架构主要看业务是否变化了,而区块链账本这些东西属于技术实现上的选择,也就是说,技术架构上会增加区块链平台,应用架构上会增加在区块链平台上部署的服务,而这些服务对应的是上述提到的业务功能。相当于在业务架构梳理清楚后,应用架构根据技术架构的变动改变了服务的位置。

那么区块链不在业务架构上体现,怎么看得到业务与技术的融合呢?如果想让业务侧真的感受到变化,那一定是区块链改变了业务形态。比如需要新增加的联盟管理,这个业务有充分的感知,但是其他流程的变化是否会有如此明显,考验的就是业务和技术双方结合运用区块链改善现有业务形态的能力了,而新技术的应用最终是简化了流程和架构,还是导致了更复杂的处理,也可以通过对比得出。对其他新技术的应用也是如此。

通过这个虚拟的分析过程,读者可以感受到业务架构是如何分析需求、如何处理新技术的,而新技术如何应用才可能为业务带来改善。本文因篇幅和信息的限制,不再展开详细的建模过程。

二、需求管理

谈到管理就是组织和流程的问题了。首先,企业是否有专门的业务架构师团队或者岗位,如果有的话,当然应该由业务架构师们牵头建立企业的架构资产,然后依托架构资产进行业务需求的架构层级设计,负责识别需求相关的业务流程、数据实体、业务组件等架构元素,给出业务架构解决方案,再通过项目管理机制转化为项目任务执行,理想的工作方式是笔者之前一直主张的业务架构师派驻到业务部门中进行需求管理的方式,示意图如下:

图3 基于企业级业务架构的企业能力地图

在这个流程中,从组件到企业架构这部分是负责解决项目团队间的架构分歧的,由统一的企业架构管理团队负责最终决定。

架构资产的变动最好由业务架构师统一维护,如果建模层次较深,细节较多,也可以采取分层级维护的方式,颗粒度最细一级的由组件项目团队中的需分或产品人员负责。业务架构团队也必须定期进行架构资产的质量检查,以确保资产更新的及时性和准确性,可以将这部分列为对项目团队的考核依据。

通过需求分析那部分的介绍,读者也可以理解为什么业务架构师派驻在业务部门更合适,这样可以离前端更近,有更好的业务感觉,第一时间了解业务人员需要什么、困惑什么,帮助业务人员了解新技术的应用。业务架构师每工作一段时间后应该在部门间进行轮换,以保持其企业级视角,并推动部门间的协作。

那么对于没有业务架构师团队或者岗位的企业,这样的企业一般也没有业务架构方面的架构资产,相当于要从头建立上述管理体制。培养业务架构师对企业进化、数字化转型等工作而言非常必要,通过业务架构将业务和技术衔接起来,是实现业务与技术深度融合的起步性工作。培养多少业务架构师则要看企业的规模,人少的企业,除了少数专职的架构师外,也可以考虑在业务部门、项目团队中建立适当数量的兼职业务架构师。

三、提升开发效能

软件工程发展至今接近50年了,企业架构的历程也有30多年,技术侧作为技术服务供给方一直在持续提升自己的开发效能,软件开发和设计工艺取得了长足的进步,但是,随着社会逐步开始向数字化转型,软件需求的规模只会越来越大,甚至出现爆炸性增长。据Gartner最新预测,未来五年新构建的应用数量可达5亿之多,超过之前40年的总和,尽管很难考证这一数据,但数字化社会最主要的生产工具莫过于软件,数字化银行的愿景如笔者在新书《银行数字化转型》中所描述,软件覆盖一切,这就意味着更大规模的软件生产还在等待着技术人员,如何提升开发效能是重中之重。

已有的工程和架构理论基本上都是站在技术侧看待这个问题,而很少从业务侧看待如何提升开发效能。数字化转型是整个社会的转型,是一个新的时代,新的时代必然要求从业者的技能发生很大变化,从农业的农耕技能到工业的机器操控技能到信息时代的软件应用技能,那么数字化时代,所有从业者必须具备的就是软件构建技能,当然,这不意味着必须懂编程级的实现,而是懂得如何构筑“乐高”式软件,来实现业务与技术的高效衔接。

“乐高”式软件的探讨已有多年,但是迟迟未见良好的实现,低代码平台也是这方面的探索者。“乐高”式软件一直比较难于构建的关键原因很可能是技术人员一直无法真正把握业务人员心目中的“乐高”式业务该是什么样,坦白的讲,我觉得业务人员也不是很清楚可以灵活、快速地组装的业务流程到底是什么样。业务人员尽管会在ISO9000、六西格玛等标准化管理过程中进行流程的标准化,但是很少有与技术人员尝试共同用结构化的思维一起理解所谓灵活的流程到底是什么,更少有将这种尝试上升到企业级层面。

如果读者认可数字化时代的核心生产工具是软件,核心生产方式也是通过软件送达服务,那么,业务人员提升思维结构化水平就是必须要考虑的事情,不然,“乐高”式软件很难真正实现,软件开发效能也很难获得根本性提升。这个道理可以用经济学中供求曲线的关系来类比,如下图所示:

图4 软件开发效能中的供求曲线

经济需中用SS’代表供给曲线,DD’代表需求曲线,该理论的大意是供给曲线和需求曲线的交汇点就是价格与数量的平衡点,供求总体平衡,形成均衡价格E,也代表均衡水平。该理论的一个核心点是,单靠供给或需求曲线一方的移动,均衡水平很难获得良好的提升,两条曲线同时移动才能获得均衡水平的较大提升。

类比中,我们可以将横轴的数量替换成软件的产量,而纵轴调整为软件的质量,将曲线定义为供给能力曲线和需求能力曲线,二者的交汇点,我们可以视为效能在产量和质量上的平衡点。

沿用供求理论,我们将供给能力曲线S1S1’向S2S2’的移动视为工程方法的提升,也就是以技术侧为主的努力,那么在需求能力曲线没有上升的情况下,单纯的技术改善并不能很好地解决效能问题,甚至可能造成质量下降,这也许与多数技术人员的直观感觉不同,但是从现在软件重构势头稳增不减的趋势看,如果我们把“技术债务”也视为一项远期质量问题,可能会更容易理解这个观点。

如果需求能力曲线同步从D1D1’向D2D2’移动,即需求能力曲线也上升,那么,均衡点E3相比E2和E1,都会是一个很大的提高。从E2到E3这部分,我们可以视为业务思维的提升。

上述类比尽管不是很精确,但是相信读者能够理解在数字化转型过程中,我们强调业务和技术融合时该做的一件事是什么,那就是“刷新”业务侧的思维模式,从而在整体上提升软件开发效能。如果数字化不是一个新时代,软件不是这个新时代最主要的生产工具,我们大可不必如此。但如果是,我们这几年一直在讨论的数字化员工的基本技能中,就必须要有结构化思维能力这非常重要的一项,而在这一能力的形成过程中,业务架构方法起到的推动作用不可忽视,它将逐渐成为一项基本能力训练。

软件开发效能提升任重道远,架构之路也很漫长,业务架构更像一团“前浪”般的星星之火,但是,未来的“后浪”们可能越来越需要这团星星之火。

企业业务架构的需求管理与软件开发的供求曲线相关推荐

  1. 基于企业级业务架构的需求管理与软件开发的供求曲线

    世事唯有变化不变,架构亦如此.企业架构因其庞大的体量,必然蕴含众多引致其变化的因素,即便是一个被仔细切分过的服务也很难保证自己不会变化,何况包罗万象的架构.架构设计并不是为了一味的追求稳定,甚至不是为 ...

  2. 软件需求管理用例方法 pdf_演讲|软件造价联盟罗翔:业务分析与需求管理实践...

    2019年10月24日,由中国电子技术标准化研究院.中国计算机用户协会指导,北京软件造价评估技术创新联盟.中国计算机用户协会软件造价分会共同主办的2019(第四届)中国软件估算大会在北京丽亭华苑酒店成 ...

  3. 荐书丨企业业务架构的发展及与IT架构的关系

    架构君:本文来自<企业级业务架构设计:方法论与实践>一书,作者为付晓岩,本书专注于企业级的业务架构,公众号「架构文摘」获得机械工业出版社华章分社的授权,刊载其中的部分章节--企业业务架构的 ...

  4. 《启示录:打造用户喜爱的产品》第一部分 人员5 产品管理与软件开发

    第5章 产品管理与软件开发Product Management Vs Engineering 定义正确的产品与正确地开发产品           如果说成功的产品是真实用户需求与现阶段可行性方案的结合 ...

  5. IE中的看板管理在软件开发中的应用

    目录 1. 前言 2. 正文 3. 最后 1. 前言 上学时的专业是工业工程(Industrial Engineering),没想到阴差阳错去从事软件开发.但是,工业工程的思想在软件开发里依然可以得到 ...

  6. 企业业务架构设计方法论及实践(二)

    前言 前面提到了业务架构作为企业战略与技术实现的桥梁,那本文具体讲讲企业战略如何与技术实现进行互通. 一 业务架构决定技术架构 优秀的架构师需要具备体系化的架构设计思维能力,加以架构设计方法论的沉淀和 ...

  7. 企业业务架构设计方法论及实践(一)

    前言 架构设计的过程就是把沉淀和积累的知识体系,基于企业战略.业务场景.质量.安全.效能等约束条件动态的加以排列组合的分析.论证.决策的逻辑思维过程.架构设计之道在于针对企业的现状和未来的战略目标及业 ...

  8. 第一章:第1章 CRM核心业务介绍--概述,crm架构,公司组织结构,软件开发的生命周期,crm项目的核心业务介绍。...

    第一章:第1章 CRM核心业务介绍 1. 什么是crm项目: 1,CRM(Customer Relationship Management)客户关系管理是管理企业与客户之间关系的新型管理机制.终极目标 ...

  9. 北京博奥智源,浅谈术语管理服务器软件开发所需功能设计

    序号 名称 功能 1 计算机辅助翻译系统客户端软件 (核心产品) ▲1.系统采用C/S架构,支持Windows 11操作系统,运行安全稳定,以计算机辅助翻译技术为核心,具备强大且稳定的记忆库搜索引擎, ...

最新文章

  1. 【实战经验分享】一劳永逸的解决网线随意热插拔问题
  2. linux I/O--I/O多路复用--介绍(二)
  3. Oracle 环境下 GoldenGate 集成抽取(Integrated Capture)模式与传统抽取模式(Classic Capture)间的切换...
  4. Console-算法[for,if]-(大马-小马-马驹托砖)
  5. Shell教程(一):简介
  6. web前端之HTML中的div
  7. 正则表达式的捕获性分组/反向引用
  8. kotlin中文开发文档
  9. 元宇宙引擎脑语言2500令v0.5.6
  10. 用pdf转cad转换器进行操作的简单步骤
  11. Alitum Designer 16安装
  12. 【论文笔记】Face Anonymization by Manipulating Decoupled Identity Representation
  13. 面经_黑盒测试与白盒测试
  14. 警告: Establishing SSL connection without server
  15. MATLAB电话拨号音仿真,MATLAB电话拨号音的合成与识别
  16. virtualbox中linux设置NAT和Host-Only上网(实现双机互通同时可上外网)
  17. 珠海 第十届亚洲机器人锦标赛_逾2000名选手云集珠海竞技第十届亚洲机器人锦标赛...
  18. 佳能数码相机,不能安装驱动程序
  19. 如何在手机浏览器wap网页中点击链接跳转到微信界面
  20. 微信ios签名报错config:fail

热门文章

  1. 微软AI插件Github Copilot初体验
  2. Linux 链接概念 硬连接 软连接
  3. 一个人久了,会上瘾的。(转载)
  4. 人工智能深度学习找线缆盘圆心---项目展示
  5. 【前端修炼之路】第一话 · 初识前端领域
  6. Zookeeper C API 指南六(异步 API 介绍)
  7. Linux库概念及相关编程(面试重点)
  8. 腾讯云发布多款大数据应用产品,助力企业全面释放数据价值
  9. Office 2010 新特性 (三) PowerPoint 2010
  10. c语言高中数学微盘,C语言与高中数学学习的结合-应用数学论文-数学论文.docx