写点什么

利用开放性社会技术系统设计,在复杂软件开发市场中蓬勃发展

作者:Trond Hjorteland

  • 2022-01-12
  • 本文字数:6360 字

    阅读完需:约 21 分钟

利用开放性社会技术系统设计,在复杂软件开发市场中蓬勃发展

尽管 ICT 行业正在尽可能地进行调整,以适应它所处的日益动荡的社会和技术环境,工人的要求越来越高,第四次工业革命正在形成,但成功率却低得可怜。许多人试图如实复制少数那些似乎已经破解了密码的公司所分享的成功模式,而其他公司则为了保护他们现有的资产在以前有效的方法上变本加厉,希望以此来应对危机。


这里主要的挑战很可能是,许多人成了他们自己成功经验的受害者,技术上的惊人进步导致了人们对技术的盲目追随,而忽略了社会和人文关怀。遵循物理工程的光荣传统似乎是一个明智的选择,它有严格的、经过实战考验的流程和专家领导的组织,但是技术领域并不是那样可重复、可预测,因为在任何时候任何层次上都有设计决策,从在会议室里制定战略到开发人员将代码提交到 Git。复杂性太高,变化速度太快,因此需要其他的工作方式,最好是会自然产生敏捷性、弹性和对不确定环境的主动适应性。颇具讽刺意味的是,我们可能正是在这种工业传统中找到了解决方案,而我们正是基于战后机械工业的科学研究拓展了这种工业传统。


从根本上说,软件开发是一项社会技术事业。这几条线在任何情况下都是不可分割的。

——GeePaw Hill


毋庸置疑。我们不擅长的是所有软件公司的社会维度,即社会技术系统。经常有公司自豪地宣称拥有世界上最好的产品经理、设计师、编码人员和 SRE,认为人才和人的专业知识是新的金矿,对他们的成功至关重要。然而,许多人似乎忘记了,正如 GeePaw Hill 所说,"软件开发从根本上说是一项社会技术事业"。软件是由人写的,也是为人写的。技术系统都是要有所依附的;它不可避免地会与社会系统相结合。也许我们应该更好地掌握社会科学,邀请他们来帮助我们创造一个工作环境,让人们在其中更加自在并且对自己生产的东西感到自豪——就像 70 年前的机械加工行业那样。

半自治团队的发现

自从塔维斯托克研究所在 20 世纪 40 年代末进入英格兰北部的煤矿,调查那里出现的一种新的工作组织方式以来,社会科学家就一直在与机械加工行业合作。有些煤层违背了随着新技术的引入而建立起来的劳动分工和专家监督与控制的新做法,回到了早期的工作组织方式,即建立相对自治的小组,这不仅能提高生产力,还能提高工人的工作积极性和身心健康。这些研究和随后几十年的行为研究表明,为了使一个社会技术系统能以最佳状态运行,在设计时必须从社会和技术两方面进行考虑。仅关注技术方面往往会导致一个非人性化的环境,而孤立地关注社会方面则无法使技术发挥其潜力。技术和社会方面需要同时优化。


煤矿工人所做的是回到他们古老的社会体系,在那个体系里,一切都由他们自己掌控,每个人都作为有尊严的人受到尊重。这是他们的求生行为,也是对几乎没有考虑社会影响的新技术所带来的工业化工作环境的非人性化的反应。许多 ICT 行业的人可能会认出这种模式,例如,在 90 年代,XP 团队就放弃了在多年期大型项目中普遍存在的最佳实践。他们对社会技术系统的低效和苛刻感到沮丧和厌恶,并坚定地认为,社会技术系统可以以任何程度的确定性进行预测,这促使他们探索新的工作方式,以更快的速度创造更好的结果,并使人们更加投入,而且为他们的工作感到自豪。


这是社会技术系统设计(STSD)研究和我们今天所说的敏捷工作方式之间诸多有趣的相似之处中的一个。除了时间、地点明显不同之外,主要的区别在于 STSD 是由科学研究驱动的,并以坚实的理论框架为基础。它有一个认识论和一个本体论。

理论基础的形成

