当前位置:网站首页>With 8 years of product experience, I have summarized these practical experience of continuous and efficient research and development
With 8 years of product experience, I have summarized these practical experience of continuous and efficient research and development
2022-07-25 17:17:00 【InfoQ】

- In addition to code development and project management information entry , Try to reduce the manual operation of login platform ;
- Automatic accurate message push , With the help of the capabilities of the end , Let users view R & D and project management information by local asynchronous subscription .
- Through public cloud or enterprise level big data 、AI Docking with the underlying cloud computing capabilities , Let R & D efficiency measure 、 The cost of monitoring data statistics has become lower ;
- Through function calculation, users' flexible statistical demands for R & D efficiency and monitoring data are met in a low-cost way ;
- Through low code development platform + DevOps The bottom of the platform Tracing、Logs、Metrics + Function calculation + Data visualization , Allow users to quickly build a monitoring and operation and maintenance system based on industry best practices , Templates can be copied to users in other industries .
Backbone based development mode

- New code is integrated into the trunk every day , Complete continuous integration every day 、 Keep testing
- Available for release at any time , Features can be urgently released online on demand
- Product features can be verified quickly , Reduce trial and error costs
- High requirements for project collaboration : Task split ( Refer to the suggestion of task granularity in iterative event coordination , Try to split it into 1-2 God ) Need a small enough drive mr smaller , Thus, it can support the rapid realization of verification and trial and error of product features from the perspective of project management ;
- High requirements for R & D Quality : Fast feature development , We cannot sacrifice quality fast , So in this fast premise , The requirements for the combined feature code will become higher , The key here is that development needs to ensure code quality , Don't think about handing over quality to the testing team ( Build automated processes against rules 、 standard 、 The specification is automatically checked ; unit testing ; Database specification and so on ).
Code development based on trunk branches
Feature Who is the source branch of ?
The overall process from code development to testing

Standard configuration based on trunk branch development



The specific process
- R & D students in the task details , Select apply and click Create workflow . After the workflow is created, the corresponding development branch will be automatically created ( Such as feature/XXXX, among XXXX Represents characteristics ID);
- Carry out self-test of temporary consolidation and deployment of the system with the same application, the same environment and different characteristics . adopt Erda The platform provides the function of temporary merging of systems with the same application and different feature branches in the development environment , Let all feature developers deploy and smoke test together , Greatly reduce the pressure on environmental resources without affecting efficiency ;
- After R & D self-test , Workflow can be initiated with one click MR Merge request , Research and development TL Related branches of merge request Code Review after ( Because the relationship between events and branches in task workflow is bound ,Code Review You can clearly know the specific task content of this consolidation request ), The feature branch is automatically merged into the trunk branch , Trunk branches pass through timing / Code change triggers for integrated deployment + test , So far, the feature task status of the R & D students will also be completed automatically .( The above features are under development , At present, it is initiated manually MR Please give priority to ).
Daily integration deployment based on trunk branches
Daily continuous testing based on trunk branches
automated testing
- Use case management

- Automated test execution
- Automated test result notification

Manual function test
- Manual functional test coverage is required for iterative new functions , It is mainly about the targeted testing of the requirements of the current iteration by the testing team ;
- The test team is based on requirements 、 Determine the general content added every day based on the status of the task (erda The test team is even asked to pay attention to the development submission MR/PR, The requirements for the test team are higher ).
Product management strategy based on trunk branch
Semantic version management
- alpha: Just pass the R & D self-test , Untested version , The unstable version
- beta: The phased test passed , Relatively stable version
- stable: After systematic testing , Stable release
The relationship between version and branch


