写点什么

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

  • 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:031193
用户头像

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

关注

评论

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

走进RocketMQ(三)消息存储与消费

白裤

Java RocketMQ RocketMQ消息存储 RocketMQ消息消费

【明晚直播】KunlunBase 1.1 版本发布:完善MySQL 兼容性,OLAP性能提升

KunlunBase昆仑数据库

MySQL 数据库 PgSQL 线上直播

假如面试官要你手写一个promise

helloworld1024fd

JavaScript 前端

手写一个react,看透react运行机制

goClient1992

React

LED广告宣传车与LED流动舞台车的区别

Dylan

广告 LED 户外LED显示屏

ChunJun 1.16 Release版本即将发布,bug 捉虫活动邀您参与!

袋鼠云数栈

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布

JackJiang

网络编程 即时通讯 IM

极光笔记 | 极光PUSH服务助力企业提升抢单速度

极光GPTBots-极光推送

技术干货 移动推送 智能推送

深入React源码揭开渲染更新流程的面纱

goClient1992

React

滴滴前端一面常考手写面试题整理

helloworld1024fd

JavaScript 前端

从源码角度看React-Hydrate原理

flyzz177

React

从recat源码角度看setState流程

flyzz177

React

Switchquery:移动端秒级配置触达平台

京东科技开发者

App 配置原理 用户触达 企业号 3 月 PK 榜

ChatGPT 爆火,社交应用如何 Get 新技能

融云 RongCloud

IM ChatGPT

TSBS 是什么?为什么时序数据库 TDengine 会选择它作为性能对比测试平台?

TDengine

性能测试 时序数据库 ​TDengine

轻量易部署!Coolbpf 发布不依赖 Clang 的脚本化编程特性 lwcb | 龙蜥技术

OpenAnolis小助手

开源 rust ebpf coolbpf lwcb

基于大规模边缘计算的千万级聊天室技术实践

环信

聊天室 大规模边缘计算 千万级

从一次CPU打满到ReDos攻击和防范

京东科技开发者

正则表达式 Web 企业号 3 月 PK 榜 ReDoS

从计费出账加速的设计谈周期性业务的优化思考

鲸品堂

运营商 业务流程优化 企业号 3 月 PK 榜

京东前端二面常考手写面试题(必备)

helloworld1024fd

JavaScript 前端

从react源码看hooks的原理

flyzz177

React

BNB Chain 2023年40佳DAPP评选,Zebec赫然在列

鳄鱼视界

深度分析React源码中的合成事件

goClient1992

React

CutLER:更好地训练无监督识别模型

Zilliz

应用模型开发指南上新介绍

HarmonyOS开发者

HarmonyOS

如何使用C LinkSDK(4.x)快速接入阿里云物联网平台?——实践类

阿里云AIoT

阿里云 物联网 IoT

技术写作的“坎”

码猿外

程序员 写作

从零手写react-router

helloworld1024fd

JavaScript 前端

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