我们见过许多与软件架构师相关的工作岗位,比如解决方案架构师,系统架构师, 云计算架构师,应用软件架构师,信息架构师,企业架构师等等。
不管规范的岗位是什么, 你应当在你的组织中拥有下面的人:
1. 制定并且执行经久耐用的架构计划和方针。
2. 持续分析和升级软件架构,及时修正技术债。
3. 辅导开发人员。
4. 监管什么是业务的要点, 同时制定积极的策略。
5. 扩大,加深和更新知识储备, 因为行业发展迅速。
这些是我们认为的软件架构师的职能, 当然你可以给他们赋予任何不同的岗位名称。 在 2021 年的时候, 我对于如何成为了不起的软件架构师极度关注。 在这篇文章中, 我会梳理一些我学到的知识要点。让我们迎接 2022 吧!
你首先是个开发人员,请确保这一点
你见过没干过律师的法官吗?架构师本质上都是优秀并富有经验的开发人员。 他们对于许多其他开发人员碰到的日常问题都非常熟悉。
架构师不能对开发人员认为重要的事情没有头绪。 你必须用开发者的语言对话。技术开销的最大因素就是可维护性。你在设计的时候必须记住自己是名开发者。
忘却自己本职工作的架构师会失去开发者的尊重。 他们很快变成浮夸的项目经理, 然而没人需要一个多余的经理。
为了避免变成一个架构葛优躺, 你必须按照下面的办法分配时间:
1. 和开发人员一起尝试新的和不同的技术。
2. 吸取软件开发相关的知识。 达成这一点的渠道可以是学习课程, YouTube 视频, 会议, 网络讲座,等等。
3. 作为业余爱好参与一些研发项目。
保持谦逊的态度
从另一个角度来说, 你可能认为你是会使用键盘的最聪明的开发者。 你也有展示自我的能力。好样的,你赢的了自我欣赏奥赛的金牌! 然后呢?
开发者和架构师有一些微妙的区别。 架构师必须具备的最基本技能之一是沟通。 针对一个问题, 你可能有一个优雅而聪明的解决方案, 你能让人愉悦的和有效的给利益相关者和开发者沟通吗? 你的团队鄙视你, 妒忌你还是崇拜你? 你团队的新成员,他们跟得上节奏吗?你应该始终不断的问你自己这些问题。
我能提供的一些建议如下:
1. 在主要的架构决策中为扩展功能留下足够的空间。 尝试着让开发者对你的决策达成共识。
2. 给开发者赋能,让他们自己做决定,自己犯错。在风险和学习机会之间保持平衡。
3. 总有一天有的开发者会在某一方面超越你。拥抱这一点。帮助他们成长。
4. 有激情的讲述你和他们的工作内容。
5. 负更多的责任,基于更多的认可。
如果你设计了产品,你就应该有能力构建它
架构师应当有书写足够数量的文档的能力。 过少的文档说明会导致只有你自己能理解系统。 过多的文档说明会让系统变更成本居高不下。如何找到平衡点取决于项目和团队。但是, 作为架构师,你应当知道这一点。
华丽的画图工具和技术很容易让人迷失。 但是归根到底, 除非你有展示的需要,否则这些都是无关紧要的。我喜欢简洁的文档,就像那些 C4 模型提倡的内容一样。充满朝气和能力的工程师的公司似乎也认可这一点。
你应该具备的一项重要原则是:如果你设计了系统,你必须有能力构建它。或者至少有能力构建系统的重要组成部分。设计一个你自己无法实现的系统是愚蠢的。做为架构师, 你的工作就是理解你制定的技术决策和方针的意义。尽管技术知识会让你走的很远, 但是如果有人能够完成实际任务对谁也没坏处。 如果你不知道你是否有能力完成任务: 第一步, 做一个原型!
撸起袖子动手做
研究表明架构师应该撸起袖子自己写代码。 许多专家也同意这一点。当开发软件系统的时候,我的建议是架构师应当参与其中。 这可能意味着:
1. 当开发新项目的时候,用尽可能简单的框架启动项目。
2. 为你的项目开发架构级别的单元测试或者其他测试功能。
3. 参与同事评审。
4. 重构代码以便实现更好的设计。
5. 完成一些新功能。
这些不仅能够增强你的个人能力, 也能帮助构建和开发者之间更加和谐的关系。 除了靠威望领导之外,你也应该成为以身作则的领导。
结论
在这篇文章中, 我梳理了我在去年学会的一些软件架构师的建议。 至关重要的是: 提升你的技术能力并且让自己保持是一个低调和乐于助人的领导。 希望我的建议对你有用。
译者介绍
汪昊,51CTO社区编辑,互联网老兵。在百度,新浪,网易等公司有超过 10 年的技术研发和管理经验。在国际学术会议发表论文 18 篇,3 次获得最佳论文奖/最佳论文报告奖。本科和硕士毕业于美国犹他大学。对外经贸大学在职 MBA。
原文标题:Don’t Lose Touch as a Software Architect Going Into 2022,作者:Ryan Susana