前言
此为研发二部工作标准程序。
迭代为版本考核阶段、月为个人考核阶段、季度为部门考核阶段。
研发生命线
研发流水线
需求收集(产品)-》预测研发难度-》需求评审(产品)-》开发评审-》禅道任务拆分-》预测发版时间-》本机开发-》构建到78公有环境联调-》开发结束-》部署79测试环境-》开发冒烟用例自测-》代码互查-》自动测试(测试)-》测试全部用例(测试)-》部署线上集成环境(运维)-》复测(测试)-》发版测试报告(测试)-》发版部署(运维)-》监控(开发、运维)
开发时长
虽然整改研发流水线是比较长的,但其实开发占用最多的时间从《原型设计评审》到《代码互查》就已经结束。所以到了《代码互查》结束以后,其实是可以进入下个迭代的《原型设计评审》。采用这样的方式在保证质量的情况下,开发速度提升50%。注意的是测试过程中发现的bug不会给到开发额外工时处理,以此来要求开发提升质量
绩效考核
绩效考核目标是保证研发流水线正常运作
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构建地址。
开发冒烟用例自测
开发结束后进行两天的全局测试,将自己做过相关性任务进行全局测试,用例通过率计入本月绩效考评。
有几个要求:
- 根据测试提供冒烟用例,完成测试,标记情况,备注异常(如:测试用例错误)。
- 要求前后端在79环境ty库进行,要从页面上新增修改数据,在页面上去检查数据是否现实正常。
- 发现问题及时处理或者反馈对应开发。
代码互查
自测结束后进行一天代码互查。
互查的目的:1. 发现一些隐藏于表现的问题 2. 相互学习代码技能
审查内容:bug、漏洞、功能缺失、性能问题、注释情况、命名情况、代码不合规
测试部门测试
这段时间是测试部门在运作,开发可能是已经进入下一个迭代的开发工作,这个阶段开发需要及时解决掉当天的bug。 测试会进行以下工作:验收冒烟测试结果、测试全部的用例、回归解决的bug、异常情况的测试、全量测试等。
部署线上集成环境、测试部门复测
研发需要提供升级内容(修改数据的脚本、代码地址版本号)。这个阶段的解决bug或者修改代码,要把版本号发给测试,由测试发给运维进行升级。
发版
发版前一天所有问题全部解决,特别情况由产品决定是否延期处理、延期发版。
准备好升级内容(升级数据、代码地址版本等)。
升级窗口时间是中午1点钟。
升级结束后开发检查服务器jar包更新时间、服务启动时间。
升级后测试会验证升级成果。
补丁版本
除了常规版本,会有在分支上进行临时升级版本。
开发要注意版本切换,一般是建议启动两个项目的方式编码。
测试按增量测试的方式,只测试开发提交的代码内容。