当前位置:网站首页>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
边栏推荐
- Using rank to discuss the solution of linear equations / the positional relationship of three planes
- How to install govendor and open a project
- ACL 2022 | 基于最优传输的对比学习实现可解释的语义文本相似性
- 我想理财,不懂,有没有保本金的理财产品?
- 04.寻找两个正序数组的中位数
- Update 3dcat real time cloud rendering V2.1.2 release
- Jenkins' role based authorization strategy installation configuration
- Solution for win10 device management not recognizing gtx1080ti display device
- Summary of 80 domestic database operation documents (including tidb, Damon, opengauss, etc.)
- What are the free low code development platforms?
猜你喜欢

「数字安全」警惕 NFT的七大骗局

Outlook 教程,如何在 Outlook 中搜索日历项?

Rebudget: balance efficiency and fairness in market-based multi-core resource allocation by reallocating the budget at run time

【目标检测】TPH-YOLOv5:基于transformer的改进yolov5的无人机目标检测

Rainbow plug-in extension: monitor MySQL based on MySQL exporter

In the eyes of 100 users, there are 100 QQS

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

Replicate swin on Huawei ascend910_ transformer

超越 ConvNeXt、RepLKNet | 看 51×51 卷积核如何破万卷!

mindoc制作思维导图
随机推荐
Update 3dcat real time cloud rendering V2.1.2 release
Is there a method in PostgreSQL that only compiles statements but does not execute them?
Exception handling mechanism topic 1
免费的低代码开发平台有哪些?
Jenkins' role based authorization strategy installation configuration
咨询下flink sql-client怎么处理DDL后,fink sql里面映射表加字段以及JOb?
多租户软件开发架构
用秩讨论线性方程组的解/三个平面的位置关系
Automatic reply of wechat official account development message
我们被一个 kong 的性能 bug 折腾了一个通宵
win10如何删除微软拼音输入法
C # introductory basic tutorial
数据分析与隐私安全成 Web3.0 成败关键因素,企业如何布局?
Rosen's QT journey 99 QML table control tableview
PostgreSQL passwords are case sensitive. Is there parameter control?
Enumeration classes and magic values
8 年产品经验,我总结了这些持续高效研发实践经验 · 研发篇
Text translation software - text batch translation converter free of charge
EasyUI drop-down box, add and put on and off shelves of products
【南京航空航天大学】考研初试复试资料分享