为什么有些架构师总能把复杂系统梳理得井井有条?答案可能不在技术本身。在一次关于软件架构需求分析的对话中,Michael Stiefel与资深工程领导者Sonya Natanzon深入探讨了这个问题。Natanzon把自已称为“意外的架构师”,她在职业生涯中逐渐发现,真正关键的能力不是掌握多少种技术栈,而是理解业务如何运转。

这听起来像是老生常谈,但Natanzon给出了具体的操作路径。她说,理解业务需求比具体用什么技术实现重要得多。架构师和开发者必须搞清楚业务想要达成的结果,以及公司究竟如何运作。这意味着,在设计系统之前,先要成为一个“懂业务的人”。

打开网易新闻 查看精彩图片

那么,如何真正搞懂业务需求?Natanzon指出,有效的需求分析应该聚焦于描述需要解决的问题,而不是直接跳到解决方案。好的问题描述会清晰地勾勒出理想结果和糟糕后果分别是什么。她特别提醒,要警惕那些以“我们需要”开头的句子,它们往往是伪装过的方案陈述。试着把“我们需要一个实时数据面板”改写成“客服团队目前因数据延迟,每天平均损失42分钟响应时间”,需求就变成了一个可衡量、有明确痛点的场景。

很多架构师在拿到需求后,面对海量的技术选型感到无从下手。对此,Natanzon提供了一个反直觉的思路:拥抱限制。她解释说,约束条件实际上是在帮我们做减法,它把大量可选项大幅缩小,让系统架构设计变得容易得多。比如,假设公司强制要求使用特定的云服务商,或者项目预算有严格上限,这些看似掣肘的规则,反而能让架构师快速聚焦在可行的方案上。

在具体工作方法上,Natanzon分享了一个实用的技巧。她认为,很多时候不必正式引入一整套方法论,比如领域驱动设计或事件风暴。更好的做法是,悄悄使用这些方法中的具体技术手段,但不贴上正式的标签。这样做能减少团队对新术语和新流程的抵触心理,反而让这些工具的效果发挥得更好。

谈到未来,Natanzon对AI工具的影响给出了务实的判断。她认为,AI可能会承担起常规的编码工作,但开发者的核心能力不会消失。未来仍然需要人来解释代码、审查代码,并且学会如何在系统出故障时进行修复。这些能力直接关联到对业务和系统全局的理解,而这恰恰是架构师需要持续修炼的内功。