在开放系统理论(OST)的历史上,有一篇开创性的论文涵盖了社会技术视角,这篇论文是由 Fred Emery 和 Eric Trist 在 1965 年发表的。论文的题目是 "组织环境的因果结构",探讨了一个名为社会生态学的领域,即环境中的人,并引入了两个重要的概念,奠定了理论框架的基础。一个是对冯-贝塔朗菲开放系统思想的拓展,即一个系统完全暴露在其环境中,为了生存,需要与环境建立一种交易关系;不仅要学习和适应环境,还要积极地参与其中,以确保自己的未来。另一个是确定系统可能身处其中的理想环境类型,他们称之为因果结构,并可以被看作是进化过程的各个阶段。具体描述如下:


  • 第一种,温和随机(placid random),主要是一种理论上的随机性,所有的事情都是随机的,环境是中立的;

  • 第二种,温和群集(placid clustered),由于元素聚集而更加有序,但环境仍然是中立的;

  • 第三种,分布式反应,这时就有竞争了,因为不仅有群集,而且同类元素不止一个。

  • 第四种,湍流场(turbulent fields),是最复杂的环境,其中的动态过程不仅是由于系统和它的交互,而且是由于场本身处于运动变化之中。文章作者通过组织结构对其中三种因果结构作了说明。


第二类环境是工业革命之前的世界,人们在自给自足的小社区里以自我管理的方式生活和工作,而第三类环境则是由劳动的工业化和竞争所直接导致的结果,该阶段始于 18 世纪末,一直持续到 1950 年代。这是一个充斥着科学管理、大规模生产、流水线、官僚主义、命令与控制、劳动分工的时代;一个高度竞争的、非人性化的环境,虽然有足够的资源供企业使用,无论是材料还是人员,但企业之间还是在为争夺同样的资源而战,这为几个世纪以来的稳定创造了条件,直到两次世界大战造成了大规模的破坏。


人们普遍讨厌在竞争激烈的官僚机构中生活和工作,包括国家在世界大战期间犯下的工业规模的谋杀,而竞争的一个必然结果是割裂。人们对第三类的非人化作出了反应,拒绝其所做的假设和安排,并越来越多地将事情掌握在自己手中。他们不再接受只是作为个人主导的官僚等级制度机器中的一个齿轮,而是希望在工作中获得更多的自主权、参与感和社会支持。基于上下级关系的旧价值观逐渐衰落,人们着手建立更平等的、基于民主关系的新价值体系。世界正在进入动荡的第四类环境。


回到现如今的 ICT 血汗工厂,程序员们挤在一个巨大的开放空间里(这点与工业时代的纺织工人不同),尽快完成着简单的任务,试图赶上日程紧张的发布序列。人们普遍害怕失败,偶尔会有英雄超出职责范围去挽回,并得到丰厚的回报。这正是 STSD 研究人员发现的反系统性,不是同时优化技术和社会,而是孤立地优化单个方面。争取建立敏捷的、获得授权的产品团队/BizDevOps 团队,类似于回到工业时代的半自治工作小组,使我们从短暂但稳定的第三类环境进入到了动荡的第四类环境。命令与控制的局限性越来越明显,因为在互联网的巨大规模以及许多人所说的第四次工业革命的推动下,物联网、大规模 M2M、机器学习、人工智能以及随之而来的所有新的商业模式,不断扩展的技术领域变得越来越难以预测。这种动荡的形势和呈指数级增长的多样性不能再只有少数高层掌握了——无论是对企业还是对在那里工作的人。


与战后时期的另一个相似之处是,劳动力的要求越来越高,尤其是像信息和通信技术那样一个门槛较高的行业,每一次技术进步所需要的专业技能都越来越多。另外,新生代都是数字原生代,无论是千禧一代、Z 一代还是α一代,他们的价值观与工业官僚机构的一致性甚至低于之前的 X 一代和婴儿潮一代。他们非常关心自主性、意义、个人发展、自我表达和乐趣。简而言之,在基本需求得到满足的同时,人们还需要更好的工作质量。在这方面,一个很好的例子是在 COVID-19 大流行之后出现的所谓辞职潮。

两条基因型的组织设计原则

