[TOC]
新系统设计步骤和流程
一,产品需求设计
目的
所有技术方案设计,都先要有产品需求为前提;对于业务开发而言,会有产品经理去设计产品;但是对于基础研发而言,很多时候,设计一个基础服务,并不会有产品经理去设计产品需求,这个就需要基础研发人员可以自驱动先梳理出真正的需求和产品原型出来。这样,后面的技术方案才有目的性,才是一个合格的系统方案。
流程
需求梳理
这里主要是要梳理出所有需求,并且需求要合理,要考虑当前背景、后续发展、业务诉求、痛点等。
产品原型设计
有了需求,再有就是需要有产品原型,只有拿着产品原型,才可以去发起评审,才能确定这个需求、产品设计是否合理。
产品需求评审
产品需求评审的目的就是为了评审需求是否合理、产品原型设计是否符合预期。
二,方案概要设计
目的
方案概要设计的目的就是基于需求和产品原型,设计出合理的技术方案;这个概要设计要让大家清楚,整体架构是怎么样的,是否有风险,会向什么方向演进。
流程
方案初步预研
方案初步预研是为了设计出合理的架构,这个预研仅仅只是要得出一些最基础的结论,如:
- 某个依赖库是否可运用到生产环境?
- 某个开源解决方案是否可以直接运用,还是需要二次开发,是否能够二次开发?
- 这个系统大致能够支撑的量级是多少?
- 这个系统对稳定性、数据一致性的要求是如何?
把这些初步调研清楚后,才有助于去进行下一步的选型和设计
方案选型对比
如果有些类似的解决方案,那么我们需要根据我们自己的真实背景去对比选出合适我们的方案;这里主要是把方案进行选型对比。
方案概要设计
概要设计需要包括:
- 需求
- 方案选型和对比
- 具体方案
- 架构图
- 流程图
- 部署拓扑图
- 异常边界的分析和处理
- 风险分析和规避
- 灰度、回滚策略
- 阶段规划
- 工作量评估
概要设计评审
最后,一定要发起概要设计评审,这个评审有两个目的:
- 告知上级自己的方案,并让上级 review 和最终拍板
- 通知组内其他同事,让大家知道你在做这件事,同时也可以让大家一起 review 方案
评审后的微调(可选)
如果评审有问题就需要微调,最好能够做到一步到位。
三,详细设计【可选】
详细设计的目的就是在概要基础上,给出详细的设计,如:
- API 协议的接口定义
- 数据库的表定义
- 代码框架
- 。。。。
一般可以不需要
网友评论