## 软件开发流程
> 项目开发必须遵守以下流程,可以有效避免软件软件质量不达标,软件功能出现偏差,工期拖延等情况。
### 业务需求沟通
项目确认前所有需求必须先跟业务人员进行沟通,如果直接跟开发沟通不仅会打断开发的进度,同时增加开发工作量。
项目确认后指定该项目负责人(即项目经理),项目经理负责客户沟通、工期规划、模块分配等工作。
### 开发需求确认
业务人员沟通没问题之后,项目经理进行需求确认,确认没问题后下发给设计和开发人员进行设计开发。
### 原型图/效果图设计
需要原型图/效果的必须先进行原型图/效果的设计,然后内部确认没有问题再由客户进行确认,客户确认后转交切图(前端)人员
### 切图/程序开发
程序开发前需要项目经理进行模块划分,数据库设计,分工后再进行开发。开发必须保证进度与预期进度一致。如果中间有新的需求或需求变更,软件开发周期需要相应的进行变更。
客户提出问题或修改需要在项目群内对接,不允许客户私自与程序员沟通后直接修改。
### 软件测试
* 重要业务逻辑必须进行单元测试和开发人员自测
* 在交付测试人员测试之前必须保证没有明显BUG,例如:页面点不开(报错等),流程走不通(无法下单等),页面有明显的错别字或不该出现内容(title为xx列表页面等)
*
### 软件交付
#### 软件交付时必须具备以下文档
* 软件需求文档
* 软件测试文档
* 数据库设计文档
* 软件运行环境文档
* 软件说明书(包括后台与前台)
* 软件API接口文档(如有)
#### 代码交付
如需交付代码的项目,必须移交生产环境的代码,包括后端与前端
### 软件维护
软件默认维护期为1年,按交付日开始计算。
在维护期内必须做好项目程序的备份和数据库的备份。
正常备份周期为:
* 程序自动备份周期为每周1次,周一凌晨3点,保留最新2份(最近2周数据)。
* 数据库备份周期为每天1次,每天凌晨2点,保留最新14份(最近2周数据)。
> 需要高频备份的可适当调整备份周期,例如数据库为每12小时备份一次,保留最新的28份(最近2周数据)。同时特殊项目可备份到OSS或七牛云等服务器。
### 迭代/需求更改
迭代升级必须重新开始以上流程,如果不遵守将会导致不可预知的问题。