什么是技术规划

  技术规划不仅是技术方案,更是最终愿景的思考过程,着重在战略,而非战术。
  技术规划要抽象问题,发现本质原因,给出整体性、方向性、战略性的解决方案。一个技术规划通常要讲清楚现状/目标/路径三个基本要素。你需要通过思考,调查最客观的现状,最有价值且可行明确的目标,综合最优的实现路径。
  综上,技术规划是一个描述在有限资源内从当前客观现状通过综合最优的实现路径完成最具价值的目标获得最大收益的战略性思考过程。(与团队对齐,事后复盘依据,晋升的能力证明,跳槽的工作成果,体现思考过程)

为什么做技术规划

  作为tech leader,为团队选择最有价值的工作才能使得整体收益最大化。无论团队还是个人都不能仅靠case/问题驱动去解决问题,这样只会让团队无产出,浪费业务资源,影响业务发展。
  作为个人,这是一个分水岭 新手能把事情做对,高手要去做对的事情
  作为团队,应对业务发展,使得技术本身作为业务的核心竞争力。

技术规划的思考过程

S1:目标制定

目标的几种来源

  1. 现有扩展:过去一些指标的深度优化,或者技术债偿还
  2. 深度挖掘:对同一目标用其他指标衡量,寻找新的优化方向
  3. 新方向探索:引入新的业界技术与业界前沿建设思路对齐
  4. 趋势判断:预测未来技术发展趋势,尝试将前沿的学界思想引入来建设当前工作,引领颠覆式的创新。

明确可量化的目标

  1. 优化问题:写清楚量化的指标
  2. 建设问题:所建设的系统或工具有什么能力/功能, 有怎样的使用规模(场景/用户数/客户数等)

描述收益的维度

  1. 收入: 赚的和省的
  2. 效率: 生产效率提高,开发/迭代周期缩短,从难到易,减少人力等
  3. 体验: 接口延迟,开机速度,使用流畅度,CTR,留存

目标的分配

  1. 目标要一起完成,要考虑整体可用的人力成本
  2. 按人才梯度去分配,考虑胜任情况与成长挑战

S2:全景图

领域驱动设计

需要从0到1建设的系统,要以DDD的思想进行架构组件的拆解。如果是已有系统,也可以从0到1的角度看看不合理之处在哪,逐步重构成最理想的状态

全景架构图

把架构组件放到DDD对应的位置上组成一个整体,建设一个全局概念。
纵向上要分层,横向上要分模块,来描述整个系统的功能组件。

全景功能树

如果是建设问题,就以用户视角划分功能树,让所有同学都能明白每个部分谁来负责

全景指标树

如果是优化问题,就按指标的计算公式进行拆解,拆解到各个owner身上

S3:里程碑

  里程碑本质上是并行执行项目的一个筛查点,每个里程碑都有一个具有明确收益的子目标,多个子方向在里程碑出完成联调与对齐。每个里程碑的完成都是对风险的一次收敛。

小步快跑

  接受客观的反馈。只有反馈才能消除不确定性,反馈就是实验,实验就是观察,只有观察才能消除不确定性。
  从DEMO开始,逐步通过单元测试丰富功能,逐步阶段获得收益,不断实验反馈,最后应用。

时间倒排

  从项目整体DDL开始,每个关键里程碑一个DDL,时间要留余,且越临近DDL风险应该越小。
  按时间线细化具体的工作,做规划只要到季度目标即可。

优先级

  目标不能仅按照重要性和紧急性来区分,因为人很难判断二者,常受各种情绪和噪声的干扰,短期内认为某件事更重要,也有可能认为某件事过于紧急。
  最佳的策略就是按照第一原则:风险和收益

  1. 风险是指如果这件事不做或者失败对最终目标损失是多少
  2. 收益是指如果这件事完成,对最终目标贡献度如何 优先级(ROI) = (收益-风险)/成本

S4:风险管理

  1. 技术风险: 在方案设计阶段不一定确定所有的操作都是可行的,执行中遇到无法解决的客观难题是常见的,这会导致排期失效,任务延期。针对这一问题,需要找到上下游所有决策人,达成共识,选择延期还是交付需求,还是保证交付DDL。作为项目owner,要约定好check时间,依据项目的重要性以及紧急情况,单周或者双周组织一次会对齐进度,暴露风险。
  2. 管理风险: 项目需要人完成,人存在诸多不稳定因素,事件发展也有很多意外情况。原则上要尽早暴露风险,对高风险项要有planB,最坏情况提前计划。   本质上,项目落地过程,就是从一个不确定性的想法逐步收敛到确定性结果的过程,从风险和收益的角度来对任务优先级排序要比使用紧急和重要这两个维度要更清晰,先挑选出对于完成最终目标必要性最强的任务,然后对优先选择风险高收益大的任务完成,这样不确定性的收敛进度会大幅提升,项目的落地速度也会更快,难就是风险大,正确则是收益高

S5:OKR

  O是目标,KR是关键结果。O用来描述本质的目标,KR则是用来描述O达成的必要条件。
  OKR是组织目标管理工具也是个人目标管理工具,值得应用在工作和生活之中。对于知识型工作者它是一种高效的沟通方式,对于个人成长它则是一种高效的自我管理工具,使用OKR最大的收益是它能帮助我们细化思考过程,是一种高效率任务分解工具,让一个长期目标可逐步落地推进,最终实现。
  OKR实践过程和参考:https://www.okr.com/
  写作OKR:O+KR = 有挑战(信心指数0.7)可量化的本质目标(多问几个问什么) + 必要的可衡量的关键结果

  1. 从里程碑中拆解出的目标要有本质性,也就是要多去问几个为什么将收益和成本思考清楚
  2. KR不是TODO List,是达成目标的必要条件。 遵循金字塔原理MECE去拆解.https://blog.51cto.com/u_11090397/5691132

  对齐OKR

  1. 要把OKR分配给最适合执行的那个人去做,技术规划通常不是一个人完成,要把O分配到具体的人,只有职责到人,这件事才会有人去做才有结果
  2. 对齐要讲清楚,O的收益与成本,其本质是为了哪个终极目标服务,KR要说明其必要性以及如何量化评估
  3. 如何时间允许,还可以讲一下调查的case以及方案的取舍过程,但要记住这不是重点