当前位置: 首页 > 科技观察

如何成为技术全面的建筑师

时间:2023-03-17 22:29:47 科技观察

建筑师是一个具有挑战性的职业,需要关注很多维度和技术。只专注于单一领域的架构师不是好架构师。PatKua(前ThoughtWorks顾问)是一位经验丰富的技术人员。他指出,一个好的架构师需要是一个技术全面的架构师。他还在文中讨论了成为一名技术全面的架构师必须具备的条件。六个品质。作为技术负责人,作为开发人员,以系统为中心,有创业思维,有战略思维和战术思维,善于沟通。作为技术领导者,优秀的软件架构师需要明白,作为领导者并不一定要告诉开发人员做什么。相反,一个好的架构师就像一个导师,可以带领开发团队朝着同一个技术愿景前进。优秀的建筑师借助讲故事、影响力、解决冲突和建立信任等领导技能,将他们的建筑愿景变为现实。一个好的黑客也是一个好的架构师。他/她仔细倾听每个参与者的意见,通过与团队的反馈互动来微调他们的愿景。成为一名开发人员架构师也是一名优秀的开发人员。通常,做出好的架构选择涉及权衡架构的理想状态与软件系统的当前状态。例如,如果关系数据库更好地解决问题,那么在系统中引入文档数据库就没有意义。如果一个架构师不考虑技术选型与问题领域的匹配,他很容易被各种技术所诱惑——这就是常见的“象牙塔架构师”行为模式。缓解这种情况最好的办法就是让架构师多花点时间和开发人员在一起,花一些时间在代码上。了解系统是如何构建的以及系统的约束将有助于架构师在当前环境中做出正确的选择。专注于系统有经验的开发人员明白代码只是软件的一部分。为了让代码运行,他们还需要了解代码在生产中良好执行所需的其他重要质量属性。他们需要考虑部署过程、自动化测试、性能、安全性和可支持性等方面。开发人员可能会以临时方式实施这些质量属性,而架构师不仅需要关注理解代码,还需要关注理解和满足不同利益相关者(如支持、安全和操作人员)的需求。一个好的架构师需要专注于寻找满足不同利益相关者需求的解决方案,而不是选择针对某个参与者的偏好或风格进行优化的工具或方法。所有技术选择都有相关的成本和收益。一个好的架构师需要从这两个角度来考虑新技术的选择。成功的企业家愿意承担风险,但也寻求快速学习和快速失败的方法。架构师可以以类似的方式做出技术选择,收集有关短期和长期成本的真实信息,以及他们可能实现的收益。一个很好的例子是,当架构师避免立即使用他们在阅读新文章或在会议上听说的工具时。相反,他们尝试通过架构研究收集更多信息,以了解该工具在其环境中的相关性。他们选择工具不是基于销量,而是基于他们的需求和工具提供的价值。他们还寻找这些工具背后的隐藏成本,例如工具的支持程度(例如,文档程度、社区使用情况)、工具可能施加的限制,或者从长远来看可能引入的额外风险。权衡战略思维与战术思维许多团队与一些独立的开发人员一起构建软件,每个人都倾向于选择他或她最擅长或最有经验的工具和技术。优秀的架构师会密切关注可能有用但不一定立即采用的新技术、工具或方法。技术采用通常需要长期考虑。架构师将在团队和组织层面寻求敏捷性(允许团队快速行动)和一致性(保持足够的一致性)之间的良好平衡。构建自己的技术雷达等练习是用战略思维探索技术的有用工具。一个好的沟通架构师需要知道有效的沟通是建立信任和影响团队外部成员的关键技能。他们知道不同的群体使用不同的词汇,使用技术术语和描述与业务人员交流可能很困难。架构师不需要谈论模式、工具和编程概念,而是需要使用听众熟悉的词汇与他们交流,例如风险回报、成本和收益。这比简单地用技术术语进行交流要好。架构师还需要意识到团队的内部沟通与外部沟通同样重要。图表和小组讨论可用于建立和完善技术愿景,并通过书面记录(如架构决策日志或Wiki等)追溯历史。结语作为一个技术全面的架构师并不容易,因为有很多方面需要我们注意,每个方面都有很多我们作为开发人员往往没有关注和实践的技能。其实,最重要的不一定是架构师的能力,而是在各个不同的领域都有足够的专业知识。仅掌握上述领域之一的架构师不如在所有六个领域都具有良好专业知识的架构师有价值。【本文为专栏作者“ThoughtWorks”原创稿件,微信公众号:Thinkworker,转载请联系原作者】点此查看该作者更多好文