写点什么

架构是否会在开发人员和应用之间划出鸿沟?

  • 2007-12-16
  • 本文字数:917 字

    阅读完需:约 3 分钟

当今,在软件社区内的众多努力,都旨在帮助软件专业人士和业务人士相互理解,顺畅沟通。有些博客的作者则从另外一个角度来看待这个问题,指出了开发人员和他们所开发的软件之间的一条鸿沟

Jeff Attwood 认为,Amazon 常常让开发人员参与到客户服务中去的这种做法,对于提高软件质量和可用性是大有裨益的。他相信,“绝大多数时候,软件开发者仅仅是他们自己代码库的过客”。这种状况的出现,是因为他们缺少对软件用户,以及用户的问题和思维的基本理解。这也就是他在之前的博客中所提到的“象牙塔中的软件开发”:

没有任何足以服人的证据,开发人员便假定其它所有人都是开发人员……开发者越孤立,其最终产品也就越糟糕。纵然大多数团队中都有业务分析专家,以充当开发者和用户之间的隔离层为己任,那也是无济于事……想创建一个让开发人员对用户毫无所知的环境是极其危险的。

按照 Abhijit Nadgouda 的说法,今天的这个行业的特点是层次结构和各层之间的信息隐藏(译者注:请自行翻墙)。他特别指出,这一点简化了管理工作,并让业务变得更加安全,但是对软件质量却有着负面影响:

我们在项目中创建了一个层次结构,每一层都向低层隐藏了一些信息。软件开发团队中有多少人了解他们所开发的软件的价值,或是它对于客户业务的重要性?又有多少人了解他们所工作的代码之外的其它项目组成部分?……

看上去,在更好的业务与更好的软件开发之间有着断层。这就是为什么我相信我们中的很多人善于经营业务,但是我们这个行业却仍受困于软件开发。

Reg Braithwaite 在尝试指出为什么“我们仍受困于软件开发”(译者注:请自行翻墙)时特别提出,我们这种“把经验最少的人置于保护之下以免破环代码”的拆分项目工作的方式也许是错误的。

基于这种工作方式的架构,明显是趋向于通过抽象来简化开发者的工作。如果把它推向极致,开发者的工作就从功能性的环境中脱离开来,变成了纯粹的技术工作,由此便在开发者和他们所开发的软件之间,划出了一道潜在的鸿沟。

你的观点是什么?这种保护性的架构对于软件质量是一种障碍吗?让开发者对项目全景一无所知的架构会是有效的吗?它能够交付软件和价值吗?

查看英文原文 Can architecture create a gap between developers and software they build?

2007-12-16 13:031119
用户头像

发布了 197 篇内容, 共 62.7 次阅读, 收获喜欢 21 次。

关注

评论

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

挽救你的视频号:能够把PPT转换成视频,把备注转换成语音的开源项目

陈磊@Criss

你问我答:现有的应用有必要做微服务改造吗?

BoCloud博云

容器 DevOps 微服务 云平台 博云

华为云FusionInsight大数据技术普惠创新,释放千行百业数据价值

数据湖洞见

大数据 FusionInsight 华为云

FlinkX 如何读取和写入 Clickhouse?

Apache Flink

flink

技术分享:即构互动白板音视频同步、多端有序协作技术实践

ZEGO即构

音视频 在线教育 SVG

关于显性知识和隐性知识

Tanmer

知识管理 知识产权

深圳泰利能源有限公司涉嫌传销 共计2.7亿元

CECBC

区块链 基金

数字资产钱包开发,数字加密货币app搭建

13530558032

SpreadJS 纯前端表格控件应用案例:MHT-CP数据填报采集平台

葡萄城技术团队

融云Geek Online 2020 编程挑战赛重磅来袭

InfoQ_967a83c6d0d7

从 Node.js(JavaScript) 到 Golang,我的开发体验

Garfield

node.js Go 语言

区块链助力军事人力资源配置

CECBC

区块链 军事

Spring Bean处理器

语霖

Spring Framework

3种双集群系统方案设计模式详解

华为云开发者联盟

数据库 数据仓库 数据 双集群系统 双ETL模式

读懂k8s 容器编排控制器 Deployment

Garfield

k8s pod k8s入门

云原生如何来进行HTTPS升级

soolaugust

架构 云原生 设计模式

某程序员毕业进UC,被阿里收购!跳去优酷土豆,又被阿里收购!再跳去饿了么,还被阿里收购!难道阿里想收购的是他?

程序员生活志

职场 阿里

区块链支付新模式开发,USDT支付系统搭建

13530558032

1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知

YourBatman

Hibernate-Validator Bean Validation 数据校验 JSR380

话题讨论 | 当你敲代码累了时,一般喜欢吃点什么补充能量?

InfoQ写作社区官方

加班 写作平台 代码 话题讨论

MAC系统初始化

焦振清

macos 重装系统

数字货币交易平台源码,数字货币交易所开发核心功能

13530558032

anyRTC Native 4.1.0.1与Web SDK 4.0.11上线

anyRTC开发者

学习 WebRTC 语音 直播 sdk

案例分享丨红外自动感应门设计与实现详解

华为云开发者联盟

物联网 传感器 感应探测器 SMT32处理器 感应门

凡泰极客与Rancher达成深度战略合作,加速企业构建私有化小程序生态

FinClip

人的转型才是关键 数字化时代你具备数字领导力么

CECBC

区块链 数字化时代

Cassandra Gossip协议的二三事儿

华为云开发者联盟

源码 三次握手 开发者 Cassandra Gossip协议

SpreadJS 纯前端表格控件应用案例:雨诺订单管理系统(雨诺OMS)

葡萄城技术团队

LeetCode题解:155. 最小栈,单个栈存储入栈元素与最小值之差,JavaScript,详细注释

Lee Chen

大前端 LeetCode

XSKY对象存储获全球备份领域领导者Commvault官方认证

XSKY星辰天合

云算力挖矿平台APP,算力挖矿建设开发

13530558032

架构是否会在开发人员和应用之间划出鸿沟?_研发效能_Sadek Drobi_InfoQ精选文章