研发人员的工作流程和规范

2021-08-19
5分钟阅读时长

针对研发人员,具体包括客户端开发工程师、服务器端开发工程师、运维开发工程师等开发人员,指定的供参考的工作流程和规范。包括:需求分析、文档撰写、版本管理、代码测试、上线提测等。

需求分析

  1. 对于口头表述的或者描述不清楚、不明确、不完整的研发需求,可以拒绝进行开发。

  2. 认真仔细阅读研发需求,确保准确无歧义的理解需求。在没有完全理解需求的情况下,不要贸然进行开发,在没有熟悉需求所涉及到的现有代码时,也不要贸然开发。如果感觉不能完全很好的把握需求,可以寻求主程的帮助。

  3. 在完整理解需求,对涉及到的现有代码熟悉的情况下,再结合自身当前的研发任务,综合评估一个合适的研发任务的里程碑、时间点等,告知需求方。

文档撰写

  1. 按需求,完成详细设计说明文档(包含但不限于,数据模型设计、字段说明,交互流程设计,对现有系统的变更需要注意的地方,配置文件填写说明,上线操作注意项等),提交到项目版本库指定目录等;

  2. 按需求,后端完成接口设计说明文档,提交到项目版本库指定目录,便于前端开发查看了解;

  3. 可以利用自动化工具从代码注释中生成文档,但是,代码中的注释以及根据注释生成的部分文档,并不能完全替代主动编写的文档,而且,也需要单独存在的文档。所以,代码注释以及文档生成工具,都只是一种辅助手段,可以充分应用,但是,不能完全放弃主动编写文档。

  4. 文档的编写和更新,贯穿整个研发过程,在编码的过程中,要注意及时更新和修正文档。

版本管理

  1. 项目相关的所有文档和代码,都必须纳入版本管理中;

  2. 按要求,从主分支中创建特性分支用于开发当前的需求;

  3. 每日将当日所编写的代码及时推送到版本服务器端;

  4. 每日及时从主分支合并已经上线的代码到当前特性分支,出现冲突,及时解决,避免特性分支代码和线上代码差异过大,增加未来合并代码的难度,减少产生线上事故的风险。

  5. 每一个提交(commit)都要求认真地用简洁、清晰、明确的描述写好提交说明,说明本次提交修改或者添加的内容的概要介绍。

代码测试

  1. 按要求自主构建开发环境:编辑器、测试运行环境等,尽可能的使用测试驱动开发,编写测试代码,提高开发和测试的效率;

  2. 严格按代码规范要求编写代码,合理撰写注释,既不撰写重复冗长的注释,也不能省略注释;

  3. 若预估研发会有一天以上延误时,要提前告知需求提出人、项目组等,以便团队能根据情况进行研发计划调整,若未提前告知导致的研发进度的延误,研发人员将承担主要责任,从重扣除当季的绩效评分;

  4. 所编写代码,都要求进行自测,若提测过程中出现的程序代码语法错误等低级错误时,将从重扣除当季的绩效评分;

  5. 在提测前,按要求完成文档编写,项目组内,由主程负责在功能提测前完成相关开发文档的审核,技术横向部门会对各项目组的文档撰写情况进行月度抽查,发现未按要求撰写文档的项目组以及开发者个人,将影响季度绩效的评分。

  6. 在提测前,项目组内,由主程负责安排人员和时间对所需要进行提测的代码进行代码审查(Code Review),试用期(包含实习期)的程序员,由其辅导员负责进行代码审查。技术横向部门会不定期组织人员对各项目组的代码进行交叉审核。

上线提测

  1. 按项目组的提测计划(或者上线计划),在代码开发完成,并通过自测的情况下,才能申请提测。在未能充分准备好的情况下就盲目提测的,出现各种低级错误而导致未能通过提测而再次提测,导致上线进度延误的,提测的研发人员要承担一定的责任。当季绩效评分扣除一定分数。

  2. 所指提测,是指最大程度上模拟线上运行环境和线上真实数据(含配置数据等),按上线计划安排的,同一时间段只能有一个的,由 QA 部门独立执行的测试行为。

  3. 提测内容同时包含前后端的代码内容时,研发人员须完成前后端联调,做好客户端热更包的准备,预先完成客户端热更的测试,再进行整体提测。

  4. 开发和自测完成,研发人员通知需求负责人及项目统筹人进行需求确认,核实是否需求已经开发完成,并达到所需的要求。确认无误后,即可安排进行提测了。

  5. 由研发人员(可要求运维人员协助,如果仅是客户端内容提测,则由前端开发人员提测,否则,以后端开发人员为主进行提测)构建好提测环境、准备好测试包、热更包等,由项目统筹人员以邮件的形式,向 QA 组发出提审申请(注明:测试内容、提测环境的前后端版本号、游戏配置版本号、开发文档信息、代码审核负责人等信息),QA 组在当前项目没有提测任务的情况下,详细了解提测内容,熟悉提测环境,准备好测试用例,并最终执行测试行为,根据测试结果,以邮件的方式发送测试报告,告知各研发人员、项目组各主程、主管,并抄送必要的横向部门。

  6. 在上一个提测尚未完成时(QA 部门接收到提测申请,开始提测,未发出提测报告的情况下),研发人员不能进行主分支的代码合并行为,其他项目组成员也不能影响正在执行提测行为的测试环境(包括但不限于:前后端代码变动、游戏配置变动、测试服务器变动等),以确保提测行为的顺利进行。

  7. 收到提测报告后,负责当前提测的研发人员,须尽快修正所发现的问题,并尽快再次提测,直到 QA 部门测试人员认为当前状态已经达到上线状态时(含前后端代码、热更包或客户端、游戏配置等,分别以版本号的形式进行冻结),本次提测行为才算结束,释放出代码主分支以及提测环境等,供下一次提测使用。

  8. 一旦完成提测,即可进入上线部署阶段。上线部署须严格执行提测申请、测试最终报告等中包含的部署操作说明、操作顺序等,严格发布提测完成时所冻结的前后端代码、游戏配置。擅自发布未经提测的代码或游戏配置,或未遵循操作说明,造成线上事故的,部署发布人员须承担相应责任。

  9. 上线部署完成后,开启线上灰度测试,重要的热更以及重要的功能升级,都要求安排线上灰度测试,必要的情况下,甚至可以考虑停服更新。

  10. 上线部署完毕后,部署负责人以邮件形式发布上线公告,公告中写明上线部署的内容(前后端代码版本、热更包、客户端版本、游戏配置版本等),本次发布的更新内容(新功能、问题修复、功能调整或增强等),并提示 QA 及运营的人员进行线上跟测。

Avatar

JeffWu Author

数十年互联网从业经验,互联网全栈开发工程师,资深技术管理人员,资深游戏开发工程师。具有丰富的搭建海量数据处理系统的经验,大容量、高并发、高可靠线上运营系统的搭建和维护的丰富经验。
上一页 需求管理