研发管理规范

一、目的与依据

为规范集团软件研发相关管理,有效控制技术风险,提高研发和运行质量,结合集团业务特性,特制定本规范。

二、适用范围

本规范适用于集团所有研发工作。

三、定义

研发过程:包括需求分析、分析设计、研发实现、测试验收、发布上线、线上监控等 6 个过程。

四、工作职责

(一) 产品经理

  1. 产品经理负责编写产品需求文档、组织需求评审、有需求变更时更新需求文档并通知项目团队成员等;

  2. 产品经理负责需求上线前业务验收工作;

  3. 产品经理负责跟踪产品线上运行状况,及时跟进解决异常。

(二) 项目经理

  1. 项目经理为项目整体目标达成负责,预见风险、控制风险,确保项目按计划高质量上线;

  2. 为项目筹备到项目试运行的生命周期全过程负责。

(三) 发布经理

  1. 发布经理为发布整体目标达成负责,确保发布按照正常节奏顺利进行,对影响发布的风险及时预警并且采取应对措施(包括不予发布或终止发布等)。

(四) 软件负责人

  1. 软件负责人为软件研发质量负责,负责变更代码的 code review;

  2. 软件负责人负责跟踪软件线上运行状况,及时跟进解决异常。

(五) 研发工程师

  1. 研发工程师按要求完成产品的设计、开发、测试及线上监控活动。

五、基本原则

(一) 变更设计需遵循变更三原则:可灰度、可监控、可应急。

1) 具备代码变更和配置项变更的灰度能力 (可考虑方式:beta 发布、蓝绿发布等)。

      2) 具备业务核心指标的监控能力(必要监控项:包括业务量级、业务成功率、业务响应时间、趋势、时效等)。

2) 具备应急处理能力:涉及业务关键链路节点的代码及配置变更具备 10 分钟内回滚能力;涉及资金处理的核心数据具备业务熔断、数据捞取、差错处理能力。

(二) 所有代码和配置项变更必须经过 code review,code review 必须覆盖本次变更版本和线上运行版本的差异。

(三) 涉及到数据存储内容、存储位置变更的,必须通知数据使用方。

(四) 所有对用户造成影响的变更(代码和配置项),需要经过验证确认才能发布。

1) 功能测试 100% 完成,有清晰合理的代码覆盖率分析。

      2) 不能带紧急和高等级的缺陷上线,中等级缺陷不能多于两个。

2) 安全测试 100% 完成,中级及以上的安全问题上线前必须修复。

(五) 不能直接用真实的业务数据进行测试,要经过脱敏处理后(不含涉密信息)方可使用。

(六) 开发测试环境与实际的生产环境必须分离

六、研发过程描述

(一) 需求分析

  1. 产品需求文档(以下简称 “PRD”)。产品经理编写 PRD 和交互稿(若有),内容至少应包含产品背景、产品功能描述、业务流程、潜在风险点和各类风险防控措施。

  2. 产品经理需要明确对数据质量的要求,给出相应的业务规则和校验规则。

  3. 产品经理进行业务需求风险自检,判断是否存在合规、反洗钱、风控、财务、结算、信息安全、应用安全等方面潜在风险点。对于不确定的风险点,可申请风险涉及评估专家协助参与评估并提供专业评估意见。

  4. 产品经理组织跟进风险评估意见的处理,并落实在 PRD 中。

  5. 产品经理组织相关人员进行需求评审,需求评审遵循评审规范。

(二) 分析设计

  1. 需求评审通过后由研发工程师编写系分和视觉稿(若有),内容需明确需求覆盖范围、配合方、时序图、功能设计、数据库设计、性能设计、风险评估、运维支撑等内容。

  2. 软件变更设计要符合资损防控规范。

  3. 涉及新建系统、应用、部署单元的,需遵循应用管理规范。

  4. 涉及新增外部接口的,需遵循《外部接口管理规范》。

  5. 由项目经理组织相关人员进行系分评审,系分评审遵循评审规范。

