复杂任务处理三部曲:系统性思维、结构化思维、流程化管理

欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我个人微信「java_front」一起交流学习


1 文章概述

在处理一些复杂任务时,我们有时很难理出头绪,有没有什么方法论一般性适用这些复杂任务?在实践中我认为以下三种方法可以有效应对复杂场景:

  • 系统性思维
  • 结构化思维
  • 流程化管理

2 系统性思维

系统性思维分为两个维度:

  • 维度一:当前任务服务于什么目标
  • 维度二:不追求单点极值,追求整体极值

2.1 维度一

明确当前任务服务于什么目标非常重要,例如一个技术团队在做专项任务,本季度工作是系统稳定性,那么稳定性就是本季度核心目标,整体任务设计必须围绕这个目标展开,例如增加告警配置,制定代码规范,组织代码Review等等。

但是如果你本季度把系统性能放在首位,而忽略了稳定性建设指标,即使性能做得再好,也不会拿到好指标。

需要明确的是,并不是说性能不重要,而是当前最重要的目标是稳定性,所有工作要围绕核心目标展开。


2.2 维度二

假设存在两个任务:任务A和任务B,如果把这两个任务做到最好,是不是总目标就做到最好?答案是不一定,因为这两个任务有可能相互削减

例如完结率和满意率就是两个削减典型指标:追求满意率很可能就不能迅速结单,追求完结率很可能有些事情就做不到多方满意。

例如开发人员在编写测试用例时,覆盖率是否一定要做到百分之百?如果单测这一个指标做到极值可能会减少测试时间,假设减少3天测试工期。但是编写覆盖率为百分之百测试用例需要花费5天,整体工期反而延长。

这就要做到动态平衡,例如开发人员只需要覆盖核心用例,这样既可以提升测试速度,编写测试用例也不会花费太多时间。


3 结构化思维

3.1 发现问题

大家工作中有没有遇到以下情况:一位同事用了很长时间罗列了很多事实和数据向你说明一件事情,但是你听完根本不知道他要说什么。另一位同事用了大量笔墨编写了技术方案,但是你看完也不知道这个方案到底要解决什么问题以及如何落地。

上述情况出现大概率是因为表述者没有使用结构化方法进行阐释,信息看似非常丰富但是杂乱无章,让人很难抓住重点,所以我们需要引入结构化思维。

金字塔原理就是一个由芭芭拉·明托女士提出的结构化思维方法论,风靡世界五十年并在各个行业都取得过很好效果。详细介绍参考我之前《结构化思维指导系统优化》这篇文章。


3.2 结构化思维

结构化思维分为两个维度:

  • 纵向维度
    • 结论先行
    • 以上统下
  • 横向维度
    • 归类分组
    • 逻辑递进

3.2.1 纵向维度

结论先行是指开宗明义地展示中心思想,让听众一开始就明白沟通主旨,而如果把中心思想隐藏在沟通过程中,听众可能因为走神或者沟通信息太多而失焦,根本不知道你在说什么。结论先行具体有以下六个方面:

  • 先重要后次要
  • 先框架后细节
  • 先总体后细分
  • 先论点后论据
  • 先结论后原因
  • 先结果后过程

以上统下是指任何一个层的思想必须是其下一层思想的总结概括,我们分析一个例子进行说明:小王今天需要买牛肉、鸡蛋、萝卜、果汁、白菜、牛奶、青菜、鸡肉、酸奶,但这么多菜品他记不住。

我们不难发现牛肉、鸡肉、鸡蛋属于肉蛋类,白菜、青菜、萝卜属于蔬菜类,牛奶、果汁、酸奶属于饮品类,这样聚合之后再以上统下进行结构化表达。


3.2.2 横向维度

归类分组一般有四种维度:时间维度、结构维度、程度维度、经验维度。时间维度是根据时间线进行归纳,结构维度根据组织结构进行归纳,程度维度是根据程度级别进行归纳,经验维度是根据已有经验进行归纳:

  • 时间维度
    • 事前、事中、事后
    • 短期、中期、长期
  • 结构维度
    • 信息部、行政部、人力部
    • 开发组、测试组、运维组
  • 程度维度
    • 高级、中级、初级
    • 重要、次要、不要
  • 经验维度
    • 市场战略3C理论
    • 市场决策4P理论
    • 高扩展、高可用、高性能

逻辑递进是指每种思想需要按照一定顺序进行排列,时间维度按照事前、事中、事后进行排列,程度级别按照高级、中级、初级进行排列。例如时间维度我们还可以继续使用怎样减少代码上线故障案例,按照事前、事中、事后时间线进行排列,这种顺序更加符合理解和记忆习惯。


4 流程化管理

流程化管理分为三个维度:

  • 目标分阶段
  • 进度定期同步
  • 进度可视化

目标分阶段:大任务不可能一蹴而就,而是要还分成多个阶段逐步实现。例如第一个阶段先做成一个最小可用品,后续再进行迭代。

进度定期同步:核心是风险及时同步,尽早协调资源。例如利用早会和周会时间同步项目进度,早会要迅速抛出风险,周会要同步项目重大进度。

进度可视化:用可视化方法管理进度,业界有很多可视化项目管理工具,也可以用Excel表进行可视化管理。在实践中我一般使用三张表格:

第一张表是团队项目汇总表:列出团队所有项目进度,包括项目名称,需求文档,需求评审时间,技术方案评审时间,后端人员,后端开发时间,前端开发人员,前端开发时间,提测时间,测试人员,测试时间等。

第二张表是单个项目管理表:由本项目负责人维护。这就要根据功能点列出每个功能点时间点,例如后端、张三、用户登陆功能点开始时间和截止时间。

第三张表是人员任务管理表:主要是人员维度记录组内人员工作任务安排,组长根据组内人员工作繁忙程度进行任务调配。


5 文章总结

在面对复杂任务时,系统性思维核心是明确目标,结构化思维核心是拆解任务,流程化管理核心是及时抛出风险,可以使用三张表格管理项目进度。


欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我个人微信「java_front」一起交流学习

你可能感兴趣的:(【JAVA】综合,系统架构)