那么,企业如何在这样一个动荡的环境中求发展呢?敏捷以及建立真正的产品团队的梦想又该如何实现?让我们再来看看 STSD 的理论基础,特别是弗雷德-埃默里在 1967 年挪威工业民主计划中提出的 OST 扩展。他确定了他所说的两条基因型的组织设计原则,简称为 DP1 和 DP2(DP:设计原则),它们是通过冗余让组织得以有效运作。 DP1 是指部分冗余,即每个部分都非常简单,可以很容易、很方便地进行替换。越简单越好,但这也意味着需要对它们进行协调或监督,以便完成整个任务。这就是我们都知道的劳动分工最大化的经典官僚等级制度。DP1 的关键特征是,协调和控制职责至少比执行层高一个等级。


另一方面,DP2 是通过职能来处理冗余,每个部分、每个人都可以做很多事情,任何部分缺失了,他们都可以填补。然后,协调和控制职责就转移到了小组,这就是我们所知的劳动分工最小化的半自治团队。现在,我们称之为自我管理小组,因为它可以有不同程度的自主性。这也突出了这些小组不需要外部管理的事实。


管理职能存在于从战略到运营的各个层面。DP1 和 DP2 结构之间的一个重要区别是,组织现在被看作是一个开放的系统,与环境(可以是存在竞争关系的公司,可以是客户及其用户,甚至是扩展到社会和技术领域)之间有着渗透性界限。在组织内从上到下的自我管理小组中,员工的工作积极性都很高,环境中原本就有的各种机会可以得到最大限度的利用,而且工作障碍可以降到最低。


摘自 Merrelyn Emery 的论文《Emery 开放系统理论的当前版本》(2000 年)。


在因果结构的上下文下,第一条设计原则,即 DP1,是第三类世界中的统治者,而第二条,即 DP2,是我们人类自诞生以来一直到工业革命时都采用的。第四类呢,动荡的环境?我们看到人们试图通过现代化的跨职能团队回到 DP2,也看到人们退出来自主创业。这些都是对工业官僚体制存在的问题使其越来越不适应当下的环境所作出的反应。


当时和现在存在的问题是,这主要是在 "车间 "层面上进行的,主要工作是在那里完成的,而组织的其他部分往往仍处于 DP1 模式。从组织层面上讲,这既不是 DP1 也不是 DP2,真的,既非专制也不是民主,而是一种混合模式。团队中的许多尝试实际上是放任自流,民主被错误地理解成不受约束的个人自由,或者是已经失去控制却仍然以为在控制之中。要么没有目标,要么目标不一致,这可以看作是对动荡的第四类环境的适应不良,在这种情况下,如果对当前的适应不良没有一个清晰的认识,事情就会变得越来越糟。可以说,在很多地方,工业化的敏捷都符合这种情况,特别将其规模扩大到现有的官僚机构时,不管是 DP1 风格的组织,还是 DP2 风格的敏捷团队都变得更糟。

设计参与式民主组织

OST 的建议是,从 DP1 到 DP2 的过渡需要有人协助并且可控,以避免动荡加剧的风险。可以说,要做到这一点,唯一的方法是进行彻底的结构性变革,彻底消除 DP1,从专制和命令 &控制转向参与式民主,让每个人都有机会成长和发挥他们的潜力。这一点大多数人都同意,许多公司试图通过一种人际关系的游戏来进行变革,引入新的公司价值观,但事实一次又一次地证明,这几乎没有任何实际的影响。实际上,首先变化的是行动或行为,其次是价值观和态度,但这不是唯一的方式。Merrelyn Emery 简明扼要地指出,"不管你唱了多少次这首歌,你需要的不仅仅是爱"。


同样重要的是,这类变革不应该只在组织的某些部分进行;这必须是完整的结构性变革,利用 Donella Meadow 罗列的干预系统最有效的杠杆点中的第二个。"系统——其目标、结构、规则、延迟、参数——所产生的思维方式或范式"。


在信息与通信技术行业中,从个人主导的层级结构过渡到非主导式的职能层级结构。