(三) 研发实现

  1. 研发工程师需遵照需求范围和分析设计,编写代码。代码要符合集团编码规范等规范。

  2. 研发工程师完成产品功能、模块之间的自测联调,需要关注如下两点:

  1. 涉及到非项目范围内的接口交互,必须要与对方联调拿到联调结果。

  2. 涉及到外部机构或者银行的接口交互,必须要与对方系统进行真实联调。

  1. 研发过程中涉及若有数据和业务规则变更,研发工程师需分析对下游的影响,并传递到下游的数据加工负责人。

(四) 测试验收

  1. 在测试启动之前研发工程师应根据需求范围和分析设计,编写测试分析文档,明确测试方案用以指导测试要点和用例编写工作。

  2. 由项目经理组织安排测试分析文档评审,评审过程遵循评审规范。

  3. 研发工程师负责描述详细的测试场景,编写测试用例。测试用例需要覆盖测试分析中提到的所有场景,用例本身需要明确前置条件,主体操作步骤清晰明确可行,用例检查点必须完整清晰明确,包括但不限于页面检查、日志检查、DB 数据检查等。联调测试用例与外部明确清楚范围、操作及检查点,关键检查点包括资金流、金额、金额单位、额度等。

  4. 研发工程师向安全工程师申请做安全测试,安全工程师的测试报告里发现的高、中等级问题必须解决,若有特殊原因不能解决,必须经过测试主管审批。

  5. 由项目经理组织安排测试用例评审,评审过程遵循评审规范。

  6. 测试过程中,应做好测试记录,详细记录发现的缺陷,及时跟踪解决。

(五) 发布上线

  1. 研发工程师编写发布计划,内容包括:发布顺序,执行时间,检查点(系统检查点、配置项等),灰度(beta)发布方案,风险分析及应对预案,应急方案,监控配置方案,资金核对方案等。

  2. 软件发布上线分为预发验证、灰度(beta)发布、线上发布等过程。

  3. 预发验证,由产品经理组织相关方对产品进行业务验收,给出验收结论是否通过。若不通过,研发工程师给予解决直至产品符合业务需求。研发工程师通过监控系统日志、数据等手段,确保软件正常,过程中发现的问题有记录并有处理结论。涉及风控事件接入的需联系大安全产品经理进行预发布确认。

  4. 灰度(beta)发布后,项目经理需组织项目组成员密切观察发布结果,一旦有问题通知发布经理决定是否要执行回滚方案。

  5. 发布经理按照发布计划进行发布,发布过程需遵循技术变更管理规范。

(六) 线上监控

  1. 产品上线后必须具备可监控能力,接入监控平台,实现产品的持续监控。

  2. 产品经理和软件负责人需要实时监控生产环境情况,及时处理异常情况。

相关推荐

  1. 研发管理规范

    2024-04-24 18:04:01       29 阅读
  2. 规范:需求管理规范

    2024-04-24 18:04:01       23 阅读
  3. 缺陷管理规范要求)

    2024-04-24 18:04:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-24 18:04:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-24 18:04:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-24 18:04:01       82 阅读
  4. Python语言-面向对象

    2024-04-24 18:04:01       91 阅读

热门阅读

  1. 红帽系统Redhat忘记密码,重置root密码

    2024-04-24 18:04:01       31 阅读
  2. 神经网络与深度学习(四)

    2024-04-24 18:04:01       25 阅读
  3. ORA-25153:临时表空间为空

    2024-04-24 18:04:01       30 阅读
  4. 程序员的压力缓解之道:寻找工作与生活的平衡

    2024-04-24 18:04:01       32 阅读
  5. 孩子如何才能学好Scratch

    2024-04-24 18:04:01       26 阅读
  6. OpenResty实现限流的几种方式

    2024-04-24 18:04:01       28 阅读
  7. c++11引入的constexpr关键字

    2024-04-24 18:04:01       34 阅读
  8. Conda的使用:创建一个虚拟环境

    2024-04-24 18:04:01       31 阅读
  9. 偏差数据比对

    2024-04-24 18:04:01       33 阅读
  10. WordPress采集插件如何选择?哪里免费获取?

    2024-04-24 18:04:01       28 阅读
  11. Flask + Bootstrap vs Flask + React/Vue:初学者指南

    2024-04-24 18:04:01       31 阅读