一个好的架构师需要是技术全面的架构师,并探讨了成为一个技术全面的架构师所必须具备的六个方面。
- 作为技术领导者
- 作为开发人员
- 聚焦系统
- 企业家思维
- 权衡策略思维与战术思维
- 良好的沟通
作为技术领导者
一名好的软件架构师需要明白,作为领导者并不一定要告诉开发人员做什么。相反,好的架构师就像一个导师,带领开发团队向同一个技术愿景前进。好的架构师会借助于讲故事、影响力、引导冲突、构建信任等领导技能,将他们的架构愿景变成现实。一个好的领导者,同时也是一个好的架构师。他/她会仔细听取每个参与者的意见,通过与团队的反馈互动调整他们的愿景。
作为开发人员
一个架构师同时又是一个好的开发人员。通常,做出一个良好的架构选择需要权衡理想的架构状态与软件系统的当前状态。例如,如果一个问题更适合采用关系型数据库来解决,那么将文档数据库引入到系统中的做法是毫无道理的。一个架构师如果不考虑技术选型与问题域之间的匹配度,那么会很容易受到各种技术的诱惑——这也就是常见的“象牙塔式架构师”行为模式。
缓解这种情况的最佳方式是架构师多与开发人员待在一起,花一些时间在代码上。了解系统的构建方式及系统的约束将帮助架构师在当下环境做出正确的选择。
聚焦系统
经验丰富的开发人员明白代码只是软件的一个方面。为了让代码可运行,他们还需要了解代码在生产环境中运行良好所需的其他重要质量属性。他们需要考虑部署过程、自动化测试、性能、安全和可支持性等方面。开发人员可能以临时的方式来实现这些质量属性,而架构师不仅需要专注于了解代码,还要了解并满足不同利益相关者(如支持、安全和运营人员)的需求。一个好的架构师需要专注于寻找那些能够满足不同利益相关者需求的解决方案,而不是选择针对某一个参与者的偏好或风格进行优化的工具或方法。
企业家思维
所有的技术选型都有相关的成本和收益,一个好的架构师需要从这两个角度考虑新的技术选型。成功的企业家愿意承担风险,不过也会寻求快速学习和快速失败的方法。架构师也可以用类似的方式做出技术选型,收集真实世界中有关短期和长期成本的信息,以及他们可能意识到的好处。
这方面一个很好的例子是,架构师避免承诺立即使用一个在阅读新文章时看到的工具或某一会议上听过的工具。相反,他们试图通过架构调研来了解工具在其环境中的相关性,以收集更多信息。他们对于工具的选择不是基于销售量,而是考虑他们需要什么以及这个工具所提供的价值。他们还会寻找这些工具背后的隐性成本,例如工具的支持情况(如文档化程度、社区使用情况),工具可能带来的约束或长期来看可能引入的额外风险。
权衡策略思维与战术思维
许多团队由一些独立的开发人员一起构建软件,而每个人都倾向于选择自己最舒适或最有经验的工具和技术。好的架构师持续关注可能有用的新技术、工具或方法,但不一定立即采用它们。技术采用往往需要长期的考量。架构师将在团队和组织层面寻求敏捷度(允许团队快速采取行动)和对齐(保持足够的一致性)之间的良好平衡。建立自己的技术雷达这样的练习是用战略思维探索技术的一个有用工具。
良好的沟通
架构师需要知道,有效沟通是建立信任和影响团队以外成员的关键技能。他们知道不同群体使用不同的词汇,而使用技术术语和描述与业务人员沟通将会变得比较困难。与其谈论模式、工具和编程概念,架构师需要使用听众熟悉的词汇与之交流,诸如风险回报、成本和收益等。这比单纯使用技术词汇进行沟通来得更好。架构师还需要认识到团队内部沟通与外部沟通同样重要,可以使用图表和小组讨论的方式来建立和完善技术愿景,并书面记录之(如架构决策日志或Wiki等),从而为将来留下可追溯的历史。
结论
最后Pat指出,做一个技术全面的架构师并不容易,因为有很多的方面需要我们关注,而每个方面都有很多作为开发人员经常不会专注去练习的技能。其实最重要的不一定是一个架构师的能力,而是他们在每个不同的领域都有足够的专业知识。仅仅掌握上述某个领域的架构师不如在六个方面都有良好专业知识的架构师来得更有价值。
http://www.techug.com/post/the-well-rounded-architect.html
相关推荐
一个优秀的架构师不仅要精通技术,还需要具备良好的沟通能力、管理能力和对业务的深刻理解。 架构师的核心职责是全面理解业务需求,基于模型和基础模式进行抽象和简化。他们需要提出恰当且可行的整体解决方案,同时...
然而,成为一个优秀的架构师并不是一件容易的事,它需要深厚的技术底蕴和实践经验。本文将探讨如何成为一名合格的架构师,以及为何架构师必须具备出色的编程能力。 首先,架构师的基础是编程。如同Fred George先生...
标题和描述均提到了“做人做事做架构师”,这一表述实际上是在强调成为一个成功的架构师所需的综合素质,不仅仅局限于技术层面,还包括个人特质、沟通能力、决策能力等非技术因素。接下来,我们将深入探讨这一主题,...
要想成为一个优秀的架构师,需要具备“个人特性”和“技术技能”两个方面的能力。“个人特性”包括人际关系的能力和业务能力,而“技术技能”则包括技术专业能力、人际关系能力和业务能力。 架构师的能力模型可以...
架构师,作为IT领域的一个关键角色,不仅关乎技术实力,更涉及个人特质和软技能的全面发展。成为一名优秀的架构师,意味着你需要在“个人特性”和“技术技能”两方面下足功夫。在这个能力模型中,架构师的能力被分为...
在IT行业中,软件架构师是一个至关重要的角色,他们负责规划、设计和指导软件系统的构建,确保系统的可扩展性、稳定性、可维护性和性能。本文将深入探讨“做一回软件架构师”这一主题,旨在帮助读者理解软件架构设计...
成为一名合格的架构师,需要掌握广泛的技术知识。这包括但不限于:编程语言(如Java、Python、C++等)、操作系统原理、数据库管理、网络协议、分布式系统、云计算、微服务、容器化技术等。同时,对新兴技术和趋势的...
架构师,这个在IT领域充满着技术智慧与策略智慧的词汇,不仅代表着一个职位,更是对个人专业能力及综合素质的极大认可。随着技术的不断进步和业务需求的日益复杂化,架构师的角色越来越凸显其重要性。《架构师》系列...
通过阅读《一线架构师实践指南》,读者不仅可以提升自己的技术知识,还能学习到如何在实际项目中应用这些知识,成长为一名优秀的架构师。无论你是初入行业的新人,还是寻求进阶的老手,这本书都值得你仔细研读。
总结来说,系统架构师是一个综合性很强的职位,它不仅要求从业者掌握编程语言和软件开发的全面知识,还要求有良好的组织协调能力、项目管理能力和团队建设能力。随着学习的深入,架构师还需要对信息安全、系统安全、...
《测试架构师修炼之道:从测试工程师到测试架构师1》这本书,就是为了指引那些期望在测试领域不断进步的工程师们,提供了一个清晰的成长蓝图。 ### 测试的核心——测试策略 测试工作并不仅仅是对业务的熟悉或者...
总的来说,《完整版—架构师之路(58沈剑)》是一本全方位指导软件架构师成长的著作,它将帮助读者提升技术视野,掌握关键技能,最终成为一名成功的架构师。通过阅读这本书,读者不仅可以深化对架构设计的理解,还能...
在IT行业中,软件架构师是至关重要的角色,他们负责设计和规划软件系统的整体结构,确保其可扩展性、可维护性和高效性...通过深入学习和实践,你可以不断提升自己在系统架构领域的专业水平,成为一名出色的软件架构师。
例如,JBoss是一个全面的Java企业级应用服务器,包含了Web服务器、EJB容器、数据库引擎以及AOP支持。Spring则是一个轻量级的IoC容器,提供了与其他框架(如Eclipse、Struts、Hibernate)集成的解决方案。另外,ASP...
《软考材料合集-系统架构师》是一个针对国家计算机技术与软件专业技术资格(水平)考试,特别是系统架构师级别的备考资源压缩包。系统架构师是IT领域中的高级职位,负责设计、规划和管理企业的信息技术架构,以确保...
《软件架构师:构建高效系统的关键》 在信息化社会中,软件架构师的角色日益凸显,他们不仅是...这些资料将帮助学习者全面了解软件架构师的工作内容,提升他们的专业素养,为成为一名合格的软件架构师打下坚实的基础。
在本课程“软件架构设计系列课程(3):如何成为一个.NET企业架构师”中,我们将深入探讨成为一位专业.NET企业架构师所需的关键技能和知识体系。这个资源包包含丰富的学习材料,包括PPT演示文稿、视频教程、文档以及...
最后,成为一名成功的.NET企业架构师不仅需要扎实的技术基础,还需要不断学习新技术和最佳实践,保持对行业动态的敏锐洞察,以及优秀的领导和沟通能力。通过深入学习和实践,你可以逐步建立起自己的架构设计能力,...
- **定义**:软件架构师通常被视为一个组织中的技术领袖,他们负责制定软件产品的技术路线和技术框架,确保产品的可扩展性和高效性。 - **角色**:作为公司的“金领”,软件架构师不仅拥有较高的收入,还需要具备...
通过本次云计算架构师培训,学员不仅能够掌握云计算的基本理论,还能够了解到云计算的技术发展史,从而对云计算有一个全面的认识。培训的内容涵盖了云计算的定义、虚拟化技术特性、云计算架构设计以及云计算的未来...