写点什么

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

  • 2025-06-02
    北京
  • 本文字数: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-02 14:003746

评论

发布
暂无评论

2021 创新加速周蓄势待发,铆足牛劲再出发!

亚马逊云科技 (Amazon Web Services)

SQL Server 删除正在使用数据库

田镇珲

建信金科大咖访谈:金融科技驱动业务创新,智慧运营引领发展转型

金科优源汇

报名 | 全球首个小资源音色克隆赛结果出炉,高分队伍线上报告会

爱奇艺技术产品团队

华云大咖说 | 高校混合云建设及应用

华云数据

互联网短平快下,DevCloud如何支撑软件开发的“转型”?

华为云开发者联盟

android 敏捷开发 软件开发 华为云 devcloud

百分点数据科学实验室:产品生命周期管理创新应用落地实践

百分点大数据团队

英特尔:i7-10870H 游戏性能超 R7 5800H,更强的 11 代酷睿 H 在后面

E科讯

笔记整理:技术架构涵盖内容和演变过程总结

小傅哥

Java 程序员 小傅哥 架构设计 架构图

详解NLP和时序预测的相似性(附赠AAAI21最佳论文INFORMER的详细解析)

华为云开发者联盟

自然语言处理 深度学习 时序预测 RNN Informer

工作中,有哪些SQL是我们必须要掌握的?

xiezhr

oracle sql SQL语法 3月日更

一个简单实用的Linux性能分析工具

运维研习社

Linux 性能分析

智汇华云 | ArcherOS Stack—软件定义数据中心“利器”

华云数据

大赛报名|首次聚焦口罩场景!第三届 106 点关键点定位大赛开启

京东科技开发者

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

【LeetCode】用栈实现队列Java题解

Albert

算法 LeetCode 28天写作

Shibboleth IdP4 升级指南

冯骐

认证 Shibboleth IdP 上海教育认证 上海教育

百分点大数据技术团队:数据治理“PAI”实施方法论

百分点大数据团队

力扣(LeetCode)刷题,简单+中等题(第32期)

不脱发的程序猿

算法 LeetCode 编程能力 28天写作 3月日更

25个关键技术点,带你熟悉Python

华为云开发者联盟

Python

云小课丨网络好不好,ping一下就知道

华为云开发者联盟

网络 虚拟私有云 ping ICMP 安全组

金三银四如何突击面试美团?面试题(含答案)+学习笔记+电子书籍+学习视频

比伯

Java 编程 架构 面试 程序人生

农田治理效率低下还赔本?智慧农业力保粮食品质,效率事半功倍

一只数据鲸鱼

物联网 数据可视化 智慧城市 智慧农业 农业管理

Pano React Native SDK 来了!快速实现移动端音视频和白板

拍乐云Pano

flutter ios android RTC React Native

中国程序员最容易发错的单词

happlyfox

GitHub 学习 程序人生 3月日更

Kubectl Plugin 推荐(一)| 可观测性篇

郭旭东

kubectl kubectl plugin

滚雪球学 Python 第二轮开启,进阶之路,列表与元组那些事儿

梦想橡皮擦

28天写作 3月日更

是什么支持“毅力号”在火星上尽情摄影?

亚马逊云科技 (Amazon Web Services)

酷睿i7-10870H对比锐龙7 5800H游戏性能, 英特尔仍是游戏本CPU的更优选

E科讯

KubeEdge 1.6发布:可靠的K8s原生边云API

华为云原生团队

开源 云原生 边缘技术 kubeedge

人民网:亚马逊云科技,以这样姿势扎根中国!

亚马逊云科技 (Amazon Web Services)

百亿级流量的百度搜索中台,是怎么做可观测性建设的?

百度Geek说

中台 云原生 #百度#

社会技术方法如何帮助应对复杂性_管理/文化_Ben Linders_InfoQ精选文章