写点什么

2022 年主要趋势和 2023 年展望 | InfoQ 软件发展趋势报告

作者:Daniel Bryant, Wesley Reisz, Thomas Betts 等

  • 2023-02-07
    北京
  • 本文字数:5726 字

    阅读完需:约 19 分钟

2022年主要趋势和2023年展望 | InfoQ软件发展趋势报告

本文要点


  • 架构师的职责是与所有利益相关者有效地沟通架构决策。一些公司正在采用架构决策记录(Architecture Decision Record)并将其作为标准实践。

  • 认识到高级个人贡献者(被标记为“Staff Plus”)的价值。他们掌握了深厚的技术专业知识,通常也是“T 型”人才,具备广泛的技能。这些人在软件开发职业生涯中可以在个人贡献者和管理者角色之间转换。

  • DevOps 和平台工程实践有助于降低开发人员的认知负担,带来更多积极的业务成果。

  • 将应用程序和数据平台视为产品,对它们进行适当的设计,为它们提供适当的配置和资源。

  • AI/ML 领域的建模、转换和处理数据方面出现了一些创新。

  • 每个人都可以在软件开发和 IT 领域为实现可持续的解决方案做出贡献。

  • 进行深思熟虑的文化设计。与其让人们整天往返于办公室、开视频会议,管理者需要考虑的是组织、环境和员工的收益和成本。

 

2022 年又是软件行业和社区出现重大技术创新和趋势的一年。InfoQ 播客联合主持人上个月开会讨论了 2022 年的主要趋势和 2023 年的看点。InfoQ 新闻频道负责人 Daniel Bryant 主持了讨论。小组成员包括 Wesley Reisz、Shane Hastie、Thomas Betts 和 Srini Penchikala。

 

本文是对 2022 年软件趋势播客的总结,完整的播客和完整讨论记录可以在这里查看。

 

播客中讨论的主要话题和主题如下:

 

  • 架构决策记录(ADR);

  • Staff Plus 工程师角色;

  • 平台即产品;

  • 基于 AI 的助手,比如 ChatGPT;

  • 可持续发展与绿色 IT;

  • 文化设计。

 

下面总结了小组讨论的主要趋势。

 

架构师角色的转变

 

架构师是 InfoQ 关注的关键角色之一,关注他们如何为团队提供服务,如何为组织中的软件开发项目和计划取得成功做出贡献。架构师的角色正在转变为开发生命周期的一个活跃部分,通过协作而不是强制的方式协助应用程序团队做出架构决策,并将决策传达给组织不同级别的利益相关者。

 

疫情和混合型工作导致团队的沟通进一步异步化。在这种情况下,架构师的角色变得更加重要,他们需要将事情记录下来,并确保决策能够符合组织的长期最佳利益。只是画出架构解决方案的图表已经不够了,他们需要证明为什么特定的解决方案要这样设计。

 

架构决策记录(ADR)已经出现了一段时间,现在正被更多的公司采用。ADR 有几个方面的好处,特别是在确定和记录架构决策方面。然后,团队可以讨论他们为什么要做出特定的决策。可以看出,这更像是一个合作的过程。

 

ADR 可用于记录架构决策并对其进行版本化管理,其中可以包含诸如“你试图做出怎样的决策?你在考虑哪些可能的选择?每种选择的利与弊是什么?”之类的问题。所有这些信息都可以被提交到一个集中式的 Git 存储库中,这样团队就可以建立共享上下文,说明他们为什么选择特定的技术或软件。

 

架构决策应该协作进行,ADR 可以在这个过程中发挥重要作用。架构师可以率先使用它,然后找到模式,总结出可以在公司内部有效使用它的方法。ADR 也是一种活文档,团队可以改变他们的想法并更新过时的图表。ADR 只是一种简单的文本格式,他们可以更新它,如果想要创建一个图表,可以考虑使用 Mermaid 图表。活文档的维护并为其打造支持文化也是很重要的。

 

