What Does a Software Architect Do?

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

你的项目中有软件架构师吗?你需要一个吗?嗯,大多数敏捷团队并没有明确定义这样一个角色,并且以“民主”的方式工作。每个重要的技术决策都要与整个团队讨论,最得票数最多的解决方案获胜。当这样的团队最终决定给某个人的T恤上贴上“软件架构师”的标志时,最有声望的程序员就会得到它。

然而,这个标志很少改变他的责任。毕竟,团队保持不变,享受着一起进行技术讨论,让每个人都参与其中。最后,软件架构师更像是一种地位,而不是具有明确定义责任的角色。它是其他团队成员对其中最老、最有权威性的人表示的尊重的标志。对吧?

显然,建筑师通常是那些拥有最多知识、技能、经验和权威的人。当然,建筑师通常比其他人更懂得更多,并且在需要时能够以外交手段和教育方式传达自己的知识。建筑师通常是团队中最聪明的人之一。

然而,这并不是使他/她成为建筑师的原因。

这也不是团队所需要的。我对软件架构师的定义是这样的:

架构师是为质量负责的人。

你可以用“责任”或“承担责任”来替换“负责”。尽管如此,我更喜欢使用“责备”,因为它更能强调开发中产品的每一个质量问题都是架构师个人的过失。当然,与责备一起,当质量好时,他也会从满意的客户那里获得所有的赞誉。

这就是团队所需要的——有人亲自负责正在开发的软件的质量。

这个人如何将这个责任委托给其他人,这是他的工作。他将如何使用自己的知识和技能,或者质量控制工具,或者单元测试框架,或者权威,或者指导,或者体罚——这都是他的事情。项目经理将质量控制委托给了软件架构师,而如何进一步委托则取决于软件架构师。

对于每个项目来说,软件架构师的角色都至关重要,即使只有两个程序员在同一张桌子前工作。其中一个人必须成为架构师。

理想的架构师具备以上提到的所有优点。他倾听每个人的意见并予以考虑。他是一位有耐心的良好教练和导师。他是一位有效的沟通者和谈判者。他是一位外交家。他是技术领域的专家。

但是,即使他没有所有这些优点,他的决定始终是最终的。

而这正是项目经理的工作,确保架构师所做的每一个技术决策不受任何人的怀疑。这就是委派的全部意义——责任始终应伴随权力而来。

作为项目经理,您应该定期评估架构师的成果。请记住,您的团队正在开发的产品的质量是他的个人(!)责任。您看到的任何问题都是他的问题。不要害怕责备他和惩罚他。但是,请始终记住,为了使您的惩罚产生成效,您应该给予架构师完全的权力。让我再重申一遍:他的决定应该是最终的。

如果您作为项目经理对产品的质量不满意,而架构师没有改善情况,请替换他。降级他为程序员,并将其中一位程序员晋升为架构师。但是,请始终记住团队中只能有一个架构师,他的决定是最终的。

这是建立完美产品的唯一方法。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 10:40

sixnines availability badge   GitHub stars