目标是彻底改变结构,从个人主导的层级结构转变为非主导式的职能层级结构,由跨职能和上下级职能合作的自我管理小组组成。这似乎与许多敏捷和产品支持者所谈论的东西非常接近,比如史蒂夫-丹宁说:"实现商业敏捷性需要组织从职权层级进化为能力网络",或者迈克尔-杜巴科夫所说的 "层级结构的组织无法对新出现的市场机会和变化做出足够快的反应,这不利于公司的长期生存",也类似于 Spotify Model、Holacracy、Dialogic OD,甚至所谓的青色组织(teal organisations)。他们都在寻求 DP2,但没有锚定到 OST。


对于一个工作在组织层级结构和技术栈底层的开发人员来说,这种根本性的变化会对他们产生什么影响?这意味着他们不再是被管理并被指派完成具体的任务,而是成为团队的一部分,承担着从头到尾设计、开发和维护业务功能的任务。该团队将拥有完成整个任务所需的所有角色和专业知识,对于如何完成任务,其他人没有发言权,因为能够完成任务的人已经在这个团队中了,包括产品经理。它拥有支撑整个价值流所需的所有权力和配备,其目标明确,与整个组织保持一致,而且已成为他们自己内在的动机,因为他们参与设计了自己的工作,在心理上就会认为那就是自己的。


有点讽刺的是,这听起来像是一个组织良好的项目团队,具备了所有必要的人员和权限,通过优化后的流程有效地推动变革,但这是一个临时的组织结构,常常是设置了 PMO 的官僚式 DP1 结构的一部分,它设置了 PMO,而且 IT 与业务之间有供求之分。很遗憾,大多数矩阵组织实际上都是官僚式的组织结构,正如 Spotify 所经历的。


在某种意义上,STSD 和 OST 不仅是最初的敏捷和基于产品的组织设计方法,也是工作环境中团队优先概念的起源。在 Emery 发现基因型设计原则之前,就已经有大量的社会技术研究工作,但是大部分都已经过时了,人们将设计原则融入到被称为参与式设计工作坊的方法中,并在其中重新设计自己那部分组织,使其从 DP1 变为 DP2。另外,在挪威工业民主计划中,Emery 和 Thorsrud 证实了在生产性工作中心理需求的巨大作用,即所谓的六个标准:


  1. 要求合理;

  2. 有学习机会;

  3. 有一定的决策权;

  4. 社会性支持;

  5. 有机会将工作与社会生活联系起来;

  6. 有令人期许的未来。


以上各项大概定义了满意度,并与 DP2 的运作密切相关。它们已经被编篡成了法规条款,并成为参与式设计研讨会早期分析阶段的常规度量项,在这个阶段,员工会评估他们的组织以及组织对他们的影响。实际上,这些要求现在已经是挪威法律的一部分,明确写在了《工作环境法》的第 4.2 节中。

总结

总而言之,STSD(作为 OST 的组成部分)以及目前对敏捷团队的要求,与团队优先的民主式组织结构目标非常相似,后一种组织结构是由人们自己参与设计的,因为正如阿科夫所说的那样,"绝对有必要让执行计划的人做计划。" 公司气氛会更快乐,员工会更投入,从而可以生产出他们让引以为豪的更好的产品和服务,而且将更有能力应对第四类环境的动荡,因为与 DP1 相比,DP2 更加多样性。从工业时代把人变成零件的脆弱的机械式官僚机构,转变为通过参与式设计而建立的专门团队,弹性、主动适应(敏捷性)和授权自然就出现了。


对于软件开发人员,这可能意味着:


  • 要更加清楚地认识到,这项工作对社会和技术都有影响,不仅对你自己,而且对生产的数字产品也有影响。要尽早开始进行独立的社会分析,并照顾到这个层面的发展。

  • 要积极与其他开发人员以及参与产品设计、开发和维护的每一个人进行合作。这是一项团队工作,每一项贡献都有价值。要有团队精神,因为无论是对产品,还是对你自己而言,这都是最好的做法。

  • 作为一个团队,要尽可能多地对过程、信息、差异控制以及自己的健康负责。这样可以减少外部控制的需要,并有望完全消除,以便获得完全的代理权。

  • 承担责任也意味着要想办法减少对其他团队的依赖,使所有人都能自主地开展工作,并完全拥有整个工作流。大家一起为公司里的每个人创造更好的工作环境,让人们的目标和价值观保持一致。

  • 半自治的团队网络似乎是乌托邦式的,要实现它的确需要一个重大的转变。无论你在组织中的什么位置,都要为之努力。这不仅会极大地提高你自己的工作生活质量,也会提高组织在日益动荡的环境中生存下来的机会。运用 OST 和参与式设计来完成这一过程,设计你自己的工作,从而获得心理上的所有权。


