写点什么

发展不能违背康威定律

  • 2016-10-18
  • 本文字数:1085 字

    阅读完需:约 4 分钟

在 SpringOne 大会上,来自 Credera 的 Jason Goth、Micah Blalock 和 Patricia Anderson 介绍了他们如何使用康威定律调整一个客户的技术架构和流程,帮助他们扭转了生产率下降的趋势,提高了高质量代码的生产速度。

康威定律指出“设计系统的组织……其产生的设计等价于组织间的沟通结构。”也就是说,团队创建的东西依赖于组织内部的沟通方式。

在为他们的医疗客户创建自定义分析平台时,Credera 了解到,对于一个或两个并行的软件开发团队而言行之有效的架构和流程,在并行开发团队发展到五个时会迅速陷入僵局。Credera 的方案是,根据康威定律重新定义问题,调整技术架构和流程。最后,经过努力,Goth、Blalock 和Anderson 扭转了生产率下降的趋势,提高了高质量代码的生产速度。在2016 年8 月份举行的SpringOne 大会上, Credera 分享了他们的经验

起初构建代码时,只有两个并行 Scrum 团队,Credera 取得了初步的成功。因而,客户给他们安排了额外的工作。新工作需要另外增加几个并行开发团队,以应对同时到来的截止期。遗憾的是,这种规模的增长让他们的工作陷入了停滞。简单的代码变更需要级联修改多个下游服务。团队之间在工作时间里召开的沟通会议呈指数增长。不同团队的工作量差别很大,有些团队的成员很早就离开了,而其他团队则工作到深夜。士气下降,截止期已过,事情悬而未决。

为了匹配自己的沟通结构,Credera 团队从技术上改进了其软件设计。为了完善划分,他们在代码上应用了开 / 闭原则。在多个团队操作类似的代码时,这可以降低成本,但会导致团队编写重复的代码。他们将这一做法称为 GARY(继续前进,重复自己)。为了解耦大部分代码,他们创建了一个水平面,以防止许多与生成的重复代码相关的缺陷使他们多次“野蛮地重构”。

Goth、Blalock 和 Anderson 进行了组织变革,停止违背康威定律。代码标准被取消,只为开发人员提供了一份可以让他们快速从一个代码集迁移到另一个代码集的准则。一名成员充当软件开发过程中所有团队的负责人,推动团队之间的沟通。另一名资深成员 Blalock 则成为“献祭的羔羊”,负责会见客户以及与遗留代码打交道。虽然并不常见,但团队成员在冲刺过程中会在团队之间流动。结果是会议频次降低。团队工作量正常化,士气上升。最后,截止期不再那么令人焦虑。

该团队是受 Fred Brook 的著作《人月神话》所启发。通过那本书,他们认识到,沟通成本加上工作划分会导致效率变化。只有当工作可以划分时,你才可能通过增加团队成员来提高效率。

该团队采用了 Spring 平台,并将微服务作为项目的一部分。他们使用 Angular 和 Java 编码。

查看英文原文 Grow with Conway’s Law, Not Against It

2016-10-18 19:002562
用户头像

发布了 1008 篇内容, 共 397.9 次阅读, 收获喜欢 345 次。

关注

评论

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

云原生引擎单元测试实践

京东科技开发者

云原生 单元测试 代码覆盖

App Store 新定价机制 - 2023年最全版

37手游iOS技术运营团队

ios iap In App Purchase App Store Connect API app store

"我眼中的ChatGPT"征文获奖作品合集

InfoQ写作社区官方

技术专题合集 热门活动 ChatGPT

户外广告屏为什么会坏?

Dylan

LED 户外LED显示屏

架构实战营10期-模块九作业

炮仗

媒体赞誉丨九科信息入选“第一新声”2022高成长新锐企业榜、RPA高成长企业榜,并受邀参加“2022年高科技高成长年度峰会”

九科Ninetech

三月征文活动结果已出炉,快来看看有没有你

InfoQ写作社区官方

热门活动 ChatGPT

架构实战营第10期毕业设计-秒杀系统

Geek_4db2d5

Java程序员涨薪必备的性能调优知识点,收好了

三十而立

Java

硬核!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

三十而立

Java java面试

综合系统清理优化工具:MacCleaner PRO中文激活版

真大的脸盆

Mac Mac 软件 mac系统清理优化软件 清理工具 清理优化

GPT-4免费无限制使用教程

南城FE

人工智能 AI 前端 ChatGPT

如何构建内部开发者门户:企业参考指南

SEAL安全

企业号 3 月 PK 榜 开发者体验 内部开发者门户

SVN管理工具:Cornerstone 4 激活版

真大的脸盆

svn Mac Mac 软件 SVN客户端

Java并发夺命23问

程序员大彬

Java Java并发 java面试

PyTorch 深度学习实战 | 基于ResNet的花卉图片分类

TiAmo

数据集 PyTorch

【程序员日记】---当“微服务”遇到了“电饼铛“

京东科技开发者

架构 微服务 系统架构 开发 企业号 3 月 PK 榜

尚硅谷Java真题详解教程发布

小谷哥

一种基于实时大数据的图指标解决方案

京东科技开发者

大数据 运维 系统架构 开发 图指标

机器学习算法(一): 基于逻辑回归的分类预测

汀丶人工智能

数据挖掘 机器学习 数据分析 逻辑回归

SaaS时代下的我们需要什么样的数据库?

陈飞

谷歌架构师分享gRPC与云原生应用开发Go和Java为例文档

程序知音

Java 架构 云原生 编程语言 后端

9 个可以快速掌握的 Java 性能调优技巧,必须掌握

三十而立

Java

得物社区计数系统设计与实现

得物技术

性能优化 重构 稳定性

4种API性能恶化根因分析

华为云开发者联盟

开发 API 华为云 华为云开发者联盟 企业号 3 月 PK 榜

《动手学深度学习--PyTorch》之学习环境搭建

IT蜗壳-Tango

「Go框架」bind函数:gin框架中是如何绑定请求数据的?

Go学堂

golang 开源 程序员 个人成长

AIGC导航网站推荐

kcodez

人工智能 AIGC Chat ChatGPT

面试处处碰壁?不慌,Java核心面试文档.PDF助你披荆斩棘

三十而立

场景重塑:乐播投屏搭载无影架构,打造“超级投屏空间”

云布道师

无影

发展不能违背康威定律_架构_Mikael Zandin_InfoQ精选文章