IT科技生态的三代论

简介: IT科技生态的三代论

我在一次和客户的CDO交流时,得以聆听到一个极有意思的观点。该CDO认为:“一家企业科技部门的领导,应尽量确保IT的科技生态不能共存超过三代的系统。如果系统的代龄超出三代,科技生态就会变得太复杂,遗留的债务太多,一旦需要转型,执行起来就会举步维艰。

对此观点,我深表认同。

怎么定义科技生态的“代”?这似乎没有一个定论,更何况,不同技术的更新速率也不尽相同,难以统一。例如,金融企业的IT系统都经历过大型机、小型机和PC机集群时代,而服务器也经历了物理机、虚拟机到如今的容器时代。虽说现在主流的开发语言都可以划归为高级语言,语言版本的变更似乎也很难给出代系的划分,然而就Java来说,差不多可以把JDK1.4、JDK6、JDK8以及JDK11+划分到不同的代。

因此,我们先不必纠结科技生态的“代”该怎么划分,而是看这样的三代论是否值得大多数传统企业的CTO、CIO与CDO们深思。

1为什么是三代?


大约灵感来自“富不过三代”的俗语?但我能想到的参考依据是Gartner提出的Pace-Layer应用战略模型,如下图所示:

image.png

它将企业应用分为三层,从下到上分别为:

  • 保持稳定的记录型系统(Systems of Record)
  • 高响应的差异型系统(Systems of Differentiation)
  • 主动变化的创新型系统(Systems of Innovation)

既然企业应用有着不同的变化速率,技术形态与之对应,恰好形成三态:

  • 记录型系统:由于变化缓慢,在构建之初选择的技术形态或许是新的,但随着时间推移,技术变得越来越落后,由于系统没有什么变化,自然也没有重构或重写的必要,如此就变成了继续支撑业务的祖父级系统,我将其称之为“固态”。
  • 差异型系统:开发周期相对较长,业务会持续演进,为确保系统具备一定的先进性,可能需要迭代更新,直至到某个阶段,需要进行技术栈迁移;又或者保留一部分旧有的稳定功能,而针对新功能,采用更新一代的技术,我将这种新旧并存的状态称之为“液态”。
  • 创新型系统:创新业务往往具备趋势前瞻的性质,需要快速打造、快速试错,它可能在未来成为企业的核心,但在创新阶段,企业对其技术的选择相对宽容,可以选择当下最新的技术,我将这种灵活快速的状态称之为“气态”。

这三种形态可以对应双态业务,即稳态业务敏态业务,其中,稳态业务和敏态业务的重叠部分,就是位于中间态的液态:

image.png

由稳态业务和敏态业务组成的双态业务不妨用太极图体现:

image.png

北宋大儒理学宗师周敦颐认为:“无极而太极,太极动而生阳,动极而静,静而生阴,静极复动,一动一静,互为其根,分阴分阳。两仪立焉。”太极体现的正是动静与阴阳的转换。

稳态与敏态并非固定不变。稳态需要敏态升级,敏态到了一定时期也需要沉淀,变为稳态。稳态并不意味着陈旧与糟糕,相反,它可能意味着复用,是企业重要的资产。敏态并不意味着常新而易变,一旦发现它存在不变的部分,就需要转换为稳态。

动极而静,静极复动。

敏态走到极致,必然需要提炼其稳定的部分,否则敏态就会因为重复开发而增加成本;稳态走到极致,如果不向敏态迁移,就会僵化不变,腐化为技术债。因而,太极图对双态的呈现,完美地体现了稳态和敏态的周而复始。

2


企业在确定科技生态时,要考虑到业务的双态,而为不同形态的业务确定科技生态时,又该遵循什么样的技术参考依据,以保证科技生态的代龄不超过三代呢?那就要在企业内部提供确定代龄的客观依据。

一个客观依据是判断该技术的成熟度。如何客观地评价成熟度呢?一个办法是参考Gartner每年发布的新兴技术成熟度曲线,如2022年的成熟度曲线:image.png

成熟度曲线将一项技术的发展划分为多个阶段:

  • 创新萌芽期(Innovation Trigger)
  • 过热期(Peak of Inflated Expectations)
  • 幻灭低谷期(Trough of Disillusionment)
  • 复苏期(Slope of Enlightenment)
  • 生产力成熟期(Plateau of Productivity)

原则上,只有位于生产力成熟期的技术才属于液态,而创新萌芽期的技术则属于气态。

通过长期跟踪Gartner的新兴技术成长度曲线,随着时间的推移,自然可以描绘出各种技术的代龄形态。

划分代龄不能仅依据成熟度,因为一项成熟的技术不一定就是最适合该企业的技术,若有可能,可以参考其他科技公司对该技术做出的客观评估。ThoughtWorks每半年发布的技术雷达可以作为其中一个参考:

image.png

ThoughtWorks的技术雷达有四个圆环,由内向外分别为:

  • 采纳:采纳环中的条目往往是已被证实的、成熟可用的技术
  • 试验:试验环里的条目具备了ThoughtWorks生产环境经验,但还未得到充分证明
  • 评估:评估环里的内容是值得研究的,通常属于相对前瞻的技术
  • 暂缓:已被业界采纳,但ThoughtWorks技术咨询委员认为体验并不好的技术

技术雷达的条目不是一成不变的,每期技术雷达都可能出现新的,也可能已有的条目不再适合,就会被移走。与技术代龄的三态相对应,映射关系大致如下:

  • 固态:曾经属于采纳环,但因为技术相对陈旧而被移走的条目
  • 液态:属于采纳环的技术,也包括一部分属于暂缓环的技术
  • 气态:属于试验环和评估环

