任务 1:Tasking 任务分解

Tasking 的方法论

接下来我们会系统地讲解 Tasking 的方法论。

Tasking - 任务描述

完成任务没有思路首先是因为我们对问题描述得不够清晰。很多人在思考问题的时候是用蛮力的,想不出来就使劲想,憋着不干别的,等着大脑里蹦出一个答案。这种做法是非常不可取的,尽管我们大脑的潜意识具有仅次于阿尔法 Go 的思考力,你也不能这么虐待它,好钢要用在刀刃上。 正如上图所示,很多人思考任务也就是一句话的任务描述,而一句话根本是不够清晰的,我们需要一些思维框架让问题更加清晰。

清晰的思维是第一步,不能看到就不能思考

抽象:输入 & 输出

计算机程序可以简单的抽象为输入,处理和输出。所谓的处理,是处理过程的简称,也就是代码,它既可以是左边的结构化的代码块,也可以是右边封装好的函数。无论哪一种,都有输入输出。 这个思维框架就是很好的思维框架,既然程序是要考虑输入和输出的,而我们的任务就是写程序,那么自然也要考虑输入输出

使用 输入/输出 描述 Task

回到之前的图,把输入输出加上,就变成了上面这个样子。 每个输入输出都有名字和数据结构。 就输入来说,如果是代码块,那么就是另一块代码创建某个变量,如果是函数,那可能就是参数。 就输出来说,如果是代码块,那么就是创建出来给别的代码块使用的变量,如果是函数,那可能就是返回值。 而不管哪一个,都是有名字和数据结构的。 往往输入的数据结构可以从前面的输出中找到,所以可以省略掉就不想了。

如果是面向对象的话,输出的 name 就不太重要了,重点是数据结构的类名。

一个典型的示例

请看如下示例,我们有 3 个函数,这也是描述我们任务的一种方式。

#1 函数a
输入:
    paramX: TypeX
输出:
    aValue: TypeA

#2 函数b
输入:
    paramY: TypeY
输出:
    bValue: TypeB

#3 函数c
输入:
    paramZ: TypeZ
输出:
    cValue: TypeC

唯一需要强调的就是穷尽了,我们思考问题的时候,需要把输入输出穷尽。在实际工作中需要和业务和产品尽可能地沟通了解清楚。 如果不把输入输出穷尽,和  森林里谁没有参加会议的问题一样,我们是无法想清楚问题的。

练习一

使用任务的方法论分解来描述制作西红柿炒鸡蛋

  • 拿一张白纸

  • 进行粗粒度的任务拆分

  • 对其中复杂一些的步骤进行进一步分解

  • 检查和梳理所有任务的输入输出,确保穷举

  • 检查所有任务,确保输入输出明确的情况下,任务独立

使用任务的方法论分解来描述伊隆·马斯克的远大计划

  • 对火星移民计划进行上述操作

最后更新于