This document describes the Scrum agile project management mode in CODING Project Collaboration.
Agile development covers the entire software process. Iterations and incremental software development are at its core. It enables developers to quickly release a runnable but imperfect version of a product into the market, improve the product in subsequent iterations based on user feedback, add one or more complete features that users can perceive, and thus approach the final form of the product.
Notably, agile development unites organizational culture, processes, and tools. All the three factors are equally important and none is dispensable. Without tools, agile development cannot "achieve a high speed"; without organizational culture, agile development team members cannot unite as one to achieve common goals.
Based on agile development theories, CODING is a tool that enables development teams to quickly get started with agile development and apply agile development practices with standardized processes and complete information and statistics.
The Scrum agile project management mode in CODING is suited to iteration-driven teams. Such teams expose potential issues faced through quick tests over short durations, and then continuously inspect and adapt their products, teams, and working environments, so as to efficiently and creatively deliver products with maximum value.
As demands for efficiency surge, the target audience for agile development has extended beyond IT personnel and become diversified. For example, operations teams can plan activities in CODING Project Collaboration, and product managers can develop projects by using agile development theories. CODING's Scrum agile project management mode enables all kinds of teams to apply Scrum practices. For more information, see An In-Depth Interpretation of the Latest Version of The Scrum Guide.
The Scrum agile project management mode provides iterations and issues (iterations/epics/user stories/requirements/bugs/tasks/sub-issues) as the major collaboration tools. A large task can be created as an epic, and then broken down into detailed requirements, tasks, and bugs. The key to agile collaboration is quickly releasing the most simplest version, which is effective yet imperfect. Each iteration includes five steps: planning, design, coding, testing, and review. In such a positive workflow where products are continuously improved with new functions, a more complete form of the product is approached through frequent releases and tracking feedback on the previous iteration.
The following figure illustrates the hierarchical relationships among complete workflows (iterations, epics, user stories, requirements, bugs, tasks, and sub-issues).
Iterations are the horizontal axis of agile development. Generally, they reflect the production process of a certain version, from requirement analysis to test completion. You can add requirements, tasks, and bugs to an iteration. An iteration goes through three phases in its lifecycle: "Not started", "In progress", and "Completed". In iteration-driven development, the entire development process is divided into a series of short iterations with a fixed duration (for example, two weeks).
Epics are the vertical axis of agile development. An epic divides large-scale work into detailed issues and generally takes several iterations to complete. The requirements and tasks under an agile epic can be flexibly adjusted based on the customer feedback and the team's development progress. An epic is broken down into requirements and tasks of smaller granularity, which are then added in iterations for completion.
The user story is the smallest unit of work in the agile framework. It describes the value brought by software to users and is an important measure for agile requirements. A good user story includes the following three elements:
A requirement refers to a software function that users need in order to solve a certain problem or achieve a certain goal. Requirements help team members track more detailed problems. Generally, a requirement can be completed in one iteration. In an iteration, any number of requirements may be completed.
Tasks refer to specific activities carried out to achieve a certain goal. Generally, a task can be completed in one iteration. In an iteration, any number of tasks may be completed. One task can be associated with other issues, or broken down into several sub-issues for flexible task assignment.
A bug is a failure to meet an initially defined business requirement. Bugs include any such defect except coding errors.
In the following section, we will use a common agile development workflow to demonstrate how to use the Scrum agile project management mode in CODING.
The first step of agile development is to confirm the personnel composition of an agile team. Generally, an agile team consists of three roles:
Conduct an iteration planning meeting, where all team members clarify and reach a consensus on the scope of the current iteration. The Scrum Master should add planned user stories, requirements, bugs, and all other issues to the iteration and set the start and end time, and then start the first iteration. As the iteration goes on, team members can adjust their work based on the iteration statistics collected. The biggest concern for the Scrum Master is ensuring that the iteration goes on as planned.
After the iteration starts, team members should conduct daily stand-up meetings to discuss and solve problems found in their work. Daily stand-up meetings must be as simple as possible and not last for more than half an hour. During the meetings, team members describe what they did yesterday, what to do today, and what problems they have found. If any problem occurs, relevant personnel need to work together to solve it.
In the requirement management module, the product owner can maintain and update the product backlog. User stories and requirements can be assigned by the product owner or claimed by developers. When drafting user stories and requirements, the product owner can specify key information such as priority, assignee, and due date. In addition, you can upload files and associate external resources.
Generally, each iteration will generate a version that can be released. Before officially deploying the version, testing must take place. Based on the functions, test engineers can write test cases, and then plan and execute test plans in CODING. During the execution of a test plan, some issues may be found, which we usually call bugs or defects. Except for coding errors, any other failure to meet an initially defined business requirement is a bug, which must be considered in the next iteration.
For more information, see Test Management.
Defects found in the test phase or after a version is officially released can be managed in the bug management module of CODING. They can be prioritized and then added to the next iteration. Depending on the specific defect, urgent bugs must be reported to product personnel and fixed as early as possible. On the contrary, bugs with a low priority can be fixed in subsequent iterations. In the bug management module, key indicators are comprehensively measured, such as the bug type, priority, module, and time at which a bug was identified. This enables test engineers to learn about the bug fixing progress in real time.
Regardless of whether all issues in an iteration have been completed, the iteration comes to an end at the preset end time. Before an iteration is actually completed, the product owner should assess all deliverables, review the issue completion status, and calculate the objective achievement rate. After all issues are reviewed, the Scrum Master can formally finish the iteration by clicking the Complete Iteration button.
At the end, team members should conduct a retrospective meeting to summarize what went well and shortcomings in the current iteration, and list the executable tasks for the next iteration, so as to improve the development efficiency of the entire team.
A series of short, quick iterations that are closely connected are at the core of agile development. During these iterations, product functions are verified and market feedback is continuously collected to deliver a product of value. In addition to choosing the appropriate processes and tools, organizational support is essential for effective agile practices. As teams may not face the exact same problems, agile practices are actually iterations as well. The problems summarized in every retrospective meeting will become invaluable experience for your team.