企业内部做IT信息化或数字化的流程IT思维与公司软件业务的研发思维,总是存在着架构思维不一致的情况,甚至出现一段时间重视流程IT的变革思维,一段时间又让研发的领导大批输送到流程IT,造成几年左倾,再几年右倾,到底是流程IT的变革思维好,还是软件研发的架构思维好呢?回答这个问题前,我们要先搞明白:它们各自能解决业务什么痛点,谁能创造更大的价值,当前最大的痛点是什么,需要它们各自发挥啥能力......
前提说明
(1)关于流程IT思维:本文提到的流程IT的4A架构或变革思维,是支持企业内部做信息化、数字化,亦或当下流行的数智化的数字化转型变革及创造数字化产品支持业务运作的一个过程,是业务能力的数字化承载的过程。
(2)关于研发的软件思维:本文提到的研发软件架构或思维,是指企业研发组织的软件设计与管理思维;比如一家以技术为主导的企业,其支持公司盈利的产品的研发管理。
如果一家以软件为主业的公司,其对外销售的软件产品的研发,称之为研发,其支持公司内部业务运作的IT软件称之为流程IT。此点在此明确,不然很容易把流程IT和软件研发搞混,因为其本质都是软件,也容易搅和到一起。此处之所以要区分,只是为了说明当下软件或研发业务为主的公司,在软件与IT之间遇到的一些困惑,把这个解答清楚。
流程IT架构,特别是最近十来年,中国企业基本都是从0到1的一个信息化或数字化转型构建期。其具体指的是“企业架构EA及其下的4A(业务架构BA、信息架构IA、应用架构AA、技术架构TA)”。企业架构与软件架构的根本区别是什么呢?
企业架构是“城市规划”:它的视角是整个企业(City),关注的是战略、业务、数据、应用和技术如何有机结合,形成一张宏大的蓝图,以确保这个“城市”发展有序、资源分配合理、各部门协作顺畅、投资回报最大化。它的核心驱动力是“业务战略”和“变革管理”。
软件架构是“单体建筑设计与施工”:它的视角是单个或一组紧密关联的软件系统(Building)。关注的是这个系统内部的结构、组件关系、技术选型、质量属性(性能、安全、可用性等)和代码实现。它的核心驱动力是“技术实现”和“解决问题”。
流程IT思维下的企业架构,更聚焦“广度”。
这也是为什么企业架构要细分成4个架构来分别承载更具体的内容。一个架构看不过来啊,所以就细分了领域,以便聚焦。那企业架构为啥更聚焦“广度”呢?因为企业架构直接承载企业愿景目标与战略规划,有梦想有目标,剩下的就是如何构建能力来实现这个愿景和战略了,所以,企业架构覆盖的面是比较“广”的。那企业架构就不聚焦“深度”了吗?不是不需要,是没那个闲钱太过于聚焦深度。当然也有例外,比如京东的物流能力,物流能力成了京东的招牌菜,是京东的核心竞争力,那京东物流的IT产品就值得更多投资和持续投资,因为它是企业的核心竞争力,它需要持续保持领先,才能支持京东业务创造更多价值和利润。但大部分其它流程IT产品,更多是企业的“降本增效”,而非核心竞争力。非核心竞争力的部分,达到一定程度之后,再投资的收益就不大了,边际效益太低。
这也是为什么很多企业的信息化、数字化转型,首推的就是软件包采购模式。买来直接使用,而不是花费大量金钱自研构建。相较于自研,一次性采购还是很节约成本的,特别是现在的SAAS模式。
研发思维下的软件架构,更聚焦“深度”。
研发思维只聚焦深度,不聚焦“广度”吗?当然不是,研发的上层更聚焦广度,而且重视程度比企业流程IT的更重视。比如一家通讯企业,你研发上层的业务架构或销售业务模式,是企业战略和企业业务的核心内容。只是说,研发领域是公司的主业务和盈利单元,成熟度比内部的流程IT更早,架构细分更好,所以这也是为何当下我们看研发是比较成熟的原因之一。不是研发很牛逼,是之前已经经历了不成熟的阶段。
总体来说呢,企业内部流程IT产品,更聚焦业务问题和痛点的解决,而不过于追求精益求精。因为90分以上的那部分,性价比不高;当然如果是企业的核心竞争力就另说了。研发领域,因为其本身就是公司的核心业务与生命线,而且聚焦要解决的问题也往往更聚焦。“切口小难度大”是研发的典型特征,所以就需要投入更多人和资源来解决,也就需要细分在细分领域,做好分工和协同。这也是为何研发的软件架构能力比较强的原因了,也是为何聚焦“深度”的原因。
为什么研发比流程IT跑得快
其实这个问题很好理解和回答,因为企业的使命是创造价值和获得利润。研发能为企业带来利润,资源肯定先搞研发,赚到钱了,公司大了,内部流程化和规范化就需要提上日程了,因为它可以降本增效,这时候才会逐步的把内部的流程与IT产品建设起来。这就是原因,本质就是谁能在什么时候创造更大的价值,那就先搞什么,因为企业的本质是资本,追逐利益更大化是资本的天性。
我曾经在一家IT软件公司工作过,十五六年前了。刚入职的时候发现他们公司的办公文具管理竟然是纸档记录的,惊呆了。而他们公司对外售卖的OA产品就有这个功能,很纳闷公司为啥不用自己的产品把这块信息化。后面想想也明白了,十几年前,软件刚起步,公司需要赚钱,聚焦软件的对外售卖,哪里有精力去想这个小事。再说了,价值节约也不大,这个是核心。当然,现在提倡的“自己的狗粮自己先吃”,“自己的降落伞自己先跳”,是另外一个维度了,是聚焦“用户体验”的优化,并基于用户体验优化创造更多更高的价值。
1、解决复杂性的维度不同(广度 vs. 深度)
企业数字化(广度优先):
业务架构: 定义“我们做什么”(战略、流程、组织)。
数据架构: 定义“我们用什么数据做事”(数据资产、模型、流)。
应用架构: 定义“我们用什么系统做事”(应用服务、功能、交互)。
技术架构: 定义“我们在什么上面做事”(硬件、网络、中间件、平台)。
(1)问题域: 企业数字化变革面对的是极其复杂的系统——整个组织。它牵涉到不同的业务部门(销售、生产、财务)、不同的人员角色、海量且异构的数据、数十上百个遗留和新建的应用系统,以及底层的基础设施。
(2)解决方法: 这种横向的、广度的复杂性无法用一个统一的模型来描述,必须进行架构领域的切分。4A架构就是一种有效的分治策略:
(3)目的: 确保从业务战略到技术落地的一致性、可追溯性和整体最优,而不是某个系统局部最优。
软件研发(深度优先):
(1)问题域: 通信软件(如5G核心网、基站信号处理、通信协议栈)通常是资源受限、高实时性、高可靠性、高并发的复杂系统。它的复杂性主要体现在技术深度上。
(2)解决方法: 需要深入到一个系统内部,进行技术层面的切分。常见的软件架构模式(如分层架构、微服务架构、事件驱动架构)和通信领域特有的架构(如控制面/用户面分离)就是为了解决这些纵向的、深度的技术挑战。
(3)目的: 保证软件的性能、稳定性、可扩展性和可维护性,满足严格的协议规范和性能指标。
2、利益相关者不同
(1)业架构: 对话对象是 CEO、业务总监、CIO。他们关心的是“数字化投资如何支撑业务增长?”“如何降低运营成本?”“如何管理变革风险?”。BA和AA是他们能理解的语言。
(2)软件架构: 对话对象是 产品经理、开发团队、测试工程师、运维工程师。他们关心的是“这个功能如何实现?”“数据库如何设计?”“系统能扛住多少并发?”“延迟是多少?”。UML图、API文档、部署图是他们工作的语言。
3、时间尺度和变化频率不同
企业架构: 视角是中长期的(3-5年甚至更长)。它的变化通常与业务战略周期同步,相对稳定。EA蓝图是一个演进路线,而不是频繁变更的详细设计。
软件架构: 视角是项目或产品周期(几个月到几年)。它会随着需求、技术迭代(如新框架的出现)而更频繁地调整和重构。
4、两者的联系:并非割裂,而是紧密衔接
虽然视角不同,但企业架构和软件架构绝非孤立的。恰恰相反,有效的企业数字化必须让两者良好衔接。
(1)自上而下的驱动: 企业架构为软件架构定义了边界和约束。
(2)自下而上的反馈: 软件架构的实现验证和反哺企业架构。
两者是宏观与微观、战略与战术、规划与实施的关系。一个成功的数字化企业,必然有一套清晰的EA来指引方向,同时也拥有多个优秀的软件架构来扎实地构建每一个具体系统。前者确保“做正确的事”,后者确保“正确地做事”。

