In the previous article, we mentioned that DevOps is a culture that values communication and collaboration between "software developers (Dev)" and "operations (Ops)". The methodology used is different from the traditional waterfall model, spiral model and other concepts, its core is "agile" which results in automation.
More enterprises expect to achieve enhanced delivery efficiency through the introduction of DevOps model, in order to improve customer satisfaction and create more business value. But at the implementation level, how to successfully practice DevOps is still a difficult problem. The research and development collaborative management platform (MOne) independently developed by Sunline is a one-stop solution covering the whole process from requirements, design, development, construction, testing, release to deployment. Through the platform's method of standard processes precipitation and agile practices, it forms effective empowerment at all stages of the development process via DevOps.
This article will focus on sharing how the Sunline R&D collaborative management platform helps the R&D team achieve a whole new level of digital collaboration in the "agile iteration" stage of DevOps.
The whole process of agile iteration
The implementation process of agile iteration includes: product team planning the goal → development needs dismantling, scheduling development → testing, testers perform iteration scheduling, development, testing → agile coaches track and feedback the iteration, in this process, the scientific division of resources and excellent collaboration between different teams in China are the keys to truly realizing "agile".
· Product team
As a bridge between the analysis of user needs and introduction of research and development needs, it is necessary to define the key features of the product according to the analysis of user scenarios, so that the product made is more relevant to the user.
· Development team
As for product development, it is necessary to analyze and disassemble the research and development needs of the development team according to product characteristics to focus on the needs of solving pain points faced by users.
· Testing team
The testing team serve as a quality component in the product development process, from use case management, automated testing and other means to ensure the products delivered to users can withstand different scenarios or tests.
· Agile Coach
Agile coaches monitor the progress, identify possible risks and issues face during the process, and help the R&D team to continuously improve the efficiency during the agile SCRUM framework.
Agile iterative practice in different scenarios
Scenario 1: Identify user needs based on user scenarios
User scenario analysis is mainly provided to the product team for the deduction and analysis process. In the analysis process, there are two key pieces of information.
1. User activities: According to the user's operation and process, the user's operation process is deduced step by step. We call this process the analysis of user activities. This process is mainly to identify the key scenario behaviors on the user side.
2. Product capabilities: User activities need the characteristics of products (components) to support them. For example, the "click pipeline release" activity in user activities requires two products such as "dynamic orchestration pipeline" and "pipeline scheduling execution" of the MOne Pipeline component to support.
The user scenario analysis designer serves to carry the user's scenario analysis process, and finally identify what capabilities of the products (components) are required.
Scenario 2: Focus on the key features of a product
The "capability map" is a form of expression of the product (component) key features from the perspective of the user. The input source of the product's capability composed of the following two parts:
1. The ability to identify product components after deducing user activities through "user scenarios".
2. Plan which product components the system has in advance, and the key capabilities of the corresponding components.
When all product capabilities are aggregated, a "capability map" of the product can be formed.
Through the "capability map", we can better manage and track product capabilities.
Management of product capabilities based on R&D requirements: Product capabilities represent the output of product characteristics, and capabilities can only be released after the R&D tasks are decomposed and completed. Through the decomposition ability, we form a "to-do list" of R&D concern downwards, so as to realize the connection between product capabilities, and R&D needs. The research and development to-do items can be integrated into rounds of sprints through agile iterations. During the sprint process, the quarterly R&D requirements will be automatically fed back to the progress of product capabilities to achieve synchronous update of capability progress. Finally, when all R&D requirements under the capabilities are closed, it means the upper-level capability development is completed.
Tracking of product capability progress: You can understand the progress of each product component capability through the product progress tracking trend chart. The progress report of product capabilities will be summarized on a weekly basis to facilitate management to understand the development of the product.
Scenario 3: Collaborative mode for multiplayer development
The "user scenario" of scenario 1 mainly identifies product capabilities through user activities, and the "product capability map" of scenario 2 is to better manage and track product capabilities. The above two scenarios are mainly for product team. When broken down into R&D tasks through capabilities, a “to-do list” of R&D concerns is formed.
To-do item pool: By planning an iteration every 2 to 3 weeks, the to-do items are incorporated into the iteration for development.
Visualized iterative Kanban board: Through the visual Kanban board, it is more convenient for the team to align the progress of iterative tasks and predict risks.
Iterative Kanban board can be divided into different columns according to the process. When developers process tasks, they will move the task cards on the Kanban board to realize the state flow process. When all the cards are in one column, it means that the iteration tasks of this round are completed and the iteration can be closed.
In addition, on the Kanban cards, important and critical tasks can be marked and identified through the "label method", and "deferred signs" are added to remind members to deal with them on time to avoid delays.
Scenario 4: Driven Development Mode of Feature Branch
The feature branch-driven development mode is mainly to speed up the process of software code development to testing deliverables. We perform offline code coding by checking out the code branch corresponding to the R&D requirements. After the code development is completed, if you want to quickly perform functional verification, you can initiate a merge application process, which will automatically trigger the branch release process in:
1. CI construction pipeline, which performs source code construction, packaging, quality scanning and other processes, and uploads products to the corresponding product library.
2. CD release pipeline which automatically trigger the product package to be pulled and deployed from the product library to realize deployment in different environments.
When deployed in different environments, it can be reviewed through development self-test, tester testing, and then to the pre-release environment of the product. After the development of the entire environment is completed, the branch code is automatically merged into the base (trunk) code.
The mode of feature branch development connects multiple roles such as development, testing, and product, which can more quickly break through the barriers of departmental collaboration and speed up the rapid software delivery process.
Through the above four scenarios, we describe the practice of Sunline's concepts and methods in the "agile iteration" stage of DevOps. In the next article, we will focus on the practice of the "continuous testing" phase. Stay tuned!