Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件架构师在敏捷团队中扮演什么角色

软件架构师在敏捷团队中扮演什么角色

作者头像
云云众生s
发布于 2024-03-27 09:29:54
发布于 2024-03-27 09:29:54
1350
举报
文章被收录于专栏:云云众生s云云众生s

软件架构师是敏捷团队中的“鸡”还是“猪”?不管怎样,架构师通常能帮助开发和项目团队在长期内保持高效交付。

译自 Here’s What a Software Architect Does in an Agile Team

你是一个软件架构师。随着人工智能再次颠覆行业角色,关于架构师在敏捷团队中的角色的争论仍在持续。我不想假装这是全新的争论;事实上,The New Stack就这个问题还发表过一篇较新的文章

“架构师”这个词的问题在于,它在建筑行业有非常具体的含义。这是大多数人首先接触这个概念的地方。但是在软件开发中,它是一个更加分散的术语。在某些情况下,它只是作为一个荣誉头衔使用——不太像“思想领袖”那么空泛,而是给予资深人员一定尊重,但不授予实际头衔。但让我们暂且不谈这一点,假设你是真正意义上的架构师。

对于运行简单网页应用的团队来说,大多数人可能认为不需要软件架构。开发人员都有自己喜欢的前端框架。AWS可以提供各种解决方案,并指导如何托管网站,如果这就是你所需的。现在已经不需要说服任何人使用Git了。我们都知道网站能做什么,所以客户和开发团队之间的沟通可能很顺畅。在这种有限的场景下,谁还需要架构师呢?当然,在这种简单的情况下,架构已经融入背景;网站在一段时间前已经标准化,它们能正常工作,我们不再仔细检查底层机制。但是一旦需要更复杂的功能,软件架构的重要性就凸显出来了。Tailwind仍然合适吗,还是Bootstrap的组件更可靠?我们需要在Lambda中运行额外的方法来降低成本吗?客户是否有从网站获得更多商业价值的需求?因此,作为架构师的第一个职责是: 通过管理复杂性来降低风险和成本。

当一个组织涉及多个团队或产品时,架构师可以更轻松地保持稳定的进展。有时是确保多个团队使用通用的API。维护流水线并定义不同的阶段。一些现有的云解决方案隐含了特定的设计,这也形成约束。无论哪种方式,架构师通过提供结构、统一标准和确定性来避免混乱。

将架构工作前移

敏捷关注当下

这可能开始作为一个不言自明的秘密,但现在已被广泛接受: 架构师可能不是一个有效的敏捷团队角色。我承认有时我对开发团队中的非编码成员过于狂热。温和一些的观点是意识到敏捷中的“猪”和“鸡”的区别。在做早餐时,鸡生鸡蛋而猪付出了真正的代价。因此,只有“猪”才应该参加每日站立会议。

将架构师角色引入典型的敏捷团队中有以下三个问题。可以把这些看作新教改革运动中的论点,象征性地张贴在会议墙上。

  • 敏捷没有前期设计阶段。
  • “最好的架构、需求和设计来自自组织团队”。
  • 架构师不能作为批准者而造成延迟。

这导致了架构知识应该在团队其他成员中传播的观点。这通常确实如此——但是,它掩盖了架构责任并不明确落到任一个人身上这一事实,即使团队成员可能觉得自己负有责任。还记得RACI矩阵吗

难道所有的敏捷开发者都应该兼任项目架构师吗?这似乎并不合理,因为架构描述了一个统一的计划。它不是一个持续的论点,不像软件开发可以是。

拥有架构能力的最大原因是当一个内部系统必须与另一个系统协同工作时。但是期望整个团队都对两个系统都有完整的了解,这是不现实的。

悄悄引入设计

我并不完全相信所谓的“出现式设计”;事实上,我经常看到设计被偷偷引入了day 0的冲刺计划,即使只是一个“稻草人”设计。或者由于高级成员的建议,某一建议的架构并未受到质疑。

这导致如果架构师也是一个动手的开发者,他们的刻意设计可以被悄悄引入,而不受任何质疑。尽管这是一个实际的解决方案,但它确实意味着团队运作变得不透明。

