转载,原文 张建飞(Frank)解决问题黄金三步:定义问题—分解问题—归
我们经常说软件开发中,没有银弹。的确,单看软件领域,很少有什么方法论是普适的。然而再拔高一些,跳出软件的范畴,是有一些东西是普世的,比如老子说的“道”。
好吧,“道”说的有点大。不过,最近我的确有一个新发现——我发现“归类分组”在我们解决问题中起着巨大的作用。而这里的“问题”不仅仅限于软件设计,从日常生活、产品设计到公司战略、生物分类。都有它的身影。
这是为什么呢?究其原因可能有两个:
一、归类分组是抽象的重要方法,解决复杂问题我们离不开抽象。
二、归类分组是结构化的重要步骤,结构化的表达离不开归类分组。
当然,归类分组要先有素材可以“归类”才行。因此,完整的方法论是这样的,我给他起了一个好听的名字——解决问题黄金三步:定义问题——分解问题——归类分组。
这三步的详细操作如下:
第一步,定义问题:也就是要清楚我们要解决的问题是什么? 第二步,分解问题:对问题进行分析拆解,形成平铺的多个子问题,此步可以尽量发散。 第三步,归类分组:对子问题进行归纳、剪枝,将趋同的子问题,合并成一类问题。
如上图所示,通过黄金三步以后,我们就可以得到一个形同“金字塔”的结构,也就是我们经常说的金字塔结构。根据问题的复杂程度,这个金字塔结构可能是三层,也可能是二层和多层。
看似简单的三步操作会有那么大的作用吗?废话不多说,直接上案例。
在日常生活中的运用
你出门买报纸,你老婆说家里冰箱空了,顺便带点东西回来吧。她给你列了一个清单,里面有葡萄,橘子,咸鸭蛋,土豆,鸡蛋。你说就这么多了吗?她说苹果和胡萝卜也可以买一点。当你准备出门的时候,她说家里的牛奶和酸奶也没有了,最好也买一点回来。
你觉得你能把老婆交代的东西都买齐吗?我看很难,因为我们的大脑短期记忆无法一次容纳7个以上的记忆项目,超过5个时,我们就会开始将不同的项目归类到不同的逻辑范畴,以便于记忆。
如果我们将葡萄,橘子,牛奶,咸鸭蛋,土豆,鸡蛋、胡萝、苹果,酸奶。按照逻辑关系,进行下归类分组,比如把葡萄、橘子、苹果归为水果类,把土豆、胡萝卜归为蔬菜类,便可以大大帮助我们提高记忆效率。
注意,这里分类的作用不只是将一组9个概念,分成每组各有4个、3个和2个概念的3组概念,因为这样还是9个概念,你所要做的是提高一个抽象层次,将大脑需要处理的9个项目变成3个项目。
如果你已经这么做了,恭喜你,你已经在实践黄金三步了:
定义问题:冰箱空了,需要购买补给。 分解问题:你要分析购买