如何画一个系统的设计图

为什么写本文

评审中发现很多研发都不会画设计图,有的画的非常复杂但没有要点,听的人不知道要表达的是什么;有的图画的非常简单,也没有要点。如果设计图只有在讲解的时候通过别人长时间的询问才能明白,那么设计图还有什么价值?大部分研发内心想提升设计能力,但有一些错误的观念可能会阻碍设计的成长。比如"参考一个好的设计模版,我就能做出好设计了这种想法",我个人认为是非常错误的观点。本文不会谈及具体的图形画法比如流程图和UML图画法,更多的是探讨如何提升设计能力的方法论。

正确的自我认知

当你表达不出来的时候,真实的情况并不是表达不好,而是你根本不懂

不要总为自己找借口,我很牛,只是表达不好,表达不出来。别人表达好,就是只会包装PPT,只会搞虚的。这些想法都是错误的,需求文档是系统逻辑的一种表现形式,代码是系统逻辑的另一种表现形式,设计是代码的又一种表现形式而已。代码烂一些,也可以跑起来,所以烂代码可以躲起来自嗨,但设计烂一些,一目了然,无处可躲,别人根本听不懂。设计的好坏比代码的好坏更直观,更容易看出来而已。你觉得有可能某人具备非常优秀的编码能力,却无能力无法做出优秀的设计吗?

何为设计

设计是面向问题的,没有问题为啥要设计?如果你的设计没有让人听明白问题的解决思路,这个设计就没有什么价值。

比如我们要设计一个建筑的承重结构,设计图要体现你的承重的几个关键的主体结构(承重梁,承重柱子,承重墙等),而不是把整个建筑的细节(装什么品牌的灯具,是否帖墙纸)都画出来。设计不是越细越好,也不是越粗越好,根本没有粗细之疑问,当你确定了要解决的问题,哪些该画,哪些不该画,我认为是确定的,问题定了有些东西你不画根本就说不明白,而有些你画了对你的目的没有啥关系,直接删除就好。

设计的目的,第一:非常直观的表现出针对问题的解决方案,方便发现设计中的问题。第二:通过设计可以非常方便的把系统的解决方案传递给其他人。第二点其实是第一点的副产品,但确实一个很容易发现坏设计味道的方法,当你的设计别人总听不懂的时候,大概率就是坏设计,后面提升的第一步会再展开说。

有的人很聪明,不画设计图,直接写代码,也跑的不错。真的没有设计图吗?只不过在这个人脑子里而已,在脑子里去画出来设计图和真实的画出来,大家觉得那个更有利于对于设计查漏补缺,以及对设计优化呢?答案非常明了吧。如果这个聪明人不画设计图在脑子里做出来的系统质量是70分,那么他如果画出来设计图,系统的质量分一定会高于70分。更重要的是,今天这个人能想清楚,一年后呢?这个人离职了呢?这就是设计的价值。

如何提升自己的设计能力

分两步,第一步要把自己解决方案思路用设计图展现出来;第二步提升自己的真实认知高度。

1。表达出来自己的设计

首先要做的并不是提升,而是有多少表现出多少。如果你有60分,那就让大家听明白60分,哪怕只有10分,能表达出来10分,第一步也算是完成了。

怎么证明表达出来了呢?在相同信息量输入的情况下,把这些信息传递给其他人所用的时间越短,表达越好。如果能用5分钟说清楚,你说了一个小时,中间都是听者通过提问来了解清楚,而不是通过你的讲解设计了解的,那么你的设计图就是有问题的,设计所携带的设计信息就非常少,甚至是负数。 如果你的设计不能让一个对系统不了解的人听懂,那么它也不能让一个对系统了解的人听懂。当别人听不懂的时候,说明信息的传递机制出了问题,和听众的系统了解程度真的不大。(前提是听者是具备基础逻辑能力的智能物种,不需要具备其他专业知识)

要用已知概念解释未知概念

讲解中出现太过的未知概念,听者是无法理解的,未知+未知=未知。针对不同的听众,我们需要的仅仅是需要调整概念的解释节凑和顺序,出现未知概念之前,把它用已知概念进行定义。设计自身是不会调整的,只是针对不同人群有所变换表述就可以。有些像六边形架构,设计的本源位于中心,外层可以替换为不同的实现。

2。提升自己的设计

第一步做到虽然相对容易,但我看到研发的设计大部分都倒在了第一步,第一步做到后我们就可以进行第二步提升了,第二步相对就难多了,是提升自己的真实能力。第一步做到了有多少能力,展现多少,所以设计的好坏只受自己专业能力的限制了。

第二步最大的武器是方法论。如下图,针对项目一的设计停留在第一个圈,这个时候需要我们跳出项目,参考行业的解决方案,形成面对此类问题的解决方案,跃升到第二个圈方法论的高度。最终再使用方法论来降低维打击项目一,当出现类似问题项目二,项目三的时候,方法论是可以复用的。

用了方法论的设计,还会得到一个额外的好处,就是表达。

最好的表达是默契,我不说你就懂,而方法论就是这个默契。方法论是一种语言,行业通用的,在描述设计的时候,直接说出用的方法论,这些方法论是行业通用的,自然你还未讲解针对项目的设计,听者就已经懂得七七八八了,这就是降维打击的好处。

回头对比:此时对比下(用方法论降维打击的效果)和最开始的(连第一步都未跨出,无法表达出自己想法的设计),想象下两者的差别有多大。

作者:营销研发 关攀攀

来源:京东零售技术 转载请注明来源

相关推荐
clk660718 分钟前
Spring Boot
java·spring boot·后端
皮皮高1 小时前
itvbox绿豆影视tvbox手机版影视APP源码分享搭建教程
android·前端·后端·开源·tv
弱冠少年1 小时前
golang入门
开发语言·后端·golang
Humbunklung1 小时前
Rust 函数
开发语言·后端·rust
喜欢踢足球的老罗1 小时前
在Spring Boot 3.3中使用Druid数据源及其监控功能
java·spring boot·后端·druid
jakeswang1 小时前
StarRocks
后端·架构
未来影子2 小时前
SpringAI(GA):SpringAI下的MCP源码解读
人工智能·架构·ai编程
龙云飞谷2 小时前
从原理到调参,小白也能读懂的大模型微调算法Lora
后端
荣江2 小时前
【实战】基于 Tauri 和 Rust 实现基于无头浏览器的高可用网页抓取
后端·rust
寻月隐君2 小时前
Web3实战:Solana CPI全解析,从Anchor封装到PDA转账
后端·web3·github