Quality driven software development
01 — Problem:
Quality of digital services has a direct impact on company’s brand image. Bad quality leads easily to bad customer experience and this naturally has a negative brand impact.
New, shiny, software with top of the range features is by no means enough in the demanding market of 2022. Having most features is also not a measurement for success. Quality is the measurement of success, period.
Having great quality in the most important channels is not enough either. The customer experience and quality needs to be the same on all channels in an omni-channel world.
02 — Solution:
VALA is one of the largest quality focused companies in Finland. Working with VALA, your organization not only has the best talent available, but also access to VALA’s quality path. If for some reason, you would not require all the quality related services in our quality path, we also offer “only” software development services for your needs.
In the heart of VALA’s quality path, quality is defined as one of the core values of the organization. Customer experience is everyone’s responsibility in the organization and as we all know, quality correlates directly to customer experience.
VALA’s software developers bring a healthy dose of quality thinking and quality driven software development culture.
03 — In practise:
We believe that in quality driven development, it is important to begin early, maintain a systematic approach to quality, take ownership of quality and remember the importance of creativity.
Software quality and quality in general is not something that happens at one point in time. It is much more than tools, methods and bug counts. Quality is a mindset, it’s key to digital transformation, and thus everyone in your entire company should be involved in.
In practise, quality driven development at VALA is based on four cornerstones. Read more about these below.
VALA’s quality driven software development is built on 4 cornerstones
Specification
Why is specification important? The requirement is the agreement between stakeholders and the developers. What should be created and how much resources (money and time) will it require to achieve.
Writing a good software specification can be challenging. Writing a quality specification requires a good understanding of business (or process), a good understanding of technology capabilities and limitations and a really good communication skills to be able to make understandable requirements for the project members as well as the non-technical decision makers.
Writing a good software specification can be challenging. Writing a quality specification requires a good understanding of business (or process), a good understanding of technology capabilities and limitations and a really good communication skills to be able to make understandable requirements for the project members as well as the non-technical decision makers.
In reality, this means that a third party does the review on the specifications to ensure each requirement is:
- understandable
- within the scope of the project
- feasible
- testable
- prioritized
Design
Software design turns requirements into blueprints. A good design requires creativity, experience, technical expertise and a commitment to quality. Why? If the quality fails at this stage the end result will not be satisfactory.
A good software design on the other hand leads to improved quality and productivity. An embedded quality control at the design phase ensures the design is feasible to implement. The quality control ensures also that there is a common understanding and an agreed design before the actual coding starts. The amount of time and resources spent on the design review is returned with multiples in the coding phase as less rework is needed.
Coding
Good, quality clean code does not happen randomly. It requires the developers to commit and be passionate about meeting the quality goals set by the project. There are several ways to code, but one should always pursue high quality standards while writing software code.
- Keep it simple
- not overdoing things
- not reinventing the wheel
- constant unit testing against the requirement
The above principles are a good starting point for quality standards for a developer. There are of course much more aspects out there like robustness, maintainability, usability and efficiency, but the above key principles should be in place in order to improve other areas of good quality programming.
Testing
The most misunderstood and usually most underrated part of software development. Usually the situation when defects are found is blamed on poor testing. In reality, the first 3 foundations have failed on their quality targets and testing is the last gate keeper to keep the poor quality out of customers and end-users.
Testing needs to be integrated into the software development process as a whole and testing needs to be pushed out of the end-of-the-cycle.
Successful testing is not finding the defects. It is finding the defects so that they can be resolved. This means creating test plans, creating a comprehensive test strategy, preparing the environments and data and making sure all procedures and results will be documented appropriately.