谈谈我对画技术图的思考(一):我花了很长时间才明白,老板要的不是架构图……
谈谈我对画技术图的思考(一):我花了很长时间才明白,老板要的不是架构图……

经常想起这几年的经历,老板经常对着技术方案的文档评论:这个地方补一张大而全让人一眼看懂信息量大的技术架构图。当我画了数个深夜,绘制了一张自以为完整的系统架构图后,老板皱着眉头看了半天,说这个图没有主题、还要改改。有时还会说,这个图没说清楚解决了什么业务问题,或者没说清楚主线逻辑是什么,又或是数据到底怎么跑通的。

这不仅仅发生在我自己或者身边,而是在很多研发团队里,经常会出现这样尴尬的局面。我曾认为对方忽视技术,不注重工程的严肃性,对计算机学科理论的严谨度不高。而身边画图的高手,能把一张图画得天花乱坠、让人直呼牛掰。在面对复杂的项目汇报、冗长的会议和文档、盘根错节的技术细节,一图胜千言,让老板啧啧称赞。

直到现在,我才彻底明白:技术人员习惯绘制的、偏“学院派”的「系统架构图」,与决策者或跨部门同事真正需要的「信息结构图」,所面对并试图解决的是两类截然不同的认知问题。在观摩与学习了不少优秀图例之后,我一直在追问:到底什么样的「架构图」,才是老板真正想要的?结合最近的阅读、和 AI 对话与思考,我逐渐形成了几个结论。

一、选图很关键

这里我给「架构图」加了引号,因为本质上这些图往往并非传统意义上的系统架构图,其中相当一部分更接近信息图。技术专家和架构师在向上汇报、技术深度评审、跨团队协作或技术治理等不同场景下,也会有针对性地选用业务全景图、数据流图、部署拓扑图、技术栈全景图、服务蓝图等图形表达方式,把关键点澄清。

写技术文档时,选对一张图、画好一张图,往往比写一大段文字更有效——这对一线研发来说,是一项非常关键的基本功。但日常工作中,我经常观察到,甚至我自己也常常会出现这几个问题:

  • 混淆了几种不同性质的图,把各种图杂糅在一起,追求一个大而全(被吐槽不规范);
  • 为了像架构图而进行过度设计,比如没有职责隔离的伪分层,过度追求复杂而刻意增加框图连线(被吐槽不真实);
  • 选的图不对,在和重业务的汇报场景选用重业务细节的图(被吐槽没有主线逻辑);
  • 一张图走天下,给老板看细节满满的交互图(被吐槽没有重点);

等等,不胜枚举。很多时候,我们的问题不是怎么绘制,而是不知道应该选择哪种图来绘制。而方向一旦选错,或者根本就没有选方向的话,那最终的结果当然也不让人满意了。对于一线研发而言,清晰区分这几类“图”的呈现形式,区分出不同的场景下需要绘制哪类图,也算是提升技术影响力与沟通效率的必备工程素养。

二、如何选图

选图的本质,是先明确这张图的目的是什么、要传达给读者什么信息。基于这一点,你可以从研发所处阶段来选定,也可以从受众角色来选择。

1、研发阶段选图

研发阶段 主要目的/关注点 推荐图类型
项目立项 / 需求分析 对齐业务逻辑与端到端体验 业务架构图 / 服务蓝图
技术选型与规划 不重复造轮子、选型合规 系统全景图 / 技术栈雷达
架构设计与评审 明确模块抽象、模块关系与数据加工链条 系统架构图 / C4 架构图 / 数据流图
上线部署与压测 明确 VPC 网段、网络隔离、高可用与容灾 部署网络拓扑图
成果汇报 / 技术宣讲 展示系统交付的技术价值 业务/能力信息图

2、受众角色

受众角色 他们关心什么 推荐图类型
决策层(老板 / 业务 VP / 跨部门负责人) 系统提供什么能力;输入/输出与业务价值 业务/能力信息图 或 业务架构图
技术高管 / 首席架构师(CTO / 架构委员会) 全局有哪些系统;是否重复造轮子;选型是否标准化 系统全景图 或 技术栈全景图
一线研发 / 代码实现者 微服务边界;组件依赖;API 协议与接口时序等 C4 架构图(L2/L3)或 服务蓝图
SRE / 运维 / 安全审计 VPC 边界;网络 CIDR;高可用节点与故障漂移路径 部署与网络拓扑图
数据团队 / DBA 数据加工链条与血缘;数据安全级别 数据流/血缘图

3、最简原则

如果只选一张图,往往是信息图、系统全景图、系统架构图进行三选一。最简易的选择原则如下:

场景 你要说清楚什么 选哪类图
向上汇报 / 跨部门对齐 用业务语言讲清「输入是什么 → 经过什么能力加工 → 输出什么价值」 信息图
技术规划 / 跨团队协作 / 新人 Onboarding 系统在公司/业务线的位置;上下游依赖关系 系统全景图
技术评审 / 编码实现 / 运维排障 Context / Container / Component 分层;用技术语言指导实现与部署 系统架构图(C4 模型)

可以看到,老板需要的是信息图或者系统全景图,而非传统意义上的系统架构图。


下一篇,我想和你谈谈怎么画技术图。

本文为原创内容,转载请联系作者并注明来源