【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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

  • 2012-04-23
  • 本文字数:2229 字

    阅读完需:约 7 分钟

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

Brown 说,脱离现实的象牙塔里的架构师继续损害着软件架构的声誉。很多架构师不是通过与开发团队的紧密合作设计出切实可行且深思熟虑的解决方案,相反,他们脱离开发者,交出一大堆高层规范。当软件架构师不能给项目带来直接价值时,其结果往往是架构工作被边缘化,致使一些并无准备的开发者承担软件设计的职责。Brown 认为这是架构面临的主要问题,而且敏捷项目使问题进一步恶化。他说,敏捷项目常常以快速交付之名忽视坚实的架构原则。

那些陈旧的软件架构到底是什么?许多软件开发团队认为他们并不需要软件架构师,取而代之提出了诸如“自治团队”、“YAGNI”、“演化架构”、“最后责任时刻”的术语。若他们的确需要架构师,那么他们寻找的可能是“敏捷架构师”。我并不太清楚这个词的实际含义,但是我猜它应该包含使用便签帖(Post It)代替 UML 或使用 TDD 取代架构图的意味吧。总之,我假设他们已经抛弃了仅使用高层系统隐喻的观念,并且没有把“紧急设计”作为期待一切顺利的借口。

希望仍然是有的。Brown 坚信任何项目中都有架构原则的一席之地。但是,他要求软件架构社区通过更好地工作来解释架构师的价值,为未来的架构师进行投资。InfoQ 联系到 Brown 并向他询问了一些关于架构的现状以及如何提升该角色相关的问题。

InfoQ:引用您**博文中一条评论,“架构师到底应该做什么?”**

Brown:“架构师”这一词汇所面临的主要问题是,每个人、团队或组织对它都有自己的定义。对我而言,软件架构师角色就是将技术领导力带入软件团队。我们坚信所有项目必须要有预先的设计,而其中妙处就在于如何做到“恰到好处”,简单来说,就是创建最初的高层结构,应对重大风险,确定其他团队成员认可的愿景。除了这些事先设计的工作之外,架构师的角色还要在整个交付生命周期中,在必要时刻负责并改进最初的设计。需要强调的一点是,我这里谈的是角色而非职位,该角色可由一个人承担也可有团队里的多人承担。我最近在 2012 伦敦的 QCon 大会上组织了一个研讨会,在会议上我回答了许多关于软件架构师角色的问题。读者可以从 http://www.codingthearchitecture.com/2012/03/13/photos_from_my_qcon_london_2012_tutorial.html 阅读问题小结,有意思的是我们在这里谈论的角色与许多组织里的该角色差别很大。

InfoQ:为什么您认为软件架构仍然被人们误解了呢?怎么才能更好地理解这一角色呢?

Brown:我认为软件架构被误解的原因是软件架构角色在行业中的名声太坏,另外许多关于它的科教材料都太抽象太学术化。所谓的“业务技术战略师”和“业务价值呈现”不会吸引开发者,相反大多数开发者对此望而却步。我们创建“Coding the Architecture”网站的目的就是为大家带来一种与软件开发者喜爱的务实且有效的软件架构视图。为什么?因为太多软件项目因为最基本的原因而失败,我非常喜欢看到软件架构能够简单地像软件开发角色的一部分,如此每个软件开发者都能拥有这样的基础。在我们梦想打造的自组织团队中,每个软件开发者发展成软件架构师是在正确的方向上发展中的理所当然的一步。

InfoQ:在这篇博文中,你提出了一个反问“敏捷需要架构或架构当真需要敏捷吗?”那么你自己如何回答这一问题。

Brown:所有的软件项目,不论它有多敏捷,都应该考虑“架构”,因为重要的非功能性需求和限制并未消失。所以答案是肯定的,敏捷项目需要软件架构师角色,但是不幸的是许多项目团队由于迫不及待地采用敏捷而忘记了这一点。而另一方面,传统项目的软件架构也需要从轻量级方法学习很多,而敏捷成功地展示了这一点,它告诉人么不需要为每件事做大量的前期设计。

InfoQ:你认为从开发者发展成架构师是自然而然的吗,有没有从别的方向发展过来的不同的路径。

Brown:这又是一个只能回答“看情况”的问题。有一些软件开发者对职业的爱好是受编码驱使的,他们喜欢在这个层面上保持创造力。而另外一些人则喜欢在更广阔的范围内迎接软件设计的挑战。我所认识的最好的架构师都有深厚的技术功底,而且在其成为“技术大牛”之后才转做架构师的。对技术的理解非常关键,而退一步从“全局”去理解软件及其部署环境背后的驱动力同样重要。一个好的软件架构师要二者兼备,这解释了为什么并非每个软件开发者的下一步发展方向都是架构师的问题。另外,还要消除一个神秘观念,事实上,成为软件架构师并不意味着放弃编码。

