汇报时,如何让老板快速抓住重点? | 黄金三步法

发布人:润泽天下   发布时间:2019-11-21 14:06:29
我们经常说软件开发中,没有银弹。的确,单看软件领域,很少有什么方法论是普适的。然而再拔高一些,跳出软件的范畴,有一些东西是普适的


最近,我有一个新发现:我发现“归类分组”在我们解决问题中起着巨大的作用。而这里的“问题”不仅仅限于软件设计,从日常生活、产品设计到公司战略、生物分类。都有它的身影。

这是为什么呢?究其原因可能有两个:

1.归类分组是抽象的重要方法,解决复杂问题我们离不开抽象。
2.归类分组是结构化的重要步骤,结构化的表达离不开归类分组。

当然,归类分组要先有素材可以“归类”才行。因此,完整的方法论是这样的,我给他起了一个好听的名字——解决问题黄金三步:定义问题——分解问题——归类分组。

这三步的详细操作如下:

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. 执行阶段

通过黄金三步,我们可以得到如下的金字塔结构:


最后,我们按照这个结构去组织我们的代码,整个代码结构会更加清晰,代码的可维护性也会好很多。


在应用架构中的运用


应用架构主要解决的是模块、组件定义和模块、组件关系的问题。


从宏观层面来说,架构设计也是遵循这三个步骤的。比如,我们的架构要如何分层,分模块、分组件就是在做问题分解。然后,模块和组件要归属在哪个层次,要如何命名,就是在做抽象,在做分类归组。

在综合考虑功能属性+质量属性,然后通过黄金三步,就能得到我们想要的架构设计。例如,我们的COLA 2.0架构也是在这个方法论的指导下完成的。


在产品架构中的运用

定义问题

“小张,为了做新零售,我们打算做一款智能互联网POS机,你先做一下产品设计。

分解问题

通过调研你发现,作为POS机,其核心功能是收银和经营管理。所以至少需要包含收银的功能、服务核销的功能、商品管理的功能、库存管理的功能等等。

但如果仅仅是满足这些功能,和传统的POS并没有多大的区别,为了满足“智能”和“互联网”的要求,你去深入百度了一下智能POS应该具备的功能,大致包含以下功能:

1. 刷脸支付;
2. 支持品牌商营销;
3. 支持自主营销;
4. 智能定价;
5. 外卖对接;
6. 彩票对接;
7. 虚拟充值等等。

在问题分解阶段,我们应该尽量多的收集信息,多发散,多头脑风暴。

归类分组

发散完,我们还是要收回来。在收敛之前,我们先看一下产品框架应该包含哪些东西,通常,一个产品架构至少要包含三个层次:

1. 用户感知层(在何种场景下通过何种方式触达用户);
2. 功能模块层(通过哪些功能模块实现产品的核心功能,和哪些外部平台功能有信息交互);
3. 数据层(产品的数据从哪里来、产品的数据沉淀到何处去)。

在这三个层次的基础上,我们再对每个层次内的模块进行分组。例如在功能模块层,我们要对功能进行分类,让分散的功能点内聚成更大的产品模块(体现在用户界面上,往往是一级菜单和子菜单的关系)。

比如对于POS的收银产品模块,我们可以提供以下的产品功能:

  • 支付宝收银
  • 现金收银
  • 微信收银
  • 刷脸支付
  • 记账等


通过层次划分,模块划分我们就可以得到一个相对清晰的产品架构,以智能POS为例,我们可以画出如下的产品架构:


分类是科学也是艺术

通过上面的案例,我想你已经领会到黄金三步:定义问题——分解问题——归类分组的要义了。其中前两步相对比较直观,而第三步往往是不容易做好,也容易被忽略的关键步骤。

实际上,对事物的归类分组是我们人类的天性。人类大脑会自动将发现的所有事物以某种持续组织起来。基本上,大脑会认为同时发生的任何事物之间都存在某种关联,并且会将这些事物按某种逻辑模式组织起来。