神算子工程师 —— 系统思考与技术设计

Posted by ZY on June 11, 2019

最近在对上半年做复盘。

复盘,不是在回忆过去,而是对过去做的事情的思考。

回忆,不会产生新的东西,思考,则会。

今天说的话,写的文章,反映了自己当下的思考,反映了自己当下的认知,

思考总是有局限、认知也总是有局限,

也许半年后再来看今天说的这些话,会推翻这些结论,甚至觉得好笑,

但复盘不就是为了让未来的自己,觉得现在的自己是个傻逼吗?

系统思考与技术设计

“系统思考缺乏症”的五种典型症状:
只见树木,不见森林;
只看眼前,不看长远;

—— 《系统之美》

“只见树木,不见森林”,说的是思维不要狭隘,要看到全局;

“只看眼前,不看长远”,说的则是眼光不要太短浅,要放长远;

两句话一起,说的是思维的全局性和长远性。

看似很简单的道理,可一到现实行动中,我们就往往会犯了狭隘和短浅的毛病。

打个比方,做一个退款的需求,三个不同层级的思维,会做出不同的成果。

最狭隘的思维,只看到需求本身。退款嘛,那我就把款按原路退还给用户就好了。

高级点的思维,可以看到需求所在的模块。退款属于资产模块,那资产模块相关的,资产流水、交易明细什么的,在退款后,都需要变动。

顶级思维,可以看到和模块相关联的其他模块。比如退款了,订单要怎么变化,这是订单模块,退款了,会不会伴随着退货,库存会不会变动,这是商品、库存管理模块。

系统思考

很多同学上线了一个小需求,改了点小代码,结果把一个产品的核心功能给整挂了,很容易怀疑人生。其实这就是蝴蝶效应。

做一个需求,不要只盯着需求本身,上来就蒙头蒙脑地扎进去。

先往上站几个台阶,甚至爬一爬,爬到山顶,从系统的全局,去观察它,想一想,这只蝴蝶,抖的这下翅膀,都会给哪些地方带来龙卷风。

上面说的是思考的全局性,下面说说思考的长远性。

还是退款的需求,还是分三个层级。

最短浅的思维,还是只看到需求本身。功能实现了就好,管他以后怎么着,到时再说。

好一点的思维,看到产品接下来的规划。通过和产品经理的沟通,我们可以知道这一期只做会员余额的退款,其他的不支持,但是后续会做微信、支付宝等第三方支付的退款,那么你在设计这个迭代的需求时,就得留好口子,想想后续如何支持这些需求,不要把需求做死了。

顶级的思维,想得比产品还远。有种思维定势是,我是开发,那我就把产品的需求开发了就行;跳出这个思维边界:我是开发,但我也是公司的员工,我要把这个产品做得更好,产品说的,不一定都对,我也可以参与产品的设计。

这就是系统思考在技术设计中发挥的作用。

你总会发现有些人,需求开发到最后,手忙脚乱,发现这也没考虑到,那也没考虑到,测试提了一堆bug,发现都是”需求”;

而有些人,总能云淡风轻,从容优雅,一切似乎都在意料之中。

姑且称之为”神算子工程师”吧,方圆十里只内,往后十年之后,都尽在掌控。

当然,系统思考,不只用在技术设计。

比如和女朋友吵架了,想想之前你还犯了啥,想想她最近家庭、工作上遇到的事,想全面些,别只盯着让你们俩吵架的那件事。