InfoQ:你如何在一个组织中“培养”架构师?

Brown:很不幸,许多公司里都没有这回事。大多数的情况是,软件架构师或者被扔进泥潭任凭他们在那里挣扎,因为他们得不到帮助和支撑,或者他们被推向管理岗位。如果组织鼓励角色间的协作,鼓励已经在架构师职位的人去指导或带领其他人,那么培养软件架构师的技能就变得非常简单。整个软件团队都要采用软件架构,为何不让他们参与进来并影响它呢?此外,组织还可以组织一些内部“架构实战营”,这样人们就可以实践从头开始设计软件。说到底,有多少软件架构师能够这样有系统地实践架构呢?

您可以访问 http://www.codingthearchitecture.com/2012/01/05/contextualising_just_enough_up_front_design.html 获取更多关于软件架构实践的更多指导。


查看英文原文: Frustration with the Role and Purpose of Architects on Software Projects

2012-04-23 21:534114
用户头像

发布了 184 篇内容, 共 76.6 次阅读, 收获喜欢 7 次。

关注

评论

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

4K YouTube to MP3 for Mac(在线视频转Mp3软件)v5.2.0中文激活版

影影绰绰一往直前

Deckset for Mac(MD文档转幻灯片软件)v2.0.28激活版

影影绰绰一往直前

ClickCharts for Mac(轻量级思维导图软件)v9.15激活版

影影绰绰一往直前

Rhinoceros 8 for Mac(犀牛8 mac版)v8.5.24072.13002中文激活版

iMac小白

Cookie for Mac(浏览器缓存清理工具)v7.2.5免激活版

iMac小白

Bettertouchtool for Mac(鼠标增强软件)v4.443中文正式版

iMac小白

入门可解释机器学习和可解释性【内容分享和实战分析】

阿里云天池

阿里云

可视化数据库管理工具 SQLPro Studio mac功能介绍

Rose

WiFiSpoof for Mac(wifi地址修改工具)v3.9.4.1免激活版

影影绰绰一往直前

4K Video Downloader Plus Pro for Mac(4K视频下载器)v1.5.0激活版

iMac小白

一文带你详解天池医疗数据集

阿里云天池

阿里云

使用EasyRec快速构建推荐模型

阿里云天池

阿里云

SQLPro Studio for Mac(可视化数据库管理工具)v2024.12激活版

影影绰绰一往直前

Final Cut Pro X:Mac电脑上专业级剪辑软件 fcpx中文版下载

Rose

vivo统一接入网关VUA转发性能优化实践

vivo互联网技术

负载均衡 性能 QAT

英特尔全面升级卓越POS认证计划,构建零售行业数字化生态

E科讯

KeyShot 2024.1 for mac(3D渲染和动画制作软件)v13.0.0.92破解版

iMac小白

一分钟了解JAVA语言

小魏写代码

PDF Reader Pro for mac(全能pdf编辑阅读软件)v3.3.1.0直装激活版

影影绰绰一往直前

Ink2Go for Mac(屏幕标注和录制工具)v1.9.2免激活版

影影绰绰一往直前

PanoramaStudio Pro for mac(全景照片制作软件)v4.0.0激活版

影影绰绰一往直前

BetterMouse for Mac(鼠标增强软件)v1.5 (4620)中文激活版

iMac小白

Bettertouchtool for Mac(鼠标增强软件)v4.443中文正式版

影影绰绰一往直前

PullTube for Mac(在线视频下载器)v1.8.5.28中文激活版

iMac小白

FxFactory 8 Pro for Mac(视觉特效处理包)v8.0.14激活版

iMac小白

Prometheus多集群监控的3种方案,你选哪种?

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟

Illustrator2021下载 AI 2021中文直装版 mac/win

Rose

KeyShot 2024.1 最新浮动许可证 Mac/win

Rose

KeyShot 2024 KeyShot 2024许可证

鼠标增强 Bettertouchtool for Mac破解 含bettertouchtool安装教程

Rose

BetterTouchTool破解 BetterTouchTool教程 Bettertouchtool鼠标增强

Adobe Creative Cloud for mac(acc安装及卸载教程) v6.10最新版

Rose

TechTool Pro for mac(硬件监测和系统维护工具)v19.0.2中文激活版

影影绰绰一往直前

架构师及其目标在软件项目中的挫折感_研发效能_Richard Seroter_InfoQ精选文章