大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

社会技术方法如何帮助应对复杂性

  • 2025-06-01
    北京
  • 本文字数:1571 字

    阅读完需:约 5 分钟

大小:769.54K时长:04:22
社会技术方法如何帮助应对复杂性

今天的软件专业人员需要在技术、业务和社会的复杂性迷宫中穿行。根据 Xin Yao 的说法,在这种环境下要想成功,需要的不仅仅是技术和业务知识。我们需要在解耦系统以获得可维护性、重新连接它们以创造业务价值、以及处理组织动态的混乱性方面应对自如。在面向对象(OOP)大会上,Yao 探讨了社会技术设计如何帮助我们应对这些挑战。

 

软件面临的最大挑战之一是需要同时解耦和连接,正如 Yao 所解释的:

 

开发人员被期望将系统分解为模块化的、独立的部分,同时还需要了解如何重新连接它们以创造业务价值。一个结构良好的 API、消息队列或数据契约可能在今天是有效的,但随着业务需求的发展,必须要重新审视这些连接。

 

Yao 认为,随着软件的老化和业务环境的发展,必要的更改——重构、重新架构或重新思考系统边界——通常不仅会因技术难度而受到阻碍,还会受到团队的社会复杂性、决策结构以及角色边界和组织动态的影响。

 

软件存在于人类系统之中,然而许多开发实践都假设软件工作的人类方面,如沟通、理解、决策和协作,可以像代码一样被整齐地结构化和控制。但社会的复杂性是突现的、不可预测的,并且充满了矛盾,Yao 说。

 

Yao 提到,不一致的激励、僵化的团队结构、权力动态和变革疲劳通常会给可持续架构带来障碍。她补充说,许多团队缺乏开放、反思性对话的必要条件,导致肤浅的解决方案无法解决潜在的社会约束,因此设计很脆弱。

 

Yao 提到,除了技术上的卓越之外,社会技术适应性也是关键。她提到了进行深度协作、反思性对话和参与式决策制定的能力:

 

像促进、提出问题、积极倾听和协作建模这样的技可以帮助团队驾驭不确定性,并将软件与人类需求对齐。

 

社会技术适应性的先决条件是社会技术意识,将我们的软件工作视为系统之系统。Yao 争论到,设计软件、业务需求以及两者背后的人之间的关系至关重要:

 

认识到这一点的开发人员和架构师不仅仅是在构建软件——他们还在培养一种环境,在这种环境中,通过信任、共享语言和对意义的持续协商,好的软件可以出现。

 

Yao 说,软件并不是和社会系统并存的,而是嵌入其中的。我们的工作是一个复杂的社会系统,由复杂的技术子系统组成。技术子系统是嵌入式的,它不是一个我们可以独立优化的孤立的机器;它在不断成长、变化,并与人类的决策、工作流程和权力结构纠缠在一起:

 

每一段代码都带有塑造它的对话、误解、约束和妥协的痕迹。

 

这种嵌入性使得软件本质上比仅仅是技术部件的集合更复杂。同一段代码可以根据使用它的人、团队如何解释需求或决策权如何分配而发挥不同的作用,Yao 说。

 

软件不是纯粹的不可预测性。像 DDD、CI/CD、容器化和 TDD 这样的实践为技术领域带来了可预测性,Yao 说。但这种可预测性在人类互动层面上崩溃了:

 

挑战在于知道什么时候依靠可预测性,什么时候拥抱突发性。这就是从软件设计到社会技术设计的转变。

 

我们不应该急于寻找解决方案,而应该参与到塑造我们整个社会技术系统的更深层次的问题中——关于意义、关系和权力动态的问题,Yao 建议道。通过这样做,我们避免了过早的收敛,并创建了反映业务领域和人类系统真正复杂性的解决方案。

 

InfoQ 采访了Xin Yao,讨论了如何处理社会技术复杂性的问题。

 

InfoQ:在尝试将架构与组织结构对齐时,需要避免的关键陷阱是什么?

 

Xin Yao:许多组织旨在实施逆康威策略,但在实践中却举步维艰。一个主要的陷阱是假设仅仅改变团队结构就能解决架构问题。更有效的方法是根据团队如何自然协作和发展来迭代调整边界。

 

