贴近业务属性、兼顾研发各阶段要点的研发规范,可以切实提高研发效率、保障项目研发工作有条不紊地运作、顺利交付。而不完善的研发流程,会降低研发效率,增加成本与风险。
本规范文档作为我司项目交付规范化的研发流程指导方法,目的是简化、规范日常工作流程,提高工作效率,减少无效与冗余工作,赋能企业、客户更强大的掌控力来应对海量增长的业务需求,从而释放更多人力专注于业务创新。
| 版本 | V-1.0.1 |
|---|---|
| 发布日期 | 2021-09-18 |
| 公司 | 重庆凡泰思科技有限公司 |
1. 术语定义
客户方
另称
甲方,项目的业主方 / 业务方 / 需求方开发方
另称
乙方,项目的执行方 / 研发方 / 实施方,负责项目需求的开发/实施合作方
另称
对端,项目的其它合作单位 / 团队 / 共研方
2. 阶段规划
鉴于对日常项目研发工作的总结与归纳,结合我司项目情况将项目研发交付流程抽象为如下四个阶段:
需求阶段
设计阶段
开发阶段
发布阶段
3. 整体流程
3.1 需求阶段
关于需求类型,结合业务情况划分为两类:首次需求 与 迭代需求
首次需求
客户方首次提出的需求/功能点,主要是新增加的业务、功能、数据支撑等场景迭代需求
对于前期已经存在的功能进行变更或优化、遗留缺陷、发现的BUG,
客户方再次提出的需求,均属于迭代需求
3.1.1 需求分析
由 客户方 与 开发方 充分沟通,力求获取并理解业务场景(背景)、目标,由双方就需求内容展开讨论,开发方 评估 需求合理性 、数据可行性 、技术可行性 ,并根据需求内容实际情况,由 客户方 输出《XX需求文档》
3.1.2 需求确认
针对需求内容如果多方有异议,则反复讨论沟通,必须共同达成一致性解决方案。如果无异议,则产品需求文档定稿. 由 开发方 向 客户方 完成 最终版本需求 确认后,则本次需求进行 定档,开发方 则按照定档后的内容进入设计、开发,由 客户方 输出最终版本《XX需求文档》
需求一旦定档后,原则上不再接受大的需求调整,如有调整,对于已进入开发阶段的需求则建议中止开发,重新进行评估。
3.2 设计阶段
3.2.1 方案设计
在开发方的 需求/项目负责人 与 客户方 完成需求确认,并收到最终《XX需求文档》 后。由开发方根据 需求文档内容 进行方案设计,视需求实际情况 向 客户方 反馈本次需求设计方案(工作群记录或邮件)
3.2.2 研发排期
由 开发方 评估给出研发排期
3.2.3 工时确认
由 开发方 向客户提交 《XX工时评估文档》,等待 客户方 确认
3.3 开发阶段
在工时确认完成后需求即进入开发阶段,开发阶段的主要任务是将设计阶段的产出转化为具体代码。开发过程中,开发人员必须保证代码的规范性、准确性。同时进行适当的开发自测,以便后续联调工作可以顺利开展。
3.3.1 文档编制
对于涉及需要对外提供接口的需求,由 开发方 进行《XX接口文档》的编制,向客户方、合作方进行输出;在文档编制过程中遇到需求不清晰、有疑问等问题,开发方 及时向 客户方 确认
3.3.2 代码开发
开发人员根据 已定档的需求内容 进行开发,开发过程中如发现有疑问及时反馈 客户方 进行确认。代码开发完成后由开发人员进行自测后,部署至测试环境进行 内部测试与 联调
3.3.3 开发自测
测试环境部署
开发方的开发人员在需求自测完成后,部署至测试环境
内部测试
测试环境部署完成后,由 开发方 测试人员按照测试用例进行内部测试,测试过程中出现的BUG、问题反馈给开发人员进行修复
3.3.4 测试联调
开发联调
涉及 合作方 参与或 需求评估可能影响 合作方 的,与 合作方 进行联调,并及时处理调试过程中产生的问题
测试文档编制
完成测试与联调后,开发方 进行代码评估,出具《XX测试文档》,文档中说明需求测试用例、开发联调情况(可选)、遗留问题评估(可选)、预期风险、发布后合作方与对端配合情况(可选),以及是否发布的结论或建议
3.4 发布阶段
发布是将具备发布条件的程序发布到线上系统,并以生产标准进行数据产出的过程。
发布分为正常发布和紧急发布:
正常发布:发布节奏在原则上是可预见性、周期性的,发布计划可提前制定和公布。正常列入排期计划的需求,都必须按照正常的节奏安排发布计划。
紧急发布:紧急发布是为应对突发性、紧急性状况而额外开启的可选发布,如线上BUG紧急修复、突发性需求等。
在接到紧急发布需求后,第一时间应评估是否可以随最近一次正常发布窗口期发布。如果不可以,则根据实际情况发起紧急发布申请。
3.4.1 生产发布
发布申请
在需求完成测试验证通过后,由 开发方 向 客户方 发起发布申请,与 客户方 确定好 上线时间 ;对于涉及需要 合作方 配合验证的情况,由 客户方 协调 合作方 , 并约定好 上线时间, 未协调好合作方验证的情况下 开发方 将延期上线。
执行部署
在与 客户方 确定的上线时间点,由 开发方 按照上线步骤执行部署,部署完成后进行冒烟测试。冒烟测试完成后,如本次上线有数据、附加配置的处理,则进行同步处理。
如冒烟测试未通过,则不满足交付条件,应执行回滚,则告知 客户方 情况并延期上线。
3.4.2 生产联调
对有 合作方(对端)参与的需求,开发方 在生产环境冒烟测试通过后,通知 客户方 协调合作方配合验证,并解决联调过程中产生的问题,如出现无法即时解决的问题,执行发布回滚,后续解决后再申请上线。
3.4.3 交付通知
在 开发方 完成生产发布、与 合作方 完成生产联调后,由 开发方 发布《XX上线说明》文档,邮件通知 客户方 上线结果
3.4.4 代码同步
在需求完成上线后,开发方 整理本次改动的代码,并同步给 客户方 约定代码仓库
3.5 紧急问题
为应对突发性、紧急性状况(如线上BUG紧急修复、突发性需求),针对紧急需求以优先解决问题为主,由 开发方 对需求进行评估、实施改造,并同步向 客户方 说明解决方案 (语音/微信/邮件… 可选其一)、预估上线时间。开发方 完成生产发布、处置完状况后,向 客户方 输出《XX问题/反馈/补充说明》
4. 附录
- 文档说明
| 文档类型 | 必要 | 说明 |
|---|---|---|
| 需求文档 | - | 适用于需求阶段,需求内容的整理 |
| 需求评估文档 | - | 适用于设计阶段,开发方向客户方反馈需求评估结果,作为需求确认环节的重要辅助 |
| 工时评估文档 | 是 | 适用于设计阶段,开发方进行工时确认、开发排期场景 |
| 接口文档 | - | 适用于提供对外接口、调用外部合作方业务类型的需求 |
| 测试文档 | - | 适用于开发阶段,需求在测试环境验证完成后输出文档,作为评估发布生产环境的参考 |
| 上线说明 | 是 | 适用于发布阶段,生产环境更新完成后的情况说明,是项目交付的重要依据 |
| 问题/反馈/补充说明 | - | 适用于处理缺陷、问题等突发性场景补充说明、情况反馈 |
- 版本修订记录
| 版本 | 日期 | 修改人 | 描述(注明修改的条款或页) |
|---|---|---|---|
| 1.0.0 | 2021-09-14 | 易建华 | 初始版本 |
| 1.0.1 | 2021-09-18 | 易建华 | 附录增加输出《需求评估文档》 |
| 1.0.2 | 2021-10-29 | 易建华 | 增加上线申请邮件流程 |