
领域驱动设计(DDD)能够改进社会技术设计,以应对人类系统中的组织动态和决策复杂性,Xin Yao 在 OOP会议上解释道。她展示了如何通过“变革走私(change smuggling)”提供一种实用的方法来启动小型、安全的失败探测,促使社会技术变革有机地、通过对话地出现。
当今的软件专业人员需要在技术、商业和社会复杂性的迷宫中导航。根据 Xin Yao 的说法,在这个环境中茁壮成长需要的不仅仅是技术和商业专长,还有社会技术设计可以帮助我们应对这些挑战。
软件开发中的社会技术设计强调创建一个人们和技术都能蓬勃发展的系统,通过促进协作、涌现的一致性和共享理解,通过使能约束来实现。因此,社会技术设计可以改善架构决策,Xin Yao 解释道。
DDD 是一种社会技术实践,Yao 解释道:
它是实践性的,并且基于这样一个理念:软件设计必须与业务复杂性对齐,这最终意味着与这些人对齐:用户、客户、领域专家等。DDD 连接了技术模型和人类理解,确保软件紧密反映业务的心理模型和工作流。DDD 的上下文映射模式揭示了团队边界、协作模式以及人类组织和代码组织之间微妙的相互作用。
DDD 将组织复杂性视为技术目标的手段:保持软件模型的一致性和可维护性。社会技术设计迈出了下一步:它将组织和人类系统动态视为一流的设计材料,Yao 说。DDD 为更好的软件建模业务复杂性,社会技术设计为更好的工作建模组织复杂性。DDD 使软件与领域对齐,社会技术设计将软件、团队和组织凝聚和复杂化为一个活生生的、不断进化的系统,Yao 提到。
大规模变革计划常常失败,因为它们引发抵抗:决策是从上面强加的,人类系统的混乱现实被过度简化了,Yao 说。变革走私为软件从业者提供了一种更温和、更安全的方式来引入社会技术思维,当正式渠道感觉难以驾驭或被阻塞时。与其在同行之间或向上推动变革,变革走私者将小型、安全的失败实验——也叫做特洛伊鼠标,嵌入现有结构中。Yao 解释说,我们不是要说组织变化太慢,而是可以从共同学习的角度探索可能的事情。
变革走私者形成真正的伙伴关系。他们创造了疑虑和可能性共存的空间,优先考虑同伴联系而不是位置影响,并在人们一起工作的地方播种局部变化——而不触发企业免疫系统,Yao 解释道:
例如,相比强迫团队进入一个新的协作模型,一个走私者——以前被称为变革代理人——可能会不正式地将一个现有的会议重新构建为一个参与式建模会议,微妙地重塑决策动态。
为了提升,软件专业人员需要超越技术卓越理念:坚持理解全局,塑造信息流,设计协作,建模体验一致性,并将不确定性视为盟友,Yao 总结道。
InfoQ 就 DDD 和变革走私的问题采访了 Xin Yao。
InfoQ:DDD 实践者和软件架构师如何成为熟练的社会技术设计师和架构师?
Xin Yao:如果你擅长 DDD,你已经超越了代码——你建模业务,与领域专家互动,围绕现实世界的复杂性塑造软件。
现在,带着这种心态放大视野。把它想象成职业发展:
- 初级 DDD:“我如何设计更好的聚合和值对象?”
- 中级 DDD:“团队如何协作在有界上下文中建模通用语言?”
- 社会技术设计师:“团队如何使用关系方法和社会技术架构共同设计和共同演化软件和人类系统?”
InfoQ:他们可以做些什么来升级他们的工具箱?
Yao:他们可以添加到他们的工具箱中的一些工具包括:
- 上下文映射:探测社会和技术边界。摩擦和依赖真正来自哪里?
- 体验设计以实现一致性:创建生活、协作体验,促进深入对话、意义构建和对工作的共享代理。
- 社会技术架构:为社会架构定义质量属性,如连接、归属感和活力,并有纪律地建模它们。
- 作为召集人和连接者的领导人:从架构师转变为对话催化剂,提供上下文支持,以便团队可以找到自己的方式。
- 欣赏不确定性:将未知视为创造性燃料。最好的设计出现在规章和即兴、指导和自由、稳定性和变化之间的最佳点。想象一下航海——你不能控制风,但你可以调整帆。
下次他们遇到架构交叉路口时,可以问自己:这是一个技术问题,还是也受到社会复杂性的影响?然后,为两者设计。这就是升级。
InfoQ:是什么让“变革走私”成为社会技术变革的有效方法?
Yao:因为它与社会系统的自然动态顺向而行,而不是与之对抗。小实验改变了互动和社会技术学习过程,而不会威胁到身份或权力。随着时间的推移,这些使能约束带来了构成性约束——塑造系统的互动模式。最终,它们演变成治理约束,改变了大规模工作的方式。
这更像是通过厨房悄悄溜进来,一次对话赢得人心,而不是攻击城堡。有效的社会技术变革不是对现状宣战,而是重新设计条件,让可以自我维持的变革逐渐出现。
原文链接:How to Do Sociotechnical Design Using Domain-Driven Design and Change Smuggling








评论