架构师是一个充满挑战的职业,需要关注很多维度和技术。只专注于单一领域的架构师并不是优秀的架构师。Pat Kua(原ThoughtWorks咨询师)是一位经验丰富的技术人员,他在本文中指出一个好的架构师需要是技术全面的架构师,并探讨了成为一个技术全面的架构师所必须具备的六个方面。
一名好的软件架构师需要明白,作为领导者并不一定要告诉开发人员做什么。相反,好的架构师就像一个导师,带领开发团队向同一个技术愿景前进。好的架构师会借助于讲故事、影响力、引导冲突、构建信任等领导技能,将他们的架构愿景变成现实。一个好的领导者,同时也是一个好的架构师。他/她会仔细听取每个参与者的意见,通过与团队的反馈互动调整他们的愿景。
一个架构师同时又是一个好的开发人员。通常,做出一个良好的架构选择需要权衡理想的架构状态与软件系统的当前状态。例如,如果一个问题更适合采用关系型数据库来解决,那么将文档数据库引入到系统中的做法是毫无道理的。一个架构师如果不考虑技术选型与问题域之间的匹配度,那么会很容易受到各种技术的诱惑——这也就是常见的“象牙塔式架构师”行为模式。
缓解这种情况的最佳方式是架构师多与开发人员待在一起,花一些时间在代码上。了解系统的构建方式及系统的约束将帮助架构师在当下环境做出正确的选择。
经验丰富的开发人员明白代码只是软件的一个方面。为了让代码可运行,他们还需要了解代码在生产环境中运行良好所需的其他重要质量属性。他们需要考虑部署过程、自动化测试、性能、安全和可支持性等方面。开发人员可能以临时的方式来实现这些质量属性,而架构师不仅需要专注于了解代码,还要了解并满足不同利益相关者(如支持、安全和运营人员)的需求。一个好的架构师需要专注于寻找那些能够满足不同利益相关者需求的解决方案,而不是选择针对某一个参与者的偏好或风格进行优化的工具或方法。
来源: http://www.infoq.com/cn/articles/the-well-rounded-architect