9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

如何用社会技术设计改善架构决策

  • 2025-09-05
    北京
  • 本文字数:1733 字

    阅读完需:约 6 分钟

大小:858.14K时长:04:52
如何用社会技术设计改善架构决策

软件开发中的社会技术设计理念的核心是创建一个系统,在这个系统中,人和技术都能蓬勃发展,通过一些赋能约束来促进合作、激发一致性和共享理解,这不仅改善了架构,还使工作更有效、适应性更强,让人更满意。在OOP会议上,Xin Yao 就社会技术设计和变革促进发表了演讲。

 

今天的软件专业人员需要穿梭在技术、商业和社会复杂性的迷宫中。根据 Xin Yao 的说法,在这个环境中蓬勃发展需要的不仅仅是技术和商业专长,社会技术设计可以帮助我们应对这些挑战。

 

社会技术设计指的是主动构建一个系统,在这个系统中,人和技术都能蓬勃发展。社会系统带来的不仅仅是创造更好软件的手段,其本身的目标更为重要,正如 Yao 所解释的:

它认识到软件不仅仅是由代码和业务需求塑造的,更是由团队的工作方式、彼此交流和决策的方式塑造的。良好的架构会随着人类合作逐步演变。


在其核心,社会技术设计平衡了结构和自主性,为协调提供了足够的稳定性,同时留有适应和变化的空间。这就像爵士乐一样,Yao 说:有一个框架,一个调性,一个时间戳,还有一些指导性约束,但在这些条件之内,音乐家可以即兴发挥、响应和共同创作。制约太多,系统就会变得僵化;约束太少,就会陷入混乱。

 

像传统的软件架构一样,一致性是社会技术架构中理想的特质。部分要一个个融入整体,Yao 说。传统方法是自上而下、提前强加一致性,但、而社会技术架构通过赋能约束来自下而上地涌现一致性,这些约束为一致性设定了条件倾向,然后才会形成系统范围内的构成和治理性约束(Alicia Juarrero 的约束框架)。

 

Yao 提到,赋能约束,如探索性设计、反思性对话、参与式建模和语言化,共同塑造了信息的旅程,也就是知识流经系统以及关系复杂化的过程。这些互动让决策规模大大缩减,使团队能够共同应对不确定性,找出有意义的区别,并完善他们的心智模型:

相比预设的结构,这种方法培养了局部一致性,架构洞察在具体情境中涌现出来,然后固化下来。


Yao 提供了一个社会技术原则改善软件架构的具体例子:

我们来看一个现实世界的场景:一家公司在微服务的混乱中挣扎。他们有完全解耦的服务,每个团队都拥有自己的清晰界定的上下文,但业务却举步维艰。为什么?因为团队不小心过度解耦,失去了对大局的把握。


关键的工作流跨越多个服务,需要不断交接,破坏用户体验,甚至使小的变更也成为官僚主义的噩梦,Yao 说。他们没有进行另一次“回归模块化单体架构”的行动,而是应用了社会技术原则——从赋能约束开始。

 

Yao 提到,他们引入了反思性对话、参与式建模和上下文映射工作坊,开发者、产品人员甚至客户支持坐在一起。人们提出深入的问题,互相提出难题以定位疑虑和担忧的问题,并讨论以前大家认为不可讨论的问题:

目标是重新发现基本的联系和机会,找出我的位置,找出我们在整体故事中的位置。


结果发现,一些团队之所以拆分服务,并不是因为业务需求,而是因为团队领导没经过验证就假设大家彼此不愿协调优先级,Yao 说。

 

随着大家都理解了这些新的发现,团队围绕实际业务流程开始自我重组。一些服务合并,其他服务重新定义了它们的接口,她说。构成约束涌现出来,成为稳定的跨团队沟通模式,随着时间的推移,治理约束维持了自主性和对齐之间的平衡。

 

结果是更快的交付、更少的依赖和更快乐的团队。不仅是软件架构变得更好,工作也更好做了。这一切都始于大家一起提出更好的问题,Yao 总结道。

 

InfoQ 采访了Xin Yao,讨论了如何进行社会技术设计。

 