治理也是必须做但是通常被忽视的事情。敏捷仪式理论上可以帮助自我治理;但是当回顾不到位时,一个代价就是缺乏任何“演进”架构所需的反馈。

刚刚好的架构

因此,“大前期设计”已经被排除在外,架构必须更像轨道而不是完整的路线图。设置边界,利用现有系统中的技术限制来维持愿景,并与其他团队和项目保持一致。

我通常不会提及SAFE或"可扩展敏捷框架",但它在面对与 Architectural Runway 理念的矛盾时相当乐观。它提出了字面意义上的“空中铺路”的概念,就像《惊魂鸟》动画中威利狼徒手在空中造路那样,这在物理上显然是不可能的。

但我们理解他们的意思。制定从“这里”到稍远“那里”的计划。这可能是足够的API、对新工具使用的限制,或者为即将到来的需求重新组织CI流水线。这也可能是指导开发人员理解与现有系统合作的好处,而不是重复开发。

从内部优化敏捷系统

我认为在严格遵循敏捷方法的同时,仍有效地为团队或项目工作的空间。事实上,认识到敏捷的局限性在一定程度上有助于改进它。

开发有意图的设计(可能不是一次展示全部,而是分阶段),并不会太超前于客户需求——这些是敏捷架构师的主要技能。

处理技术债务也暗示了我们已经接受敏捷会导致生产力泄漏。在敏捷环境中,引导开发实现计划可能是架构师最佳介入点。这在敏捷过程中是合理的——先让代码实现对关键利益相关者的价值证明,然后以更多预见性重写代码。

关注组织内其他团队正在使用的数据格式和API,并添加故事来推动实现一致,这在任何敏捷框架下都可以良好工作。与json和yaml的重复争论相比,更好地利用社区实践,专注于最佳格式。