企业在做技术选型时,如果选择了开源项目,也可以根据开源项目社区的活跃度,项目的Star数量等对成熟度做出判断。

3


借用技术雷达图的技术象限划分,再参考Gartner的成熟度曲线,可以为企业绘制出科技生态的代龄图

属于固态代龄的阶段,称之为衰退期;属于液态代龄的阶段,称之为成熟期;属于气态代龄的阶段,称之为成长期。这三个阶段由左向右排列,衰退期的左侧属于死亡期,成长期的右侧属于萌芽期,原则上,企业应用需避免使用位于死亡期和萌芽期的技术。

image.png

科技生态的代龄图是动态变化的,它相当于为企业的科技领导或技术负责人提供了生态蓝图,每一次技术的代龄变动,都可能给出警示。

如果希望更加直观地了解到当前的应用系统是否违背了代龄要求,可以直接为企业的应用系统绘制代龄图

image.png

图中使用圆形、三角形和菱形符号分别代表已建、在建和待建的应用系统。

图中的红色代表严重警示信号,包括如下情形:

  • 位于死亡期的所有类型的企业应用,如编号11
  • 位于衰退期的待建应用,如编号19

图中的黄色代表警示信号,包括如下情形:

  • 位于衰退期并接近死亡期的已建应用,如编号16
  • 位于衰退期的在建应用,如编号20
  • 位于成熟期的待建应用,如编号18
  • 位于萌芽期的所有类型的企业应用,如编号14和17

针对发出警示信号的企业应用,相关负责人需要制订策略,判断是否需要调整其科技生态;如果是严重警示信号,则属于技术债的内容,需要给出进行改造的强制策略。在估算改造成本后,需确定改造完成的最后期限。

该图也可以作为数字化转型的参考,如在选择数字化转型的试点应用时,可优先选择属于成长期的在建或待建应用系统。对于属于衰退期的已建应用系统,如果它属于稳态业务,也可以考虑保留现有的生态。

相关文章
|
Web App开发 编解码 前端开发
面试题22:如何测试Web浏览器的兼容性?
面试题22:如何测试Web浏览器的兼容性?
592 3
|
9月前
|
安全 JavaScript 编译器
TypeScript 泛型:解锁灵活且安全的代码重用
TypeScript 泛型:解锁灵活且安全的代码重用
|
8月前
|
存储 分布式计算 Oracle
Java初级学习路线
本文为Java初学者提供了一条清晰、系统的学习路线,从环境搭建到实战练习,涵盖了Java基础语法、面向对象编程、常用API、异常处理及项目实践,助你从零开始掌握Java编程,打下坚实基础。
|
11月前
|
人工智能 数据可视化 BI
HR必看!用工成本计算居然藏着这些猫腻?手把手教你算准每分钱
用工成本计算远比想象中复杂,隐藏的猫腻让90%的HR新手踩坑。本文从实际案例出发,解析用工成本构成,包括基础项、隐藏项及隐性支出,并揭示三大常见计算雷区。同时,推荐智能系统助力精准核算,通过数字化工具实现成本管控优化,如薪酬结构调整、弹性福利积分制等方法,为企业降本增效。未来,借助先进技术,用工成本管理将更加科学高效。
632 12
|
9月前
|
NoSQL JavaScript Java
基于 RuoYi-Vue-Pro 定制了一个后台管理系统 , 开源出来!
从职业生涯伊始,我一直是微服务架构的坚定拥趸,这很大程度上源于长期深耕互联网行业,习惯了高并发、分布式架构下的开发模式。 然而,去年在优化某航空公司核心用户中心系统时,我的技术认知受到了不小的冲击。 因为航空公司用户中心是一个典型的单体应用——尽管业务量不小,但稳定的业务模型和有限的扩展需求,使得单体架构反而比微服务更高效、更经济。
基于 RuoYi-Vue-Pro 定制了一个后台管理系统 , 开源出来!
|
传感器 监控 物联网
智能水管理:城市水资源的优化分配
【10月更文挑战第9天】在城市化进程中,水资源管理和分配成为关键议题。面对人口增长、工业与农业需求增加导致的资源短缺和污染问题,智能水管理技术应运而生。本文探讨其概念、技术和应用,展示如何通过现代信息技术、物联网、大数据分析及人工智能手段实现水资源的实时监控、精准预测和智能调度,从而提升城市供水系统的安全性与可靠性,促进可持续发展。
|
运维 数据可视化 开发者
Dpanel:Star2k,短短时间就被大家称为GitHub开源神器!轻量化Docker面板,还在等什么
如今的软件开发和运维领域,Docker容器技术已经成为一种主流的解决方案,它允许开发者和系统管理员以更高效、更灵活的方式部署和管理应用程序。然而,Docker的命令行界面虽然强大,但对于某些用户来说可能不够直观。今天,我们要介绍的开源项目——dpanel,就是一个轻量化的Docker可视化管理面板,它以其简洁、高效的特点,为用户提供了一个易于操作的界面来管理Docker容器和镜像。
1608 0
|
数据安全/隐私保护
雾锁王国搭建、存档、使用常见问题汇总(持续更新)
使用雾锁王国的常见问题,例如怎么搭建私服、搜索不到服务器怎么办、存档数据怎么迁移.......
4198 1
雾锁王国搭建、存档、使用常见问题汇总(持续更新)
|
前端开发
【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果(中)
【CSS进阶】使用CSS gradient制作绚丽渐变纹理背景效果
440 1
|
存储 网络协议 安全
IT入门知识第一部分《IT基础知识》(1/10)
IT入门知识第一部分《IT基础知识》(1/10)

热门文章

最新文章