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

发布于:2007 年 12 月 16 日 13:03

资深架构师 杨波,正在以案例项目驱动,原理+编程技术+工具结合落地微服务和云原生架构,立即查看 >>

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

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

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

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

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

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

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

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

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

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

阅读数:216 发布于:2007 年 12 月 16 日 13:03

更多 敏捷、架构、文化 & 方法 相关课程,可下载【 极客时间 】App 免费领取 >

评论

发布
暂无评论
  • DSL:你也可以设计一门自己的语言

    即便我们不去设计一个内部DSL,这种写代码的方式也会对我们代码质量的提高大有助益。

    2020 年 6 月 17 日

  • Ted Neward 看架构师的角色和责任

    Ted Neward分享了他对软件架构师的角色和责任的一些想法,他讨论了架构师要做些什么工作,如何实现其角色,以及架构师是否仍然重要。

    2007 年 9 月 26 日

  • 74 | 开源、云服务与外包管理

    从形态来说,商业软件很接近传统外包,但是从它的边界来说,因为商业软件往往有明确的业务边界,所以在品质上会远高于外包。

    2020 年 1 月 17 日

  • 让敏捷交付优秀的软件

    程序员与业务人员应当投入时间与精力以寻求互相之间的理解,并且通过共同努力一起解决软件交付中的各种问题。Nic Ferrier在一次访谈中谈到了谈论的内容包括了有效地实施敏捷、经理或Scrum master在敏捷中的必要性,为何专注于架构能够改善团队合作、以及如何通过技术帮助我们避免团队曾经经历过的某些组织结构方面的问题。

    2015 年 6 月 11 日

  • 回顾极限编程:通过更多地实践集体所有权,成为一名思想更加缜密的程序员

    开发者经常会造成或面对一些受挫的情况,其原因在于没有考虑到后来者的感受。本文对极限编程中最简单的一条原则(也是经常被人误解的一条原则):集体所有权进行了回顾,希望通过这种方式能够让开发者在编程过程中更为深思熟虑。

    2015 年 4 月 13 日

  • 被劣质代码“残害”的这些年

    你以为劣等软件已经没有了吗?其实每天依然有很多人“深受其害”。

    2020 年 3 月 31 日

  • Web 编程中的三大分歧

    让我们聊一聊那些比你在前端社区所看到的更久远且更根深蒂固的分歧吧。

    2019 年 8 月 14 日

  • 技术分歧,如何决策?

    技术分歧时,决策标准的相对与绝对,决策原则的因素与考量。

    2018 年 11 月 26 日

  • 架构师及其目标在软件项目中的挫折感

    软件架构在软件项目中是否经常做得糟糕,经常被忽视了呢?这是CodingTheArchitecture.com的创始人兼独立咨询师Simon Brown在近期一篇博文中提及的一种现象。Brown认为这是对架构的误解,是敏捷项目中随意的架构方法导致架构走到如此糟糕的境地。

    2012 年 4 月 23 日

  • 产品经理如何与开发打交道(上):打破思维的边界

    在产品经理的日常工作中,开发工程师可能是我们打交道最多的角色,可是,这两个角色之间却有很多难以调和的矛盾。

    2018 年 1 月 2 日