架构师应该避免采用“象牙塔架构师”所使用的方法,并积极地将架构成果和可交付成果提交到同一个 Git 存储库中。

 

增加“Staff Plus”角色的可见度

 

随着 IT 组织越来越多地采用“Staff Plus”角色,个体角色正在发生积极的变化。架构师在职业生涯的某个阶段常常会想:“我现在要做什么?我已经成为了一名架构师,我已经为成为经理和总监做好了准备。”现在,有了 Staff Plus 这个角色,公司的高层领导开始思考:“员工层面之外的发展路线图是怎样的?”公司有意关注 Staff Plus 这个角色就是在这方面取得的重大进展。

 

架构作为一门学科和软件工艺而不仅仅是图表和工件也得到了适当的关注。架构师对企业变得更有价值,他们可以做的事情和对团队的贡献发生了变化,不只是做一些 PowerPoint 幻灯片然后把它们丢给别人。大多数架构师开始在整个软件开发生命周期中亲力亲为并参与其中。在向客户交付价值方面,架构过程变成了迭代和增量式的。

 

组织中的 Staff Plus 工程师往往是 T 型人才,他们往往具备广泛的跨多学科知识,但在某个特定领域又具有深厚的专业知识。这种角色对于思考横切关注点、大项目以及如何解决多个问题的大背景下是非常有用的。

 

Charity Majors 在旧金山 QCon 大会上做了一个题为“工程师/经理的钟摆”的演讲,演讲内容是关于有意识地从 Staff Plus 角色切换到管理层然后再切换回来。通过这种方式,人们可以在不同的领域培养深度的能力,并可以来回转换。像管理产品一样管理你的职业,通过有意识地做选择来发展你的职业生涯。

 

自发生疫情以来,我们看到的一个趋势就是离职。一些研究显示,30%的人换了工作,70%的人对目前的工作非常不满意。这促使领导层考虑为人们创造机会,让他们可以转到感兴趣的岗位,不让他们流失到其他公司去。

 

在一些组织中,高级个人贡献者或 Staff Plus 更多地是作为一种发展机会而不是任命的岗位。所以,高层领导不会说:“好吧,我们会让你成为高级 Staff Plus 工程师。”事实正好相反。团队成员不仅可以在技术上做出贡献,也可以在组织层面做出贡献。他们能够管理自己的人和利益相关者,并“成为”Staff Plus。

 

平台工程与降低开发者认知负担

 

几年前,当 DevOps 出现时,它被认为是开发和运维世界中最好的实践。它在很多方面都很有帮助,但也给团队带来了认知负担。认知负担太高导致的倦怠也成为一个问题。从 Kubernetes 到 Istio,从边车到 Ingress,再到不得不编写代码,试图建立可以应对所有这些事情的心智模型成为一个相当大的认知负担。

 

平台工程是最近另一个备受关注的领域。平台是一个巨大的杠杆,平台团队需要考虑的是如何通过拉动这个杠杆来减轻认知负担。如果做好了,就可以促进所有与价值流保持一致的团队(团队拓扑)交付价值。

 

为了减少开发团队之间的摩擦,平台团队可以帮忙创建内部开发者平台,提供自助服务功能来安装和托管他们的应用程序。这些平台需要能够执行一些任务,如自动分配基础设施、无缝地在 CI/CD 管道中推送应用代码,以及在团队将应用程序部署到平台之前验证基础设施组件的质量。

 

内部开发者门户网站,如 Spotify 的Backstage(CNCF 的一个开源项目)、Netflix的微服务PaaS平台和其他类似的工具,都有助于实现平台工程的目标。

 

我们认为,明年将会有更多的人关注内部开发平台。

 

数据网格和数据平台即产品

 

数据网格是一种重要的用于管理不同来源数据(这些来自不同数据源的数据被不同的客户端和消费者使用)的架构模型,并内置了治理层。

 

公司很难实现数据网格,因为他们必须创建一个平台来制定规则和处理各种数据产品。其目标是建立一个标准化的网格,各方可以把数据放入其中,并获取它们需要的数据。

 