因此,即使稍微逆势而行,也不需要完全推翻敏捷系统。虽然我必须承认,这仍然使架构师成为一只“鸡”而不是“猪”,但架构师可能是保障团队和项目长期有效交付的关键——避免项目陷入混乱。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-122,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
资深架构师十年总结:成为架构师,你必须具备这五点能力
作者 | Alan Tai 译者 | 冬雨 策划 | 闫园园 在过去的 20 年里,作为一名软件工程师和软件架构师,我与不同领域和不同学科的软件工程师聊过很多次。他们中有一些人是有着 8 到 10 年经验的高级工程师,有许多人还在职业生涯早期,有着 3 到 5 年的经验。其中一些人是我的同事。有些人是求职者。聊到最后,他们几乎都会问到同样一个问题: “我想成为一名解决方案架构师。了解更多架构相关内容的资源有哪些?“——很多软件工程师都会问的一个问题。 他们问错了问题。如果你读下去,就会知道为什么我
深度学习与Python
2023/03/29
5960
资深架构师十年总结:成为架构师,你必须具备这五点能力
软件架构师的12项修炼[2]——关系技能修炼(2)——领导力、政治
领导力是为了建立一种认知, 即每个人都觉得这种认知是对的。 你必须知道项目中每个人如何工作, 了解他们对项目的看法和关心的地方。
高广超
2018/12/12
6040
浅谈软件架构师的素质与职责
最近开始学习如何成为一名合格的架构师。首先参照别人的观点,在结合自己的实际经验,写出自己对如何成为一名架构师的理解,希望大家热心于与援手,能够指点一二. 沟通能力和自我表达 我认为沟通能力是基本中的基本,最为重要,最为普遍的素质。技术人员好像容易忽略,想成为架构师就不能忽略。因为架构师要做的第一件事就是与团队成员、项目经理、客户认同沟通,获得认同。我知道,这对于现在做技术,以后想转做架构的人也许很难.对本人也是如此。也许 你会注意到虽然你兢兢业业,老黄牛的做了很多事,但每次升迁的总是那些平时最活跃的人。抛除
张善友
2018/01/30
6810
如何成为更好的软件架构师?这篇3.8K star的文章值得一看
几年前有人问我:「你是怎么成为一名软件架构师的?」我们就此探讨了必备技能、经验,以及储备相关知识所需的时间和精力。除此之外,我也回顾了自己走过的路、使用或尝试过的技术,以及我从那些五花八门的工作中学到的东西。
机器之心
2020/02/24
5220
如何成为更好的软件架构师?这篇3.8K star的文章值得一看
业务架构师、系统架构师、软件架构师:职责、技能要求及对比分析
业务架构师、系统架构师和软件架构师在企业技术层面扮演着不同角色,各自有其独特的职责和技能要求。了解和明确这三者的不同,有助于组织有效地分配资源和角色,促进企业的技术和业务目标的实现。
运维开发王义杰
2023/08/10
4.2K0
业务架构师、系统架构师、软件架构师:职责、技能要求及对比分析
「企业架构」企业架构师,解决方案架构师和软件架构师有何不同
在体系结构开发中使用实际操作的方法来在项目生命周期中提供技术领导。通常,他们是根据他们所掌握的技术来命名的,例如,Python架构师。他们负责软件开发中的设计模式、标准和策略。软件架构师倾向于回答这样的问题:“我们重构现有代码的开发标准是什么?“并确定开发方法。它们还可以定义集成标准。他就是我们很多人所说的架构师。负责特定解决方案/项目的最高设计级别和范围的人员。如果有其他类型的架构师,也可以在标题中使用Application,并且您希望清楚地看到此人主要担心的是某个特定的应用程序。
架构师研究会
2020/07/20
8960
「企业架构」企业架构师,解决方案架构师和软件架构师有何不同
架构师角色的演变:从发号施令到与团队合作
作者 | Leigh Griffin, Chris Foley 译者 | 明知山 策划 | 丁晓昀 1 不断变化的世界   与传统的科学相比,软件可以算是一门非常年轻的科学。但即使是在它的婴儿期,它的关键组成部分之一——架构及其形成方式已经发生了重大变化。架构蓝图——花几个月时间完成可以解决所有问题的完整设计——一去不复返了,也没有了由一人负责管理所有东西的场景。之所以发生这种模式转变,一部分是因为行业创造出了更好的工具,还有一部分是因为用户行为发生了变化。他们的交互模式从事务性服务转变为消费驱动型服务,
深度学习与Python
2023/03/29
2970
架构师角色的演变:从发号施令到与团队合作
汽车软件架构学习笔记(一):九问软件架构
架构一般指的是软件系统宏观层面的设计部分,前面讲到架构是骨架,关注于整体,一般不会关注于细节。
Frank909
2022/01/11
9220
汽车软件架构学习笔记(一):九问软件架构
在敏捷世界中,软件架构师的角色是什么?
一些人对在敏捷环境中现代软件开发方法中软件架构师的适用性产生了质疑。技术领导者需要赋予架构师架构可观测性的能力。
云云众生s
2024/03/27
1450
软件架构师的12项修炼[1]——关系技能修炼(1)——文雅、沟通、协商
如果我准备去见一些了解你的人,例如你的邻居、同事、家人等,他们会怎样评价你呢? ❑ 他们会说你工作努力吗? ❑ 他们会说你正直诚实吗? ❑ 他们会说你举止文雅吗? ❑ 或者,他们会列出一长串软技能清单,认为你是个典型的技术人员,在技术领域没得说,但在软技能方面却不怎么样?
高广超
2018/12/12
7040
什么样的架构师才是真正的架构师?
  很多的创业公司,一人身兼数职的情形还是很常见的。至少,我是经历过的,一个人包办了所有的开发过程,连测试我都做了,绝对的一条龙,但是经常踩钢丝、骑独轮车总会有失足的时候,结果有一次,从我手里发出去的光盘母盘,含有病毒僵尸,以至于被迫收回已经推上市场的2万张光盘,从那之后,我的心脏就开始变得无比坚强,现在就是整个后台服务都瘫痪了,我也只是微微一笑。其实,一个人身兼架构师和程序员,甚至多种角色,没什么不妥,后面还会讲这个话题,这种现象不是中国特色,跟国外是完全接轨的。我曾经跟米国的一个工程师在msn中聊过类似的话题,发现他们的路子跟咱们没什么不同,在IT这个行业,我们跟世界的差距只有1天,他们刚弄出来的新东西,我们这里第2天保准见得到。
