软件架构师的技能和获得多样化经验的方法
对于软件架构师这个角色来说,对每一件事情都有经验至关重要。它让你知道什么时候该充当公司的桥梁,当放大或缩小架构图时该关注什么
领域知识
对某些业务领域的深入了解对于软件架构师的成功是至关重要的,因为您不仅要知道它是什么,还要知道它将是什么,或者可能是什么,以及为什么。客户经常找到软件架构师,要求向他们展示行业领导者正在做什么以及如何做。领域知识还可以帮助软件架构师说一种商业通用的语言,这反过来帮助他们成为连接管理和开发团队桥梁。
人际交往能力
软件架构师也是一个伟大的沟通者。许多优秀的高级软件工程师发现很难晋升为软件架构师,因为他们没有展示自己的技能,如倾听、口头和书面沟通、推进、冲突管理、演示、谈判和说服。
这份工作所需技能的具体类型取决于你工作的特定公司环境。
在我的公司,我有机会在安全的环境中练习这些技能,比如我们称之为“祖尔克日”和“祖尔克营”的环境。我的雇主也在这些方面为我提供了正式的培训。最后,公司的建设性反馈文化支撑着许多人成长了起来。
专业技术能力
单独任何一张大学文凭都无法证明你是一个软件架构师。你需要学习软件工程的所有领域,包括软件设计、编码、质量保证、DevOps、性能分析、软件安全、项目管理、软件支持等等。这些技能对于创建满足软件架构“能力”的解决方案至关重要。当与开发团队中的专家交流时,软件架构师能够更好地理解相关信息,因为他们已经具备了这些领域的实践经验。
作为一名开发团队成员,我可以胜任各个领域的日常工作,包括后端、前端和 DevOps。这让我能够以第一人称视角看到幕后发生了什么,并让我能够与团队保持较近的距离。
业务和开发过程
业务过程描述了一个组织的业务操作,并定义了业务需求,而这些业务需求通常没有清晰地表述为软件项目需求。软件架构师应该知道,或者至少应该知道向谁询问业务流程的相关信息。
一个向行业组织交付解决方案的软件架构师,需要干上几年时间才能成为领域专家,这种情况并不少见。
理解技术过程、软件开发生命周期和最佳实践的重要性与了解业务过程一样重要。这是因为软件架构师通常在确保业务和开发过程之间的一致性方面扮演着关键的角色,如此,才能做到迭代交付,才能有现实的项目计划。
领导力
现在,您应该非常好奇软件架构师如何掌握所有这些知识和技能了吧。好吧,我告诉你,他们并没有掌握!一个人是不可能掌握所有这些的。伟大的产品需要一个有能力的专家团队来开发。成功的软件架构师通常是有效的领导者,他们的团队中拥有伟大的成员,并使成员们成长得更加伟大,而不仅仅是个体。
软件架构师通常被视为团队的代表。他们在领导、管理业务和技术方面投入了大量的精力。虽然人们常常认为领导者只在站在前面指挥,但有时在一个项目中需要五种领导风格。我们公司提供的领导力培训就是这么教的。