我们也看到越来越多的人关注平台即产品。在这个领域出现了一个有趣的新趋势——一个平台需要有一个产品经理。这是一个有趣的角色,必须要有同理心,能够与开发人员、客户和用户互动,必须善于管理利益相关者,因为领导团队经常会问这样的问题:“为什么我要为这个平台付钱?它带来了什么价值?”平台产品经理需要清楚地表明,平台工程是一个有力的赋能因素,我们正在为应用程序和数据打下坚实的平台基础。

 

我们也看到越来越多的人关注平台即产品。在这个领域出现了一个有趣的新趋势——一个平台需要有一个产品经理。这是一个有趣的角色,必须要有同理心,能够与开发人员、客户和用户互动,必须善于管理利益相关者,因为领导团队经常会问这样的问题:“为什么我要为这个平台付钱?它带来了什么价值?”平台产品经理需要清楚地表明,平台工程是一个有力的赋能因素,我们正在为应用程序和数据打下坚实的平台基础。

 

IT 不再只是成本中心,软件可以帮助提升业务效率。平台工程在软件开发和维护中起着至关重要的作用。

 

AI、ML 和数据工程的新趋势

 

与架构和安全一样,数据也正在经历“左移”的过程。数据不再只是存储在某个地方的东西,它已经在建模、转换和处理方面成为一等公民。端到端自动化数据管道正受到越来越多的关注,因为你不能让数据形成孤岛,或者出现重复数据、数据质量低等问题。数据库是存储数据的解决方案之一,但其他趋势,如流式架构(数据以数据流的形式出现)也正在形成。我们处理这类数据的方式是数据工程领域出现新兴架构的推动因素。

 

还有其他趋势,比如流式数据仓库(专注于捕获和分析以流形式出现的数据)。这一领域的主要发展有与数据相关的趋势、数据管理和数据工程。第二个领域是 ML 和 AI。实现这一切的基础设施(数据平台等)是目前正在出现大量创新的第三个领域。

 

我们需要把数据作为整个系统的一部分来考虑。我们如何获得系统和数据的可观察性,确保数据正确地流动?我们需要使用 AI 模型吗?我们能否按照可以将其输入到机器学习模型中的方式来获取数据,这样就能从中得到一些好处?所有这些问题都需要考虑。在这些方面,架构设计的思考方式必须有一些变化。

 

正如他们所说,数据是任何公司仅次于人的第二大资产,所以我们绝对需要给予尽可能多的关注。数据正在经历类似于代码和架构在过去所经历的演变。对于数据,在接收数据、摄取数据、处理数据和控制数据版本方面,也有一种 CI/CD 解决方案。

 

在机器学习方面,可能没有其他任何一个技术领域在 2022 年经历了像 ML 和 AI 那样程度的创新。GitHub 的Copilot项目就是其中一个有趣的创新,它被认为是一种提高开发人员工作效率的工具。我们从一些开发人员那里听说,Copilot 使他们的工作效率提升了 100%,几乎是翻了一番。开发人员说他们不再需要编写基本函数了,也不需要记住它们是怎么写出来的,只要问下 Copilot,它就会为他们生成所有的代码,他们甚至不再使用 StackOverflow 这样的网站了。我们也看到,像 ChatGPT 这样的新技术受到了广泛关注,它不仅可以改变开发者的生活,还可以改变其他人的生活。

 

计算的合法性、伦理和可持续性挑战

 

软件开发社区不仅在法律领域需要负起责任,在道德和可持续性领域也需要负起责任。我们需要关注道德方面的东西,确保我们构建的产品对环境(绿色计算)和社区(社会计算)有益。

 

我们应该记住——任何模型都存在固有的偏见。构建模型所采样和读取的数据已经内置了偏见。有了像 ChatGPT 这样的新工具,与 AI 的交互不再局限于 AI/ML 专家,几乎任何人都可以使用这些 AI 助手工具来生成新的程序和脚本。这就是为什么现在比以往任何时候都更重要的是有意识地对我们交付的产品负起责任。

 