java架构师
2018/08/23
4470
软件架构师如何在日常工作中使用 AI
Avraham Poupko 在 OOP 大会 上发表了一场关于他在日常工作中如何使用 AI 的演讲。
深度学习与Python
2025/03/07
1430
软件架构师如何在日常工作中使用 AI
业务架构师、系统架构师、软件架构师:八卦三者的混淆与现象
相比于系统和软件的架构师,业务架构师更倾向于站在更高的战略层面,涉及商业分析、战略规划等。许多技术人员可能并未完全理解业务架构师的工作内容和重要性。
运维开发王义杰
2023/08/10
5270
业务架构师、系统架构师、软件架构师:八卦三者的混淆与现象
软件架构可能不是你想象的那个样子
软件架构在敏捷社区中存在争议。在许多人的经验中,架构只会导致毫无价值的会议和无关紧要的文件,“地图不是领土”的说法可以恰当地概括这一观点。然而,架构不佳的应用程序很快就会变得像被遗弃在路边的车辆一样,破损且无法修复。那么,在毫无意义的两极之间是否有一个有用的中间地带呢?
深度学习与Python
2022/06/11
3060
软件架构可能不是你想象的那个样子
从程序员到解决方案架构师的简单指南
架构师是一个总称,用于指定专注于为客户利益设计或改进软件解决方案的角色。但它有不同的责任,这取决于你为之工作的组织。
MavenTalker
2021/08/26
1K0
你离架构师还有多远?
  软件架构师在整个软件开发过程中都起着重要的作用,并随着开发进程的推进而其职责或关注点不断地变化,总结下面几点。   在需求阶段,软件架构师主要负责理解和管理非功能性系统需求,比如软件的可维护性、性能、复用性、可靠性、有效性和可测试性等等,此外,架构师还要经常审查客户及市场人员所提出的需求,确认开发团队所提出的设计;   在需求越来越明确后,架构师的关注点开始转移到组织开发团队成员和开发过程定义上;   在软件设计阶段,架构师负责对整个软件体系结构、关键构件、接口和开发政策的设计;   在编码阶段,架
欢醉
2018/04/19
8930
你离架构师还有多远?
硬核干货:一位菜鸟码农的架构师“封神”之路!
不久前,高级架构师 Justin Miller 在 GitHub 上创建项目,介绍自己关于如何成为更好的软件架构师的想法。该项目发布一天即获得 1.4K star,现在已有近 5K star 量。
江南一点雨
2020/02/19
4300
软件架构师的12项修炼[3]——个人技能修炼(1)——透明化
当你在协作的环境中与别人一道工作时,你的自然反应就是想尽可能表现自己好的一面。看起来你能独立解决自己的所有问题,并把任何可能的问题隐藏在背包里—— “这里没有任何问题”。和你打交道的其他人也是这样,也会把他们的问题隐藏起来。
高广超
2018/12/12
5020
做开发的都应知道的关于架构的五件事
回想起2010年的时候,我还曾写过一篇标题为“你是一名架构师吗?”的文章,里边阐述了软件开发者和软件架构师的区别与联系。 尽管都已经过去八年之久,并且整个行业在很多方面都发生了变化。 但看起来软件开发团队们依然对一些基础问题充满了争议,尤其和软件架构有联系的那些方面。 考虑到我们正在构建的软件系统的分布式特性以及团队构建的分布式特性,这些问题可以说比以前更重要。 本文就这个主题做一个简短的阐明,并揭穿一些神话,以下是每个软件开发人员应该了解的关于软件架构的五件事情。 关键要点 鉴于我们正在构建的软件系
ImportSource
2018/04/03
9820
软件架构的本质
在不同的人眼里“架构”一词的意思大相径庭,互联网上对架构的定义也多如牛毛。过去几年里我问过上百人同一个问题,在他们看来“架构”意味着什么。得到的答案概括如下(排名不分先后):
一个会写诗的程序员
2022/07/01
7970
软件架构的本质
推荐阅读
相关推荐
资深架构师十年总结:成为架构师,你必须具备这五点能力
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档