软件架构师的技术栈选择
一份有文档记录、有理有据的语言、框架、数据库和托管选择,连同取舍理由一并写下,让未来加入的人明白”为什么”,而不只是”是什么”。
大多数迪拜企业在产品已经成长到非正式决策不再管用的阶段,才开始迪拜聘请软件架构师。早期,一个小团队可以在一次对话中就数据库、框架和目录结构达成一致。一旦多名开发人员开始在同一个代码库上交付功能,这种做法就不再安全:没有留下文字依据的选择会在六个月后被推翻,也没有人能说清楚某个服务为什么存在,或者系统的两个部分为什么对数据的形态有不同的理解。
软件架构师就是有意识地掌控这些决策的人。他们确定技术栈,决定系统如何拆分为服务或模块,写下非功能性目标,例如系统应能承受多大负载、故障后应多快恢复,并维护一份开发人员真正能遵循的技术路线图。无论您是以专职、固定范围合作还是一次简短审查的方式在迪拜聘请软件架构师,价值都是一样的:更少互相矛盾的决策,以及一个即便有更多人参与也依然保持可维护性的代码库。
这与解决方案架构师不同,后者通常跨越多个现有系统解决一个业务问题;也与技术架构师不同,后者更贴近交付团队,把架构转化为日常的实施标准。这两个角色在本站都有各自的页面,值得在撰写职位描述之前先弄清楚它们的区别。
软件架构师负责什么
在迪拜聘请软件架构师时应期待的具体产出,而不是一种模糊的”负责把关”的印象。
一份有文档记录、有理有据的语言、框架、数据库和托管选择,连同取舍理由一并写下,让未来加入的人明白”为什么”,而不只是”是什么”。
产品如何拆分为服务或模块,边界划在哪里,以及这些部分之间被允许如何通信。
针对负载、响应时间、正常运行时间和恢复速度写下具体数字,让性能和可靠性成为设计输入,而不是事后补充。
一份按顺序排列、用于逐步化解系统风险的计划,不同于功能路线图,工程负责人和业务方都能读懂。
简短、注明日期的文档,记录一项决策、曾考虑过的替代方案,以及最终选择的原因,让推理逻辑不会随人员流动而消失。
在代码审查和设计讨论中保持足够的参与度,让纸面上的架构与实际搭建的内容保持一致。
重要技能
在迪拜聘请软件架构师时,要关注的是权衡取舍之下的判断力,而不是简历上列出的框架清单。
| 技能或领域 | 好的表现是什么样 | 为何重要 |
|---|---|---|
| 取舍推理能力 | 能从”放弃了什么”而不只是”获得了什么”的角度解释一项过去的决策 | 每一项架构选择都有代价;一位说不清代价的候选人,其实并没有真正想清楚 |
| 对当前平台的了解 | 熟悉AWS Well-Architected 框架等公认框架,或您所用云平台的对应版本 | 这些框架明确了良好设计必须平衡的支柱,例如可靠性和成本 |
| 书面沟通能力 | 产出简短、注明日期的决策记录,而不只是图表和口头解释 | 没有文档记录的决策,正是企业最初决定聘请软件架构师所要解决的问题 |
| 实操可信度 | 依然在读代码、写代码,能讲清楚最近审查过的一个真实拉取请求 | 脱离代码库的架构师容易为已经不存在的问题做设计 |
| 与利益相关方沟通 | 能向非技术背景的创始人解释技术限制,而不使用行话 | 架构决策常常需要业务方的认可,尤其是当决策为了降低未来风险而放慢某个功能的交付速度时 |
合作方式
专职软件架构师适合拥有活跃路线图、需要持续技术方向指导的产品,按月与您现有的开发人员协同工作。基于项目的合作适合边界明确的工作,例如在开发团队动手搭建之前,先为一次重构或新平台设计架构。招聘支持适合希望把软件架构师直接招入自己名下的企业,由我们负责寻源、筛选和组织技术评估。咨询服务适合已经有架构师、或有一位资深开发人员在实际承担这个角色、只是希望在做出代价高昂的决策前获得一次独立审查的企业。大多数在迪拜聘请软件架构师的企业,都是从专职或项目合作开始的。
评估候选人
用来区分真实经验和漂亮辞藻的检查方法。
不能只有图表。请他们讲讲被否决的替代方案以及原因,这能看出这项决策是经过真正推理的,还是第一个可行的想法就被采纳了。
描述您产品中的一个真实限制条件,观察他们如何拆解问题,而不是关注他们是否得出与您相同的答案。
真正有经验的候选人能说出一个没有经受住时间考验的选择,并讲清楚从中学到了什么,而不是展示一份看似完美无缺的履历。
请他们展示或讨论最近编写或审查过的代码。多年脱离代码库的人,常常会为已经不再存在的问题做设计。
请一位创始人或产品负责人参与部分对话。一位无法把取舍讲清楚的架构师,日后很难获得认可。
认证
软件架构师这个头衔本身没有统一的通用认证,因此在迪拜聘请软件架构师时,认证问题应与一个平台特定的职位区别对待。
因为”软件架构师”并不是某一家供应商拥有的、经认证的知识体系,不妨改为询问他们在您产品实际运行平台上的深度,例如某云服务商自己的架构认证,而不是仅凭职位头衔就下判断。
如果产品高度依赖云服务,像 AWS 自行颁发、可通过候选人的 AWS 认证账户核实的 AWS Certified Solutions Architect 这类证书,可以作为上述设计和代码检查之外的一个合理补充信号,而不是替代它们。
阿联酋相关考虑
在迪拜聘请软件架构师负责一个面向阿联酋用户的产品之前,值得提出的两个方面。
阿联酋联邦个人数据保护法《2021 年第 45 号联邦法律令》规定了个人数据必须如何被保护和处理,因此处理客户或员工数据的系统,应从一开始就把这一点当作设计输入,而不是事后补加的合规步骤。
如果产品需要在英语之外提供阿拉伯语界面,从右到左的布局和阿拉伯语文本处理,从一开始就设计进去要比日后补做容易得多,因此应在第一个界面动工之前,而不是之后,就与软件架构师提出这一点。
直接解答
软件架构师端到端地掌控一个产品或平台的技术形态:技术栈、内部结构和路线图。解决方案架构师则跨越多个现有系统开展工作,这些系统往往来自不同供应商,目的是设计如何解决一个具体的业务问题。很多人在职业生涯的不同阶段会同时拥有这两个头衔。
不一定从第一天就需要。小团队通常可以一起商量决定架构。在迪拜聘请软件架构师的时机,通常是代码库、团队或客户规模已经增长到没有文档记录的决策开始造成返工,或者是在一次必须经得起时间考验的重构之前。
在大多数团队中,是的,至少偶尔需要。一位多年不写代码的架构师,很容易脱离对自己决策实际效果的感知。我们期望一位优秀的候选人依然能读代码、写代码,即便这不是他们的主要日常工作。
软件架构师专注于产品本身的技术设计。CTO 承担更广泛的职责,包括工程团队、预算和整个企业的技术战略。成长中的企业往往两者都需要,在早期阶段有时由同一个人兼任。
如果这些系统共享共同的技术基础,而这位架构师确实具备足够广度,通常是可以的。如果移动应用、后端和任何数据平台建立在差异很大的技术上,应直接询问他们在每个领域的实际经验深度,而不是假设一个人能同时把三者都做好。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。