每一个从事软件行业的人都应该开始问这样的问题:“我们能让这个成为一个绿色的解决方案吗?我应该在哪里运行这个?它是使用绿色能源,还是在一个全是燃煤能源的数据中心里运行?”

 

最近,Adrian Cockcroft 做了一个关于将可持续性问题引入 DevOps 的演讲。其思想是将可持续性作为软件系统 DevOps 的非功能性需求进行管理,包括度量和减少碳足迹、水资源管理、供应链中的社会责任以及通过循环利用实现循环经济。我们可以使用 Thoughtworks 的Cloud Carbon Footprint之类的工具来估算托管在云供应商平台上的应用程序的碳足迹。

 

未来的工作会是怎样的

 

另一个将在 2023 年经历重大变革的是混合工作模式。如果处理得当,混合工作模式可以让两种工作环境——WFH(在家工作)和 RTO(回到办公室)都发挥最好的作用。但如果管理不当,就会变成混合地狱。人们到办公室上班这件事并没有得到很好的协调,仅仅因为这是一项强制规定,每周两到三天。人们来到办公室,大部分时间都在 Zoom 上度过。我们必须开始认真思考为什么我们要把人们聚集在一起。面对面聚在一起是非常有价值的。

 

假设领导层要把人们聚集在一起,在这种情况下,他们需要考虑组织、环境和人员的成本,并确保收益超过成本。如果我们来上班,也许是一周一天,那么对于团队中的每个人以及我们需要合作的所有利益相关者来说,就应该是同一天,这样我们就可以面对面地进行合作对话。

 

面对面的交流并不是仅限于“每周二、周三和周四到办公室”,它应该根据上下文和产品生命周期进行调整,而不仅仅是基于日历上的日期。如果我们正在做冲刺计划、回顾或头脑风暴,那就需要每个人,最好是面对面,在一起合作一两天。等到进入开发阶段,就不是每个人都必须来办公室了。

 

公司应该有充分的理由让员工来到办公室,这不是在屏幕前呆上几个小时的问题,而是关乎产出结果的问题。

 

如果我们从环保的角度看,一些组织和政府正在转向每周工作四天的制度。这令人感到惊讶,因为在每一个转向每周工作四天的组织中,生产效率都保持不变或有所上升。人们在工作上更加专注了,因为他们只有四天的时间来完成工作。

 

把它做好,把人们聚集在一起,让工作环境变得更舒适、更安全,这会让你更好地活在当下。面对面合作所起到的纽带作用是非常重要的。

 

展望 2023 年

 

作为一个群体,我们希望在 2023 年看到这些——组织中有意识的文化设计和实验,每周工作四天,越来越多的组织开始这样做,注重结果,人性化的工作环境。

 

我们认为我们正处在 AI 成为主流的拐点上。AI 助手可以增强架构师的作用。我们只需向聊天机器人提问,它们就会做出相应的回应,帮助我们思考,并让我们能够以 10 倍的速度为利益相关者提供价值。我们还认为,在未来的 12 个月里,我们将看到 AI 领域发生一些我们没有预料到的事情,它将变得非常主流,我们都将开始使用它。

 

ChatGPT 和其他未来的 AI 解决方案可以更好地帮助人类,但我们认为它们不会很快取代人类。我们期待数据和 AI/ML 技术在个人层面、社区层面、国家和政府层面让我们的生活发生变化。AI 将如何在各个层面——不仅在办公室、工作和个人生活中,还有医疗保健、政府等其他领域——为我们提供帮助?

 

我们越是深入研究技术问题,就越会发现它与人、组织和沟通有关。与技术相关的东西其实并不是最难的部分。我们希望看到关于平台对话的延续,建立更强大的团队,能够用更少的钱做更多的事情,降低认知负担,这样人们就可以更愉快和健康地开发软件。

 

其他趋势,如低代码、无代码解决方案将为公民开发者赋能。世界交流和协作的方式也在发生变化,在大多数情况下利用了基于虚拟现实(VR)的技术。

  

