写点什么

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

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

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

关注

评论

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

LeetCode | 4. Palindrome Number 回文数

Puran

Python C# 算法 LeetCode

本地缓存高性能之王Caffeine

root

Java Guava Cache Caffeine 本地缓存 谷歌本地缓存

week3-学习心得

Geek_36d3e5

LeetCode 2. Add Two Numbers

liu_liu

数据结构 算法 链表 LeetCode

一些有用的工具、开源项目收集

陈皮

架构师训练营第三周总结

烟雨濛濛

孩子教育

王进行

教育 孩子

区块链助力新基建

CECBC

区块链技术 联盟链 公链 底层技术

week3 作业

雪涛公子

云计算产品的竞争力

韩超

云计算 k8s 公有云 私有云

迎接一次重大的人生升级,让优秀的你,成为大学顶尖生。

叶小鍵

单例模式与组合模式总结与练习

单例模式 极客大学架构师训练营 组合模式 第三章作业

刘华:想入门软件系统架构设计,看这篇就够了

刘华Kenneth

架构 架构师 故障 容灾 灾备

从印度兵力分布聊聊Mybatis中#和$的区别

程序那些事

Java sql mybatis 印度兵力

ARTS|Week 4 Product, Leadership, and SOLID

Puran

设计模式 LeetCode ARTS活动 Leadership

依赖倒置原则

任小龙

LeetCode | 5. Longest Common Prefix 最长公共前缀

Puran

Python C# 算法 LeetCode

通证经济=区块链技术+商业模式

CECBC

商业模式 区块链技术 Token 通证经济

了解 Java 内存模型

陈皮

JMM

设计模式作业

qihuajun

LeetCode 300. Longest Increasing Subsequence

liu_liu

LeetCode

ArrayList的删除姿势你都知道了吗

root

Java 后端 ArrayList 循环删除 ModificationException

接口隔离原则-Cache类优化

yupi

Week3 作业

Shawn

架构师训练营第三周作业

张明森

极客大学架构师训练营

架构师训练营总结-20200621

caibird1984

极客大学架构师训练营

面试急转弯:List如何一边遍历,一边删除?

Java小咖秀

springboot + rabbitmq 做智能家居,我也没想到会这么简单

程序员小富

Java Spring Boot RabbitMQ 智能设备

ARTS Week4

时之虫

ARTS 打卡计划

week3:组合设计模式和单例

Geek_36d3e5

了解 Java 架构

陈皮

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