复杂性需要协作。社会复杂性的大爆炸分而治之(即重组或转型)并不是解耦和连接软件的灵丹妙药。

 

InfoQ:讲故事在驾驭社会技术复杂性中扮演了什么角色?

 

Yao:故事有助于将抽象的复杂性具体化。它们使团队能够提出假设、建立共同的理解、培养心理安全感,并参与富有成效的对话。

 

原文链接:

https://www.infoq.com/news/2025/05/sociotechnical-complexity/

2025-06-01 10:005420

评论

发布
暂无评论

无服务器计算Serverless能否引领云计算下一个十年?

用友BIP

云计算 容器 无服务器计算

ReactNative进阶(三十二):前端构建工具--Yeoman

No Silver Bullet

React Native 1月月更 Yeoman

SparkSQL高并发:读取存储数据库

华为云开发者联盟

数据库 高并发 Sparksql 存储 读取

从重大漏洞应急看云原生架构下的安全建设与安全运营(上)

腾讯安全云鼎实验室

云原生 安全漏洞 安全服务

恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~

恒源云

深度学习 语音识别

腾“云”架“雾”,3DCAT带你进入元宇宙

3DCAT实时渲染

云渲染 元宇宙

markdown-it 插件如何写(三)

冴羽

JavaScript 前端 vuepress markdown-it markdown-it插件

《火绒安全2021终端安全情报年鉴》发布 拦截弹窗广告45亿次

火绒安全

网络安全 终端工具 终端安全 勒索攻击 弹窗

数智融合加速驱动企业商业创新

用友BIP

大数据 数据中台

教程直播第7期|如何对 OceanBase 进行 SQL 诊断和调优

OceanBase 数据库

数据库 直播 课程 OceanBase 开源 OceanBase 社区版

架构实战训练营- 模块8 -作业

温安适

「架构实战营」

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

面试官:知道 Flutter 生命周期?下周来入职!

百瓶技术

前端 生命周期 客户端 Flutter 小菜

迭代发布后,为什么还需要开迭代回顾会议?

LigaAI

团队管理 敏捷开发

深入浅出Apache Pulsar(4)Pulsar Functions

云智慧AIOps社区

Apache kafka 云原生 pulsar 消息中间件

服务网格的落地探索和实践

ZEGO即构

微服务 istio 服务网格 音视频开发

【安全漏洞】Struts2漏洞集合总结

H

网络安全 安全漏洞

科技,让春节团圆再无距离

Anthony

首批+唯一!阿里云实时计算 Flink 版通过信通院大数据产品稳定性测试

Apache Flink

大数据 flink 阿里云 实时计算

字节跳动数据湖技术选型的思考与落地实践

字节跳动数据平台

数据湖 数据流 Apache Hudi

8节深度学习干货课程,帮你轻松点亮AI项目开发技能

OpenI启智社区

人工智能 深度学习

【重构前端知识体系之HTML】HTML5给网页音频带来的变化

归子莫

html 前端 1月月更 audio

Python 判断图片和文件真实类型(qbit)

qbit

后缀

M1 用不了 Vagrant 只能用这个代替了“ Multipass” 一个 如Docker般的虚拟机

edd

Hoo虎符研究院2022年0124期区块简报

区块链前沿News

Hoo虎符 Hoo 虎符交易所 区块链资讯

2022年Flutter真的会一统大前端吗?

坚果

Flutter 小菜 1月月更

国内公有云首个支持保留消息功能!百度智能云天工物联网核心套件技术再升级

百度大脑

人工智能

SAP ABAP 业务开关和 SAP 电商云的 Feature Level

汪子熙

angular abap 1月月更 增强包 增强技术

起个变量名,好的代码应该是这样的

蜜糖的代码注释

Java 互联网 开发 后端技术

【监控体系】全面系统的Zabbix讲解 | 含源码&监控类型整理

云智慧AIOps社区

运维 监控 zabbix 智能运维 监控工具

『内存中的操作系统』如何高效, 灵活的虚拟化内存(1)

soolaugust

操作系统 内存

社会技术方法如何帮助应对复杂性_软件工程_Ben Linders_InfoQ精选文章