转载

如何制定技术规划?

我思我在
1 条评论
4 人喜欢
109 次阅读
全文共 1930 预计阅读时长 7 分钟

主要弄清楚几个问题:

  1. 什么是技术规划?
  2. 如何做技术规划?
  3. 常见的问题

背景

目前从业人员普遍存在的几个共性问题:

  1. 想得少:知道做的是什么,但是为什么要做这个方向的业务或者技术,不清楚为什么,就是想的少
  2. 闭门造车:拿出一个技术方案能够 work,没有跟其他团队和其他公司的方案做对比
  3. 不会做规划
  4. 不知道怎么带人
  5. 不会讲

做规划以及规划落地,一般有几个方面要考虑:

  1. 目标制定
  2. 风险控制
  3. 目标的周期?长期、短期?

技术规划,是什么?

技术规划,是什么呢?

  1. 融合多因素的发展愿景
  2. 对未来整体性、长期性、基本性问题的思考
  3. 设计全面长远的发展计划和行动方案

规划 vs. 计划:

  1. 前瞻性
  2. 全局性
  3. 战略性
  4. 方向性

技术规划,为什么?

为什么要做技术规划?

  1. 灯塔、前进方向,把大家的注意力集中起来:有的团队喜欢做重构,随着业务的发展,多次进行重构
  2. 大处着眼、小处着手:无论是否在做全局的事情,都要让团队看到全局
  3. 做有积累的事情

有一个整体方向,朝着这个方向去解决途中遇到的问题,最后的整体方向更有可能达成。

技术规划,如何做?

目的和目标

做事情,一定要目的和目标:

  1. 目的:要做什么事情,例如:提升性能、分库分表等,都是目的,要达到可量化的什么目标呢?
  2. 目标:做到什么程度,例如:性能优化 50% 等等可量化的结果

目的

关于目的,从浅到深,几个思考层次:

  1. 解决现有问题:遇到一个业务问题、性能问题,要解决一下
  2. 抽象需求:现在迭代一个版本需要 1 个月,太慢,要改变一下,之后,需要具体分析是研发的效率问题、PM 的节奏问题、还是团队合作效率问题,最后才能改进
  3. 理想情况:要达到一个关键的业务指标提升,实现业务目标

目标

目标的几个层次

关于目标,从浅到深,几个思考层次:

  1. 系统性:是否从整体系统的考虑这个问题
  2. 方向性:想到的解决方案或者说业务方向,是否能够确定一个整体的方向,持续的去做
  3. 前瞻性:能够满足未来多长时间的发展需要,例如,要做分库分表、服务化拆分,要确定,未来能够支持的业务高峰是多少

目标因素

如何制定目标,需要考虑目标因素:

  1. 收益
  2. 技术
  3. 团队

收益,3 个维度来考虑:

  1. 收入:为公司带来的收入
  2. 效率:研发的效率、迭代的效率
  3. 体验:可靠性、用户操作流畅度

技术,3 个层次:

  1. 现有系统的扩展性:新增业务模块
  2. 新方向探索:新技术、新的业务的突破
  3. 趋势的判断:未来业务发展,对当前系统的影响,提前准备

团队,2 个维度:

  1. 人力成本:能够节省 10% 的人力成本
  2. 梯队能力:业务发展过程中,能够改善不同梯队人员占比

绘制全景图

全景图:

  1. 系统性的描述规划,执行者清楚不同角色的位置
  2. Excel 表 –> 脑图 –> 架构图(功能模块、开发模块):推荐架构图 + 脑图(补充)
  3. 五视图,勾勒出架构图:
    • 逻辑架构*:流程图(业务模型) + 业务功能拆分
    • 开发架构*:模块交互图
    • 运行架构
    • 物理架构
    • 数据架构

方向划分:

  1. 水平分层:层次调用关系,上面调用下面,单向依赖
  2. 功能树:垂直画在一起,并列的 2 个业务

任务分解:

  • 明确可执行:架构图,可详细、可简略,保证团队可执行下去就行,新人多时,需要详细一些

常见问题:

  1. 如果越画越复杂,怎么办?

Re:可以先画一个详细的,然后向上抽象,指导团队成员能够理解位置;也可以先画抽象的,再向下细化。

设定里程碑

执行计划,设置全面、可控、长远的执行计划:

  1. 目标、风险、收益
  2. 优先级、人力资源
  3. 合作
  4. 子任务
  5. 里程碑:可检查的阶段性点

关于里程碑的设定,目的是完整的项目阶段可 check,保证项目风险可控:

  1. 子方向 A:一期、二期、三期
  2. 子方向 B:一期、二期、三期
  3. 子方向 C:一期、二期、三期

在所有子方向的一期前后,做一个里程碑 A,二期前后,做里程碑 B,以此类推。

风险控制

高风险的项目:

  1. 之前没有人做过的项目,相关经验不足的项目,就是高风险的项目。
  2. 小步快跑,前期就分阶段快速出成果:demo –> 尝试(验证) –> 应用
  3. 关于尝试的补充说明:一定要先分析,后尝试,跟现有方案的对比,跟当前业务场景的契合程度,预期有收益,就进行尝试,避免别人说好,自己模棱两可就贸然在线上尝试
  4. 基于时间的设定:第一个月细化到周,三个月内细化到月

风险的评估:

  1. 技术风险:新的开发语言,团队积累
  2. 管理风险:是否需要其他配合,团队内部研发人力是否充足

Note:

千万不要被颠覆性的想法,冲昏头脑。

执行

贯彻执行:

  1. 定期总结
  2. 及时调整

Note:

规划是为了更好的适应明天的变化。

小结

技术规划,关键点:

  1. 明确目标
  2. 全景图
  3. 里程碑
  4. 风险
  5. 调整

技术规划,具体需要进行的工作:

  1. 确定目标:

    • 了解需求
    • 明确方向
  2. 任务拆解

    • 方向划分
    • 全景图
  3. 执行计划

    • 优先级
    • 人力排期
    • 里程碑
  4. 风险评估

    • 技术风险
    • 管理风险
  5. 贯彻执行

    • 定期总结
    • 及时调整

常见问题

问题 1:规划 = 计划

特点:

  1. 没有明确的计划、不成解决方案
  2. 多个目标、无所适从
  3. 规划 = 项目集合

解决办法:

  1. 区分技术方向和产品功能
  2. 寻求高阶指导
  3. 方向细分,多个规划

基本原则:

  1. 规划不求大,不求全
  2. 规划一定要清晰、可执行

问题 2:目标=实现系统

例如:实现一个工具链,提升研发效率

特点:

  1. 目标清晰
  2. 子系统分解,任务明确
  3. 分解后,无法 check 目标

解决办法:

  1. 里程碑的设定
  2. 寻求可量化
  3. 评估整体目标的实现

基本原则:

  1. 一定以业务目标为核心:例如研发效率提升,阶段一提升 10%,阶段二提升 5%
  2. 避免后期丢失业务目标

问题 3:走一步看一步

特点:

  1. 还没想清楚
  2. 做一步再考虑下一步
  3. 很容易跑偏,长期的风险比较大

解决办法:

  1. 长期方向必须明确
  2. 短期规划必须清晰

问题 4:半途而废

特点:

  1. 半年以上的项目
  2. 执行到中期项目半途而废
  3. 心理和环境因素的负面影响很大
  4. 周期很长,中间没有达到期望

解决办法:

  1. 目标合理性、任务拆解有效性
  2. 里程碑的设定
  3. 负责人的意志力要坚定
1 条评论
中国  -  西安市 Windows 7 Chrome | 72

DDDDDDAWDAWFfef风飞沙

回复