研发工作法

223 阅读6分钟

前言

此为研发二部工作标准程序。

迭代为版本考核阶段、月为个人考核阶段、季度为部门考核阶段。

研发生命线

研发流水线

需求收集(产品)-》预测研发难度-》需求评审(产品)-》开发评审-》禅道任务拆分-》预测发版时间-》本机开发-》构建到78公有环境联调-》开发结束-》部署79测试环境-》开发冒烟用例自测-》代码互查-》自动测试(测试)-》测试全部用例(测试)-》部署线上集成环境(运维)-》复测(测试)-》发版测试报告(测试)-》发版部署(运维)-》监控(开发、运维)

开发时长

虽然整改研发流水线是比较长的,但其实开发占用最多的时间从《原型设计评审》到《代码互查》就已经结束。所以到了《代码互查》结束以后,其实是可以进入下个迭代的《原型设计评审》。采用这样的方式在保证质量的情况下,开发速度提升50%。注意的是测试过程中发现的bug不会给到开发额外工时处理,以此来要求开发提升质量

绩效考核

绩效考核目标是保证研发流水线正常运作

image.png

A >= 95 B >= 90 C >= 85 D >= 80 E < 80

预测研发难度

对产品给的未来要做的需求进行评级

低:可以马上着手的事情,改动较小,研发周期低于2天。

中:需要设计和思考的提案,需要有些准备工作,研发周期大于2天低于一周。

高:全新模块功能,改动大或者需要重构,需要大量的准备工作,研发周期时长大于一周到一个月。

编码前

技术预案

在正式开发前会有一些技术性的问题,需要提前做技术储备,如果图片水印、对接企业微信、推送消息。工作办法是在HYY_JK&RC中建立对应的任务,指定开发做好技术储备。

开发评审

在上个迭代的《代码互查》结束之后,产品会安排下个迭代的《设计评审》,了解下个迭代要做的需求及更详细的原型。开发需要清楚业务流程,并在讨论中反馈缺陷问题,复杂需求要反哺产品开发方案。

*前端有ui设计,会在这个阶段同步设计。

禅道任务拆分评工时

以上评审内容由产品在禅道建立需求,由开发对该需求进行拆掉到每一个功能建立任务,评定任务开发时长。

建需求的标准:一个需求是说明一件事情,事情可大可小,如公告功能、修改培训计划结束时间。需求要覆盖全涉及功能点,如增加签到距离配置,要把签到距离展现的地方放进需求。这样来避免开发测试不知道的情况。

建任务标准:具体到一个功能点一个人做。如web新增门店页面、后台新增门店接口。做到工作可量化。

评工时标准: 极小功能(字段、文字修改等)0.5小时左右; 小功能(修改原有功能)1小时左右; 中等功能(增加新功能、修改计算逻辑、修改报表)3小时左右; 大功能(增加新报表、复杂计算、缓存问题等)6小时左右; 超过7小时的任务需要拆分;

编码

编码环境

主干分支:原则是在主干上做新业务开发,分支上修复问题,具体任务安排根据禅道上任务bug关联的迭代进行。开发结束后打分支,分支发版。

开发环境:192.168.1.78是开发服务器,192.168.1.77是数据库。先在本机上开发,自测后提交svn,点击jenkins构建后供给大家用。

jenkins地址:http://192.168.1.100:8090/view/cos3_79/ 账号admin 密码admin

项目代码地址:svn://192.168.1.19/svn/Microservices/COS/3.0 账号需要向运维部申请

编码规范

编码规范地址:svn://192.168.1.19/svn/技术中心/编码规范 慧运营文档:svn://192.168.1.19/svn/Microservices/COS/3.0/规范与文档

不能死脑经局限于规范,要理解规范,并不是满足规范就能写出好代码。

总体原则:功能好用,代码易维护,耦合度低。

禅道完成任务

要求每天开发定量完成一日工作量的人(7.5工时),要下班前将禅道任务按时关闭,或编辑进度内容。

一个任务包含的工作:设计、文档、开发、自测、联调

接口文档

接口文档服务地址:http://192.168.2.183:3000

文档写法参考文档规范

测试

部署79测试环境

主干开发结束后,打好分支,分支名称用迭代结束日期命名,如api-20210430。修改79环境jenkins构建地址。

开发冒烟用例自测

开发结束后进行两天的全局测试,将自己做过相关性任务进行全局测试,用例通过率计入本月绩效考评。

有几个要求:

  1. 根据测试提供冒烟用例,完成测试,标记情况,备注异常(如:测试用例错误)。
  2. 要求前后端在79环境ty库进行,要从页面上新增修改数据,在页面上去检查数据是否现实正常。
  3. 发现问题及时处理或者反馈对应开发。

代码互查

自测结束后进行一天代码互查。

互查的目的:1. 发现一些隐藏于表现的问题 2. 相互学习代码技能

审查内容:bug、漏洞、功能缺失、性能问题、注释情况、命名情况、代码不合规

测试部门测试

这段时间是测试部门在运作,开发可能是已经进入下一个迭代的开发工作,这个阶段开发需要及时解决掉当天的bug。 测试会进行以下工作:验收冒烟测试结果、测试全部的用例、回归解决的bug、异常情况的测试、全量测试等。

部署线上集成环境、测试部门复测

研发需要提供升级内容(修改数据的脚本、代码地址版本号)。这个阶段的解决bug或者修改代码,要把版本号发给测试,由测试发给运维进行升级。

发版

发版前一天所有问题全部解决,特别情况由产品决定是否延期处理、延期发版。

准备好升级内容(升级数据、代码地址版本等)。

升级窗口时间是中午1点钟。

升级结束后开发检查服务器jar包更新时间、服务启动时间。

升级后测试会验证升级成果。

补丁版本

除了常规版本,会有在分支上进行临时升级版本。

开发要注意版本切换,一般是建议启动两个项目的方式编码。

测试按增量测试的方式,只测试开发提交的代码内容。

监控

见:doc.weixin.qq.com/txdoc/word?…