InfoQ:社会技术设计与传统软件设计有何不同?

Xin Yao:与通常将系统视为异源性——由外部工程师作为生产因素而构建的传统软件设计不同,社会技术设计采用了自源性视角(Humberto Maturana:自源性和认知)。

 

我们是我们所设计的更大系统的一部分。软件创造者的福祉不仅仅是创作更好软件的手段;它本身就是一个目标。

 

InfoQ:技术债务通常被框定为纯粹的代码问题,但你的演讲表明它也是一个社会技术问题。你能解释技术债务是如何受到社会动态影响的,以及团队如何更有效地解决它吗?

Yao:技术债务通常源于由于观点差异、未经验证的假设和缺乏深入设计探讨的合作而匆忙做出的决策。

 

解决这个问题需要提高沟通、决策效率和改善跨团队关系——不仅仅是重构代码。

 

原文链接:

How Sociotechnical Design Can Improve Architectural Decisions

2025-09-05 15:375

评论

发布
暂无评论

harmony-utils之DialogUtil,弹窗工具类

桃花镇童长老

HarmonyOS ArkTS

HarmonyOS开发实战:Performance Analysis Kit实现文档编辑器性能调优

huafushutong

鸿蒙开发实战:NearLink Kit实现文档近场极速互传

huafushutong

HarmonyOS开发实战:Network Kit实现文档云同步与协作

huafushutong

【HarmonyOS】头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (一)

GeorgeGcs

【HarmonyOS】输入框焦点控制实现键盘显隐和进入页面默认弹出键盘获取a焦点设置

GeorgeGcs

鸿蒙开发实战:Online Authentication Kit实现文档服务安全认证

huafushutong

鸿蒙开发实战:Sensor Service Kit实现智能文档阅读模式

huafushutong

HarmonyOS开发实战:Audio Kit实现文档语音批注功能

huafushutong

HarmonyOS开发实战:AVCodec Kit实现文档视频转码嵌入

huafushutong

HarmonyOS开发实战:AVSession Kit实现文档多媒体协同控制

huafushutong

HarmonyOS开发实战:DRM Kit实现企业文档版权保护

huafushutong

HarmonyOS开发实战:Media Kit实现文档多媒体融合

huafushutong

harmony-utils之DeviceUtil,设备相关工具类

桃花镇童长老

HarmonyOS ArkTS

鸿蒙开发笔记:Test Kit实现文档编辑器自动化测试

huafushutong

HarmonyOS开发实战:User Authentication Kit实现文档安全访问控制

huafushutong

harmony-utils之EmitterUtil,Emitter工具类

桃花镇童长老

HarmonyOS ArkTS

HarmonyOS开发实战:Telephony Kit实现文档紧急联系人联动

huafushutong

HarmonyOS开发实战:Universal Keystore Kit实现文档加密安全存储

huafushutong

【HarmonyOS】模仿个人中心头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (二)

GeorgeGcs

【HarmonyOS】应用推送使用个推SDK如何实现?

GeorgeGcs

【HarmonyOS NEXT】深入理解LocalStorage

GeorgeGcs

HarmonyOS开发实战:Remote Communication Kit实现远程文档协作

huafushutong

鸿蒙开发笔记:Status Bar Extension Kit实现文档编辑器状态栏定制

huafushutong

鸿蒙开发实战:Wear Engine Kit实现智能手表文档预览

huafushutong

HarmonyOS开发实战:Service Collaboration Kit实现文档服务智能联动

huafushutong

HarmonyOS开发实战:Camera Kit实现文档扫描增强

huafushutong

鸿蒙开发实战:Pen Kit实现手写文档批注功能

huafushutong

harmony-utils之DisplayUtil,屏幕相关工具类

桃花镇童长老

HarmonyOS ArkTS

鸿蒙开发实战:Image Kit实现文档图片智能处理

huafushutong

harmony-utils之FileUtil,文件相关工具类

桃花镇童长老

HarmonyOS ArkTS

如何用社会技术设计改善架构决策_软件工程_Ben Linders_InfoQ精选文章