解决问题黄⾦三步:定义问题—分解问题—归类分组
我们经常说软件开发中,没有银弹。的确,单看软件领域,很少有什么⽅法论是普适的。然⽽再拔⾼⼀些,跳出软件的范畴,是有⼀些东西
是普世的,⽐如⽼⼦说的“道”。
好吧,“道”说的有点⼤。不过,最近我的确有⼀个新发现——我发现“归类分组”在我们解决问题中起着巨⼤的作⽤。⽽这⾥的“问
题”不仅仅限于软件设计,从⽇常⽣活、产品设计到公司战略、⽣物分类。都有它的⾝影。
这是为什么呢?究其原因可能有两个:
⼀、归类分组是抽象的重要⽅法,解决复杂问题我们离不开抽象。
⼆、归类分组是结构化的重要步骤,结构化的表达离不开归类分组。
当然,归类分组要先有素材可以“归类”才⾏。因此,完整的⽅法论是这样的,我给他起了⼀个好听的名字——解决问题黄⾦三步:定义问
题——分解问题——归类分组。
这三步的详细操作如下:
1.第⼀步,定义问题:也就是要清楚我们要解决的问题是什么?
2.第⼆步,分解问题:对问题进⾏分析拆解,形成平铺的多个⼦问题,此步可以尽量发散。
3.第三步,归类分组:对⼦问题进⾏归纳、剪枝,将趋同的⼦问题,合并成⼀类问题。
如上图所⽰,通过黄⾦三步以后,我们就可以得到⼀个形同“⾦字塔”的结构,也就是我们经常说的⾦字塔结构。根据问题的复杂程度,这
个⾦字塔结构可能是三层,也可能是⼆层和多层。
看似简单的三步操作会有那么⼤的作⽤吗?废话不多说,直接上案例。
在⽇常⽣活中的运⽤
你出门买报纸,你⽼婆说家⾥冰箱空了,顺便带点东西回来吧。她给你列了⼀个清单,⾥⾯有葡萄,橘⼦,咸鸭蛋,⼟⾖,鸡蛋。你说就这
么多了吗?她说苹果和胡萝⼘也可以买⼀点。当你准备出门的时候,她说家⾥的⽜奶和酸奶也没有了,最好也买⼀点回来。
你觉得你能把⽼婆交代的东西都买齐吗?我看很难,因为我们的⼤脑短期记忆⽆法⼀次容纳7个以上的记忆项⽬,超过5个时,我们就会开
始将不同的项⽬归类到不同的逻辑范畴,以便于记忆。
如果我们将葡萄,橘⼦,⽜奶,咸鸭蛋,⼟⾖,鸡蛋、胡萝、苹果,酸奶。按照逻辑关系,进⾏下归类分组,⽐如把葡萄、橘⼦、苹果归为
⽔果类,把⼟⾖、胡萝⼘归为蔬菜类,便可以⼤⼤帮助我们提⾼记忆效率。
注意,这⾥分类的作⽤不只是将⼀组9个概念,分成每组各有4个、3个和2个概念的3组概念,因为这样还是9个概念,你所要做的是提⾼⼀
个抽象层次,将⼤脑需要处理的9个项⽬变成3个项⽬。
如果你已经这么做了,恭喜你,你已经在实践黄⾦三步了:
1.定义问题:冰箱空了,需要购买补给。
2.分解问题:你要分析购买哪些东西呢?
3.归类分组:为了⽅便记忆,你将要买的9个东西按性质分成了三组,形成如下的⾦字塔结构。
这就是结构化思维,下次你再接到⽼婆这样的“需求”,记得把这个⽅法论⽤上,她⼀定会对你刮⽬相看。
在⼯作汇报中的运⽤
定义问题
“⼩张,客户对销售报告和库存报告不满意,你去看⼀下什么原因。”⾯对这种典型的⼯作问题,你打算怎么处理呢?
分解问题
⾸先,你肯定要去调研客户不满意的原因,经过调查你发现,客户不满意主要有以下原因造成的:
1.提交报告的周期不恰当;
2.库存数据不可靠;
3.获得库存数据的时间太迟;
4.库存数据与销售数据不吻合;
5.客户希望能改进报告的格式;
6.客户希望除去⽆意义的数据;
7.客户希望突出说明特殊情况;
8.客户希望减少⼿⼯计算。
虽然你做了⼤量的⼯作,调查也很充分。但是,如果你要是把这8个原因直接给⽼板汇报,估计效果不会太好。你可以⾃⼰做个试验,仔细
阅读上⾯的列表3分钟,你能从中获得什么?同样的,你⽼板看到这样的罗列也会是⼀脸懵逼,不知道重点在哪。
归类分组
所以我们有必要加上第三步,对问题进⾏进⼀步的归类分组,我们可以将8个问题概括为3组:
1.报告中含有不可靠的数据;
2.报告的格式混乱;
3.产⽣报告的时间太晚,⽆法采取有效措施
进⾏分组之后,我们就可以得到如下的⾦字塔结构:
这种结构化的表达,很明显让问题的表述更加清晰。领导也可以很快抓住问题的要点,并作出相应的决策。当然,这⾥是为了着重介绍归类
分组,真正的汇报你还要提供对应的解决⽅案,然后让⽼板做“选择题”。
在写代码时的运⽤
你遇到⼀个相当复杂的业务场景,在这个业务操作中,涉及到⼤量的校验和执⾏操作。这种代码,如果没有⼀定的策略,很容易写成⼤泥
球。
定义问题
例如,在我们的业务中有⼀个商品上架的操作,是⼀个⾮常复杂的业务操作。
分解问题
对这种业务问题的分解,通常是产品经理的职责,但是作为⼯程师也不能完全依赖PRD。因为产品视⾓和⼯程视⾓还是有差别的。
针对“商品上架”,我们做了如下的功能分解:
归类分组
同样,在分解之后,我们需要有⼀个归类分组的过程。否则,这些步骤的平铺会让代码显得凌乱,不⽅便记忆和维护。通过分析,我们可以
把分解后的步骤分成三个阶段:
1.初始化阶段
2.校验阶段
3.执⾏阶段
通过黄⾦三步,我们可以得到如下的⾦字塔结构:
最后,我们按照这个结构去组织我们的代码,整个代码结构会更加清晰,代码的可维护性也会好很多。
在应⽤架构中的运⽤
应⽤架构主要解决的是模块、组件定义和模块、组件关系的问题。
从宏观层⾯来说,架构设计也是遵循这三个步骤的。⽐如,我们的架构要如何分层,分模块、分组件就是在做问题分解。然后,模块和组件
要归属在哪个层次,要如何命名,就是在做抽象,在做分类归组。
在综合考虑功能属性+质量属性,然后通过黄⾦三步,就能得到我们想要的架构设计。例如,我们的架构也是在这个⽅法论的指导下完成
的。
在产品架构中的运⽤
定义问题
“⼩张,为了做新零售,我们打算做⼀款智能互联⽹POS机,你先做⼀下产品设计。”
分解问题
通过调研你发现,作为POS机,其核⼼功能是收银和经营管理。所以⾄少需要包含收银的功能、服务核销的功能、商品管理的功能、库存管
理的功能等等。
但如果仅仅是满⾜这些功能,和传统的POS并没有多⼤的区别,为了满⾜“智能”和“互联⽹”的要求,你去深⼊百度了⼀下智能POS应
该具备的功能,⼤致包含以下功能:
1.刷脸⽀付;
2.⽀持品牌商营销;
3.⽀持⾃主营销;
4.智能定价;
5.外卖对接;
6.彩票对接;
7.虚拟充值等等。
在问题分解阶段,我们应该尽量多的收集信息,多发散,多头脑风暴。
归类分组
发散完,我们还是要收回来。在收敛之前,我们先看⼀下产品框架应该包含哪些东西,通常,⼀个产品架构⾄少要包含三个层次:
1.⽤户感知层(在何种场景下通过何种⽅式触达⽤户);
2.功能模块层(通过哪些功能模块实现产品的核⼼功能,和哪些外部平台功能有信息交互);
3.数据层(产品的数据从哪⾥来、产品的数据沉淀到何处去)。
在这三个层次的基础上,我们再对每个层次内的模块进⾏分组。例如在功能模块层,我们要对功能进⾏分类,让分散的功能点内聚成更⼤的
产品模块(体现在⽤户界⾯上,往往是⼀级菜单和⼦菜单的关系)。
⽐如对于POS的收银产品模块,我们可以提供以下的产品功能:
⽀付宝收银
现⾦收银
微信收银
刷脸⽀付
记账等
通过层次划分,模块划分我们就可以得到⼀个相对清晰的产品架构,以智能POS为例,我们可以画出如下的产品架构:
分类是科学也是艺术
通过上⾯的案例,我想你已经领会到黄⾦三步:定义问题——分解问题——归类分组的要义了。其中前两步相对⽐较直观,⽽第三步往往是
不容易做好,也容易被忽略的关键步骤。
实际上,对事物的归类分组是我们⼈类的天性。⼈类⼤脑会⾃动将发现的所有事物以某种持续组织起来。基本上,⼤脑会认为同时发⽣的任
何事物之间都存在某种关联,并且会将这些事物按某种逻辑模式组织起来。
⽐如,下⾯这张图⽚:
⽆论是谁,乍⼀看到上⾯的六个⿊点,都会认为共有两组墨点,每组三个。造成这种印象的原因主要是有些⿊点之间的距离⽐另⼀些⿊点之
间的距离⼤。
空间是⼀个相对⽐较直观的逻辑关系,然⽽,并不是所有的逻辑关系都是如此的显性化。实际上,很多的概念会在多个维度进⾏交叉耦合,
这就给我们的归类分组带来了很⼤的挑战。
⽣物分类学
⽣物分类学通常直接称分类学(Taxonomy),是⼀门研究⽣物类群间的异同以及异同程度,阐明⽣物间的亲缘关系、基因遗传、物种进化
过程和发展规律的基础科学。
最流⾏的分类是五界系统。通常包括七个主要级别:界(Kingdom)、门(Phylum)、纲(Class)、⽬(Order)、科(Family)、属
(Genus)、种(Species)。种(物种)是基本单元,近缘的种归合为属,近缘的属归合为科,科⾪于⽬,⽬⾪于纲,纲⾪于门,门⾪于
界。
不过分类学到不是⼀门很严谨的“科学”。就像⽐尔.布莱森在《万物简史》⾥说的:
分类学有时候被描述成⼀门科学,有时候被描述成⼀种艺术,但实际上那是⼀个战场。即使到了今天,那个体系⽐许多⼈认为的还要
混乱。以描述⽣物基本结构的门的划分为例。许多⽣物学家坚持认为总数30个门,但有的认为20来个门,⽽爱德华在《⽣命的多样
性》⼀书⾥提出的数字⾼达令⼈吃惊的89门。
由此可见,分类并不像我们想的那么简单。我们观察事物的视⾓不同,对问题的认知程度不同,得出来的分类很可能也完全不同。
特别是当概念之间有交叉情况,分类就会变得更加棘⼿。⽐如,在你的笔记本中,有“读书笔记”和“哲学笔记”两个平级的分类,此时你
阅读了⼀本哲学书籍,那么你会把这本书的读书笔记放在哪个分类⾥呢?
分类的原则
分类的基本原则是MECE法则。透过结构看世界,说的就是MECE法则。
MECE法则即mutuallyexclusivecollectivelyexhaustive的缩写,是麦肯锡咨询顾问芭芭拉·明托在《⾦字塔原理》中提出的⼀个
思考⼯具,意思是“相互独⽴,完全穷尽”,也常被称为“不重叠,不遗漏”。
MECE原则的思想精髓,就是全维度的去分析⼀件事情,不要有遗漏和重复的部分。
我们可以借助已有的结构化思维模型(分类的框架)来分析问题,确保每⼀层要素之间“不重复、不遗漏”。
分类的思维模型
实际上,在上⽂中我们已经提到了⼀些分类的思维模型。⽐如,在应⽤架构中,我们通常有展现层、控制层、应⽤层、领域层和基础实施
层;在产品架构中,有⽤户感知层、功能模块层、数据层。这些框架可以有效的指导我们在各⾃领域中开展⼯作。
类似于这样的分类思考模型还有很多,⽐如:
1、制定市场营销策略的“4P”模型,即产品策略(ProductStrategy)、价格策略(PriceStrategy)、渠道策略(Place
Strategy)、促销策略(PromotionStrategy)。
2、分析问题的“5W2H"模型,即Why、What、Who、When、Where、How和Howmuch。
3、思考组织战略的“7S”模型,即经营策略(Srategy)、组织结构(Structure)、运营系统(System)、经营风格(Style)、职员
(Staff)、组织技能(Skill)和共享价值观(Sharedvalue)。
4、分析竞争⼒的SWOT模型,SWOT分析代表分析企业优势(Strengths)、劣势(Weakness)、机会(Opportunity)和威胁
(Threats)。
5、制定⽬标的SMART模型,即制定⽬标要满⾜确定性(Specific)、可度量性(Measurable)、可实现性(Attainable)、相关性
(Relevant)和时效性(Time-bad)。
这些思维模型都是宝贵的经验总结,相当于已经帮我们做好了第三步“归类分组”的⼯作,我们只需要按照模型制定的框架往⾥⾯填充要素
即可。
因此擅⽤模型,活⽤框架。可以极⼤的提升我们解决问题的效率,同时帮助我们做更加全⾯的、更加结构化的思考。做了“⽆遗漏,不重
复”。
本文发布于:2022-12-26 17:25:27,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/35017.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |