# 研发流程

## 需求评审


## 方案设计
* 设计文档由以下部分
    * 基本设计
    * 流程
    * 详细逻辑
    * 数据库表设计以及sql
    * 注意点
    * 测试方案
    * 上线方案. 遇到 影响范围较大, 灰度, 平滑升级 等情况时, 必须在开发前设计上线方案.

## 方案评审
* 开发者需要完全了解需求, 发现需求中可能存在的问题,与现有功能或技术架构冲突.
* 如果需求不清晰,开发者有权利决绝.

## 需求估时
* 开发者
  开始时间: 开发编码的时间, 不包括方案设计与方案评审时间.
  结束时间: 完成自测时间.

在开发过程中, 如果发生需求变更,方案不完善等问题导致需要延期, 开发者需要至少提前1天申请延期, 否则必须按时上线.

## 开发
* 当出现需求变动, 方案设计不完善, 需求不清晰等与原问题时, 不应该个人决定, 应该提出来,共同解决.
* 在合适的时间点, 应该反馈开发进度.

## 测试

## 上线
上线时间为每天北京时间9:30(UTC 1:30). 上线前一天,需要准备好上线的所有事项.

## 上线后
* 跟踪功能使用情况
* 如果功能中涉及大数据量或者大量cpu计算, 需要跟踪服务器运行情况, cpu,内存, JVM
* 如果功能对数据库可能产生压力, 需要跟踪数据库运行情况.
* 需求总结为业务知识,成文档.
