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

  • Sadek Drobi
  • 李剑

2007 年 12 月 16 日

话题:敏捷架构文化 & 方法

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

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

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

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

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

……

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

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

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

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

查看英文原文Can architecture create a gap between developers and software they build?
敏捷架构文化 & 方法