Version and branch configuration
- R & D students are feature After development on the branch , And complete self-test in the development environment , Code merge to trunk branch (Master);
- Main branches (Master) Execute the pipeline through the daily timing trigger , It will automatically build and generate 【 Version number + alpha + Time stamp 】 The product of ;
- All feature codes in the iterative version are merged into the trunk branch (Master), And after the automatic test cases and the manual function phased test of the test students , Test students will branch from the trunk (Master) Cut out the iterative version of Release Branch ( Branch name :Release/ Version number -beta+ Increasing numbers ), The frequency of time depends on the release frequency of the team (Erda The release frequency of the team is weekly , So the time frequency here is weekly );
- When the iteration version reaches a certain period , Generally, a formal version of the product will be released ( This version can be the previous iteration version , It can also be composed of multiple iterative versions , This depends on the release plan of the product ,Erda A big product Rc Version by 4 An iterative beta The features of the version consist of ), Test students will branch from the trunk (Master) Cut out Release Branch ( Branch name :Release/ Version number ) Conduct a comprehensive test ;
- Students pass the test Release/ The version number branch pipeline builds the beta products , After passing the test verification , Test students will manually put this beta The version artifact is switched to stable edition , And maintain the products in the products ChangeLog And product labels , Finally released to Gallery The provided delivery team downloads and uses .

Release the train
Concepts and rules
- Scheduled departure . Train inequality , Reject untested new features ;
- Only release high-quality features . Only the features that pass the test are allowed to get on , Even when the R & D has completed the relevant features and it is required to go online , We must also resolutely refuse ;
- Release trains frequently , The feature split is small enough . Faster and smaller releases can improve the quality of products 、 A lower cost , Frequent releases make the features of each release smaller , When problems arise, positioning and solving will also become more clear and efficient , Of course, the frequency of release needs to be determined according to the overall quality of the team's R & D and management , Not blindly pursuing speed ;
- There is no perfect release in the world , Clear key performance indicators are needed to decide the release of controversial features .
Erda Team practice

Summary
边栏推荐
- Rainbow plug-in extension: monitor MySQL based on MySQL exporter
- Wu Enda logistic regression 2
- [OBS] frame loss and frame priority before transmission
- Bo Yun container cloud and Devops platform won the trusted cloud "technology best practice Award"
- 大型仿人机器人的技术难点和应用情况
- 2022 latest Beijing Construction welder (construction special operation) simulation question bank and answer analysis
- 第三章、数据类型和变量
- 咨询下flink sql-client怎么处理DDL后,fink sql里面映射表加字段以及JOb?
- [redis] redis installation
- How to deploy applications on IPFs using 4everland cli
猜你喜欢

2022年最新北京建筑施工焊工(建筑特种作业)模拟题库及答案解析

气数已尽!运营 23 年,昔日“国内第一大电商网站”黄了。。。

Budget report ppt

博云容器云、DevOps平台斩获可信云“技术最佳实践奖”
![[target detection] yolov5 Runtong visdrone data set](/img/a6/118e6bbeb254f9d1afd1406d1b0089.png)
[target detection] yolov5 Runtong visdrone data set

【目标检测】YOLOv5跑通VisDrone数据集

What is the monthly salary of 10000 in China? The answer reveals the cruel truth of income

用秩讨论线性方程组的解/三个平面的位置关系

搜狗批量推送软件-搜狗批量推送工具【2022最新】

Text translation software - text batch translation converter free of charge
随机推荐
Rosen's QT journey 99 QML table control tableview
无聊发文吐槽工作生活
MySQL linked table query, common functions, aggregate functions
PostgreSQL里有只编译语句但不执行的方法吗?
爬虫框架-crawler
【PHP伪协议】源码读取、文件读写、任意php命令执行
方正期货网上开户靠谱吗,开户安全吗?
Chapter III data types and variables
Wu Enda logistic regression 2
EasyUI drop-down box, add and put on and off shelves of products
接口自动化测试Postman+Newman+Jenkins
Chapter 4: operators
ACL 2022 | 基于最优传输的对比学习实现可解释的语义文本相似性
Using rank to discuss the solution of linear equations / the positional relationship of three planes
失意的互联网人拼命叩开Web3大门
C#入门基础教程
Dynamic planning topic record
Technical difficulties and applications of large humanoid robots
华泰vip账户证券开户安全吗
更新|3DCAT实时云渲染 v2.1.2版本全新发布