制定技术规划
2016-09-15
主要弄清楚几个问题:
- 什么是技术规划?
- 如何做技术规划?
- 常见的问题
背景
目前从业人员普遍存在的几个共性问题:
- 想得少:知道做的是什么,但是为什么要做这个方向的业务或者技术,不清楚为什么,就是想的少
- 闭门造车:拿出一个技术方案能够 work,没有跟其他团队和其他公司的方案做对比
- 不会做规划
- 不知道怎么带人
- 不会讲
做规划以及规划落地,一般有几个方面要考虑:
- 目标制定
- 风险控制
- 目标的周期?长期、短期?
技术规划,是什么?
技术规划,是什么呢?
- 融合多因素的发展愿景
- 对未来整体性、长期性、基本性问题的思考
- 设计全面长远的发展计划和行动方案
规划 vs. 计划:
- 前瞻性
- 全局性
- 战略性
- 方向性
技术规划,为什么?
为什么要做技术规划?
- 灯塔、前进方向,把大家的注意力集中起来:有的团队喜欢做重构,随着业务的发展,多次进行重构
- 大处着眼、小处着手:无论是否在做全局的事情,都要让团队看到全局
- 做有积累的事情
有一个整体方向,朝着这个方向去解决途中遇到的问题,最后的整体方向更有可能达成。
技术规划,如何做?
目的和目标
做事情,一定要目的和目标:
- 目的:要做什么事情,例如:提升性能、分库分表等,都是目的,要达到可量化的什么目标呢?
- 目标:做到什么程度,例如:性能优化 50% 等等可量化的结果
目的
关于目的
,从浅到深,几个思考层次:
- 解决现有问题:遇到一个业务问题、性能问题,要解决一下
- 抽象需求:现在迭代一个版本需要 1 个月,太慢,要改变一下,之后,需要具体分析是研发的效率问题、PM 的节奏问题、还是团队合作效率问题,最后才能改进
- 理想情况:要达到一个关键的业务指标提升,实现业务目标
目标
目标的几个层次
关于目标
,从浅到深,几个思考层次:
- 系统性:是否从整体系统的考虑这个问题
- 方向性:想到的解决方案或者说业务方向,是否能够确定一个整体的方向,持续的去做
- 前瞻性:能够满足未来多长时间的发展需要,例如,要做分库分表、服务化拆分,要确定,未来能够支持的业务高峰是多少
目标因素
如何制定目标
,需要考虑目标因素:
- 收益
- 技术
- 团队
收益,3 个维度来考虑:
- 收入:为公司带来的收入
- 效率:研发的效率、迭代的效率
- 体验:可靠性、用户操作流畅度
技术,3 个层次:
- 现有系统的扩展性:新增业务模块
- 新方向探索:新技术、新的业务的突破
- 趋势的判断:未来业务发展,对当前系统的影响,提前准备
团队,2 个维度:
- 人力成本:能够节省 10% 的人力成本
- 梯队能力:业务发展过程中,能够改善不同梯队人员占比
绘制全景图
全景图:
- 系统性的描述
规划
,执行者清楚不同角色的位置 - Excel 表 –> 脑图 –> 架构图(功能模块、开发模块):推荐架构图 + 脑图(补充)
- 五视图,勾勒出架构图:
- 逻辑架构*:流程图(业务模型) + 业务功能拆分
- 开发架构*:模块交互图
- 运行架构
- 物理架构
- 数据架构
方向划分:
- 水平分层:层次调用关系,上面调用下面,单向依赖
- 功能树:垂直画在一起,并列的 2 个业务
任务分解:
- 明确可执行:架构图,可详细、可简略,保证团队可执行下去就行,新人多时,需要详细一些
常见问题:
- 如果越画越复杂,怎么办?
Re:可以先画一个详细的,然后向上抽象,指导团队成员能够理解位置;也可以先画抽象的,再向下细化。
设定里程碑
执行计划,设置全面、可控、长远的执行计划:
- 目标、风险、收益
- 优先级、人力资源
- 合作
- 子任务
- 里程碑:可检查的阶段性点
关于里程碑的设定,目的是完整的项目
阶段可 check,保证项目风险可控:
- 子方向 A:一期、二期、三期
- 子方向 B:一期、二期、三期
- 子方向 C:一期、二期、三期
在所有子方向的一期前后,做一个里程碑 A
,二期前后,做里程碑 B
,以此类推。
风险控制
高风险的项目:
- 之前没有人做过的项目,相关经验不足的项目,就是高风险的项目。
- 小步快跑,前期就
分阶段快速出成果
:demo –> 尝试(验证) –> 应用 - 关于
尝试
的补充说明:一定要先分析,后尝试,跟现有方案的对比,跟当前业务场景的契合程度,预期有收益,就进行尝试,避免别人说好,自己模棱两可就贸然在线上尝试 - 基于时间的设定:第一个月细化到周,三个月内细化到月
风险的评估:
- 技术风险:新的开发语言,团队积累
- 管理风险:是否需要其他配合,团队内部研发人力是否充足
Note:
千万不要被
颠覆性
的想法,冲昏头脑。
执行
贯彻执行:
- 定期总结
- 及时调整
Note:
规划
是为了更好的适应明天的变化
。
小结
技术规划,关键点:
- 明确目标
- 全景图
- 里程碑
- 风险
- 调整
技术规划,具体需要进行的工作:
- 确定目标:
- 了解需求
- 明确方向
- 任务拆解
- 方向划分
- 全景图
- 执行计划
- 优先级
- 人力排期
- 里程碑
- 风险评估
- 技术风险
- 管理风险
- 贯彻执行
- 定期总结
- 及时调整
常见问题
问题 1:规划 = 计划
特点:
- 没有明确的计划、不成解决方案
- 多个目标、无所适从
- 规划 = 项目集合
解决办法:
- 区分技术方向和产品功能
- 寻求高阶指导
- 方向细分,多个规划
基本原则:
- 规划不求大,不求全
- 规划一定要清晰、可执行
问题 2:目标=实现系统
例如:实现一个工具链,提升研发效率
特点:
- 目标清晰
- 子系统分解,任务明确
- 分解后,无法 check 目标
解决办法:
- 里程碑的设定
- 寻求可量化
- 评估整体目标的实现
基本原则:
- 一定以业务目标为核心:例如研发效率提升,阶段一提升 10%,阶段二提升 5%
- 避免后期丢失业务目标
问题 3:走一步看一步
特点:
- 还没想清楚
- 做一步再考虑下一步
- 很容易跑偏,长期的风险比较大
解决办法:
- 长期方向必须明确
- 短期规划必须清晰
问题 4:半途而废
特点:
- 半年以上的项目
- 执行到中期项目半途而废
- 心理和环境因素的负面影响很大
- 周期很长,中间没有达到期望
解决办法:
- 目标合理性、任务拆解有效性
- 里程碑的设定
- 负责人的意志力要坚定
原文地址:https://ningg.top/how-to-make-technical-plan-20160914/