What is agility in project management? Agility is primarily about more value at an earlier stage. So what is this value? For the customer, it will be working software, in line with their business needs. The essence of agility is to deliver working functionalities from the beginning of the project and on a regular basis. Scrum is a set of tools and principles that support iterative delivery of increments, that is, working pieces of software. The key point here is that it has to work – technically and functionally, and therefore has to present appropriate, high quality.
Quality in agile project management
The Agile Manifesto, on which Scrum is based, emphasizes the focus on the customer and their needs, close cooperation and effective, continuous communication between the parties, as well as adaptation to changing requirements. Quality is understood here as the process of arriving at a good, working product that meets the customer’s needs. Striving for and achieving high quality is basically the foundation of Agile methodologies.
How does scrum support the high quality of our products?
Iterative, regular delivery of working functionalities
Frequent feedback from the customer
Iterative, regular delivery and presentation of working functionalities to the ordering party maximizes the opportunity to receive feedback and opinions about the results of work. It is extremely valuable from the contractor’s point of view because it is an element of the control process – it sets the direction for further work, allows for a regular revision of priorities and enables the ongoing identification of errors and problems.
Incremental software delivery
Enables control over individual product releases, and, above all, their improvement and adaptation to the changing customer requirements. This revision concerns both the versions that have already been delivered and those that the customer is yet to receive.
Tests as a fixed element of the iterative cycle
A new sprint starts immediately after the previous one ends; it is a fixed, defined work session. Similarly with tests, they are a constant and indispensable element of the software development process. They start before the first working version of the system is delivered to the client, and end after the final, fixed patch is delivered, at the very end of the project.
People responsible for the product quality
Who is actually responsible for the product quality, both on the supplier’s and the ordering party’s side? The entire project team is responsible for the quality of the product on the supplier’s side. At VSoft, apart from the Scrum Team (i.e. developers, architects and testers; Product Owner and Scrum Master), there are also analysts, project manager and dedicated employees from the Implementation Department. Each of these people has a specific role in the quality control process. The client also commits to delegating a team responsible for working on the project. The optimal project team on the customer’s side consists of people who are:
- competent and disciplined (with appropriate level of expertise),
- committed (availability),
- empowered (authorized to make binding decisions).
Three levels of quality
The parties involved in the project, in addition to the common understanding of the concept of product quality, also have their own guidelines that determine the final satisfaction. The cyclical review of increments, in addition to the general quality principles, also takes into account the individual preferences of the project participants, which constitute another additional filter.
- quality defined by VSoft’s Implementation Department – the Implementation Department is an indirect, internal recipient of the increment, implements it on one of the test environments on our side, conducts a security audit of the release, and also ensures that the version installation instructions are up-to-date,
- quality defined by the design team on VSoft’s side – based on the constant product reviews by analysts, Product Owner, developers, testers and architects. The Definition of Done established by the team is extremely helpful in this process. It is a set of criteria which a requirement must meet in order to be considered complete,
- quality defined by the customer – the customer, as the final buyer, accepts and receives individual increments in order to finally accept the whole product. Acceptance depends on the success of the tests which they carry out periodically.
Flexibility, i.e. adaptation to changes during the project
Product backlog
Is an ever-shifting, structured list of what is needed to develop a product. The items on this list are ordered according to their degree of clarity, specification and priority – from the most specific at the top to the least detailed at the bottom. The product backlog is the basis for project work, its elements are the subject of implementation, so they must be properly described so that the team has no doubts what to do within each of them. A detailed description of the backlog items, including specific acceptance criteria, and often also test cases, undoubtedly helps to maintain the appropriate quality. Similarly to the continuous work of the backlog – its revision, defining and supplementing its elements, changing their order, as well as adding and removing items according to current needs.
Is Scrum a guarantee of high quality?
The foundation of Scrum is the pursuit and achievement of high quality. It offers a number of tools supporting the care for the product quality. In fact, each of its pillars, i.e. inspection, adaptation and transparency, refers to customer satisfaction and meeting the customer needs. Each of its events (Sprint, Sprint Planning, Daily Scrum, Sprint Review, Retrospective) is a formal occasion to review and adjust the artifacts, i.e. the backlog (product and sprint) and increment. Regular delivery of working system components, in short time intervals, also reduces the possibility of the technological debt appearing and building up. However, it is worth noting here that a number of quality management tools provided by Scrum will not bring the expected results without close cooperation between the parties and effective communication. They are the basis for the success of any project.