我曾不愿意为了学习方法论而学习方法论,我坚信实践出真知。但,最近几年两件事情,让我对方法论有了改观,两件事分别是:
机缘巧合侧面知道了方法论X,发现和自己曾经做A、B事情的逻辑框架一致,才知道原来这就是方法论X
进入不熟悉且复杂的新领域,步步受阻,真搞不定了。比如,他人抛砖引玉,大致意思:新领域如何快速把事情立起来?在探索这个过程中,发现一味灵丹妙药《麦肯锡结构化战略思维》,遂开始学习各类方法论
年度推荐书籍:
方法论1: 归纳/演绎
概念:
归纳:发现乌鸦都是黑的
演绎:乌鸦是黑的
使用场景:
看似不断的日常运维&报警工作
项目流程
可观测体系建设
等等
场景详细示例:让人糟心的日常运维&报警工作
表象:经常陷入不断做“完”事情的循环当中
结果:每天不断被琐碎的事情推着走
解法:从「解决一个问题」到「解决一类问题」转变
区别:
解决一个问题:解决问题
解决一类问题:记录问题->解决问题->分析问题->归纳问题->再解决一类问题
事例1:不断的日常运维&报警工作
先记录问题(归纳过程)
再解决问题(归纳过程)
周期性分析&归类问题(归纳过程)
找到同类且占比最高的问题,专项彻底解决(归纳过程)
把以上流程复用到所有解决日常运维&报警工作上(演绎过程)
事例2:负责项目管理
把历史负责项目管理过程中的事情基于以下逻辑进行归纳:
1.1 事前:BRD模板、PRD模板、需求准入机制、技术文档模板、测试用例库、项目排期模板(归纳过程)
1.2 事中:例会机制、需求变更规范、上线流程模板(归纳过程)
1.3 事后:复盘机制(归纳过程)
基于以上归纳,产出项目流程关键步骤、关键步骤产出物模板等规范(归纳过程)
把2产出的项目管理规范落实和推广到后续项目中(演绎过程)
方法论2: 具象/抽象/再具象
天生适合广大程序员使用的绝招,解决复杂系统设计的通用方法论
概念:
具象:充分信息输入的过程。信息来源可以是充分的业务流程梳理(业务功能树立、踏实且充分的阅读代码)
抽象:代码抽象建模
再具象:基于模型产出代码
使用场景:
系统重构
新的复杂系统设计
等等
场景详细示例:系统重构
具象 --> 抽象 --> 具象
一行行从头到尾读代码(具象)
by代码块拆分代码(具象)
by业务领域归类代码(抽象)
找不变(抽象)
找变化(抽象)
UML建模(抽象)
按照UML编码(具象)
具象 --> 抽象 --> 具象
具象:读代码、by代码块拆分代码
抽象:by业务领域归类代码、找不变、找变化、UML建模
具象:按照UML编码
方法论3: 想清楚/讲明白/做到位
使用场景:
顶层规划、年度规划、季度规划等
解决困难的问题
进入新领域
想清楚:结构化拆解
解决困难的问题示例:
定义问题:第1步定义清楚问题是什么
结构化拆解问题:第2步基于结构化的方式拆解问题,常用的拆解办法有
公式法:来源经验,经验包括自身实战积累、他人言传身教、他人总结分享(媒体资源、书籍)。
子目录列举法:穷举出所有的因子,且因子不相交
事例1:可观测体系建设(子目录列举法) 可观测无非指标+日志+追踪+报警4大块,基于以上4块拆解:
日志:所有服务日志是否接入日志系统,比如ES 1.1 业务日志 1.2 服务异常日志等(比如php error.log)
指标看板建设(kibana/grafana+promethues):
2.1 南北流量:代理层指标看板(可用性SLA、QPS、响应时间、非200状态码、P99、P95、P90)。 2.2 东西流量:RPC服务指标看板(可用性SLA、QPS、响应时间、异常状态码、P99、P95、P90)全链路:南北流量+东西流量全链路追踪(opentracing)
报警(promethues+alert/大数据kafaka+flink):4.1 指标报警:可用性SLA报警、QPS增量/环比报警、接口异常状态码增量/环比报警、接口超时持续X时间报警。 4.2 日志报警:error日志增量报警、特定业务异常关键字日志增量报警
讲明白:金字塔原理
结论先行:先说结论
以上统下/以下承上:再结构化的by不同纬度阐述对结论的支撑
做到位:指标牵引
明确指标:明确北极星指标(唯一核心指标)
指标牵引:基于北极星指标拆解动作和制定动作的量化目标
原创不易,欢迎👏🏻右下角点赞和在看支持,
让作者的辛勤付出得到认可,感谢~