STS 的设计初衷是 "四赢":人更投入,技术潜力得到更大程度的发挥,组织整体表现更好,也更容易适应环境的变化。——帕斯莫尔等

作者介绍:

Trond Hjorteland 是来自 Scienta.no 咨询公司的 IT 架构师和有抱负的社会技术系统设计师,拥有多年大型、复杂和关键业务系统的工作经验,他主要是作为中间件和后端应用程序的开发人员和架构师。他的主要兴趣是面向服务、领域驱动设计、事件驱动架构和社会技术系统,在电信、媒体、电视和公共领域等行业工作。他的座右铭是:伟大的产品源于合作式意义建构与设计。Trond 的推特是@trondhjort,博客在这里


原文链接:


Thriving in the Complexity of Software Development Using Open Sociotechnical Systems Design

2022-01-12 09:311737

评论

发布
暂无评论
发现更多内容

KMP子字符串匹配算法学习笔记

爱好编程进阶

Java 程序员 后端开发

Linux宝塔面板命令大全

爱好编程进阶

Java 程序员 后端开发

SpringFramework中的注解声明式事务怎么被Shiro搞失效了

爱好编程进阶

Java 程序员 后端开发

架构实战营模块5作业

天琪实刚亮

有了测试组,为什么还要QA?

高山

测试 QA CMMI

Dart 2.17发布,新特性速递

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

网站开发进阶(六十四)CSS 属性选择器讲解

No Silver Bullet

CSS 属性选择器 5月月更

Java进阶备战金九银十88道真题:多线程+集合

爱好编程进阶

Java 程序员 后端开发

[Java基础]Map集合的遍历

爱好编程进阶

Java 程序员 后端开发

从AI数羊到“相牛”:人工智能应用如何低门槛化?

脑极体

JDBC访问数据库的一些小技巧

爱好编程进阶

程序员 后端开发

mykit-lock之——分布式锁插件正式开源

爱好编程进阶

Java 程序员 后端开发

redis编码及数据结构

爱好编程进阶

Java 程序员 后端开发

15-操作DOM对象

爱好编程进阶

Java 程序员 后端开发

ElasticSearch 概述

爱好编程进阶

Java 程序员 后端开发

Tomcat,Let‘s Go!

爱好编程进阶

程序员 后端开发

Druid连接池源码阅读05

石小天

架构训练营毕业设计:电商秒杀系统

AragornYang

架构训练营 架构实战营

架构训练营 毕业总结

AragornYang

架构训练营 架构实战营

MPEG-TS封装格式

Loken

音视频 5月月更

5分钟学会 Vim 分屏操作方方面面

爱好编程进阶

Java 程序员 后端开发

IntelliJ IDEA如何clean或者install Maven项目

爱好编程进阶

程序员 后端开发

Java字节流和字符流,是时候总结一下IO流了

爱好编程进阶

程序员 后端开发

SpringCloud Alibaba实战二十七 - Oauth2认证服务器自定义异常

爱好编程进阶

Java 程序员 后端开发

设计模式之代理模式

乌龟哥哥

5月月更

Java 集合看这一篇就够了

爱好编程进阶

程序员 后端开发

Shiro 权限管理入门之认证与授权

爱好编程进阶

Java 程序员 后端开发

AI简报:图像超分模型RCAN+SRResNet

AIWeker

人工智能 深度学习 5月月更 超分

k8s client-go源码分析 informer源码分析(3)-Reflector源码分析

良凯尔

容器 云原生 Kubernetes 集群 Client-go

LeetCode - 1629 -按键持续时间最长的键 - Java - 细喔

爱好编程进阶

Java 程序员 后端开发

Mybatis源码学习(二)缓存和别名处理器

爱好编程进阶

程序员 后端开发

利用开放性社会技术系统设计,在复杂软件开发市场中蓬勃发展_文化 & 方法_InfoQ精选文章