原文链接

https://www.infoq.com/articles/infoq-software-trends-report-2022/


相关阅读:

特别专题:2022年度技术盘点与展望

中国软件技术发展洞察和趋势预测报告 2023

2023-02-07 14:117858

评论 1 条评论

发布
用户头像
数据网格和数据平台即产品 内容存在重复
2023-02-09 09:20 · 江苏
回复
没有更多了
发现更多内容

农业掀起“上链”潮 区块链等数字技术正成为乡村振兴新动力

CECBC

直播回顾:准确性提升到 5 秒级,ssar 独创的 load5s 指标有多硬核?| 龙蜥技术

OpenAnolis小助手

Linux 开源

SparkSQL的入门实践教程

华为云开发者联盟

sql spark 编程 Sparksql 结构化数据

亚信科技AntDB数据库荣获“2021金融科技应用创新突出贡献奖”

亚信AntDB数据库

AntDB 金融行业 亚信科技

全栈工程师?你知道全流程工程师吗?

蜜糖的代码注释

Java 开发 后端技术

异步调用如何使用是最好的方式?

CRMEB

手把手教你丨小熊派移植华为 LiteOS-M

华为云开发者联盟

华为 鸿蒙 LiteOS 小熊派 移植

从智能汽车到智慧出行,区块链能打通车联网的任督二脉吗?

CECBC

流批一体技术框架探索及在袋鼠云数栈中的实践

袋鼠云数栈

在线YAML转TOML工具

入门小站

工具

“在线设计”网络资源管理的源头活水

鲸品堂

通信运营商 在线设计平台

携程DBA负责人俞榕刚:OceanBase在携程的落地和实践

OceanBase 数据库

数据库 分布式 OceanBase 开源 携程 客户实践

第三方测评:GaussDB(for Redis)稳定性与扩容表现

华为云开发者联盟

redis 华为云 GaussDB(for Redis) NoSQL数据库 云原生NoSQL数据库

Linux之wc命令

入门小站

Linux

高并发环境下,6个构建缓存服务需要注意的问题

华为云开发者联盟

缓存 高并发 开发 并发 缓存服务

前端工程师 2022 年必备的 7 个工具

开源之巅

JavaScript node.js

必读!如何有效的进行沟通

观测观测

“以终为始”的正确使用方式

石云升

思维模型 1月月更

恒源云(GPUSHARE)_AdderSR: Towards Energy Efficient Image Super-Resolution学习笔记

恒源云

人工智能 深度学习 计算机视觉

微信的业务架构图和学生管理系统的毕业设计

Geek_8d5fe5

架构实战营

企业上云后,不容忽视的管理工具-云管平台

行云管家

云计算 企业上云 云管平台 云管理

Flutter启动流程分析之插件化升级探索

得物技术

flutter Weex Google 框架 原生

☕【Java深层系列】「并发编程系列」让我们一起探索一下CompletionService的技术原理和使用指南

洛神灬殇

Java 线程池 CompletionService 异步执行 1月日更

2022年保障企业内网安全就用行云管家!免费试用!

行云管家

云计算 云平台 内网 云管平台

用 docker 快速搭建 kafka(qbit)

qbit

kafka zookeeper docker image

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源

恒源云(GPUSHARE)_attention decoder效果不佳时如何应对

恒源云

深度学习 计算机视觉

基于Calcite的分布式多数据源查询

麒思妙想

MySQL 数据库 Apache Calcite gbase8a

鉴释加入龙蜥社区,助力开源生态建设

OpenAnolis小助手

Linux 开源 社群 合作伙伴

五步实现HarmonyOS应用(ets)【鸿蒙开发 07】

坚果

鸿蒙 1月月更

一款基于Java语言开发的,开源商业应用的模块化开发框架和智能管理平台-Axelor

马农驾驾驾

Java 系统开发 BPM 开发框架 智能管理

2022年主要趋势和2023年展望 | InfoQ软件发展趋势报告_大数据_InfoQ精选文章