Not to give away the answer too fast, but yes!
In many aspects of our lives, there is a trade-off between quality and cost. For example, I’m sure everyone has gone to a hairstylist that charges less and gives you a worse haircut than one that charges more. The difference in cost is the skill and knowledge that the higher charging one has. In that scenario, the cost and quality are directly related. The cost vs quality in software doesn’t work the same, though. Let’s examine why.
What is Quality?
The simplest definition of quality is how good the software is compared to other software. There are three basic aspects of quality in software:
- User Interface
- Ease of Expanding the Functionality
Each of these impacts whether the software is actually useful, but only two are inherently obvious to someone who does not work in software development. The user interface and the functionality are easy to assess, while the ease of expanding will not be noticed until later. So let’s look at how each of these plays a role in the quality of software.
The user interface is what you see. It is the visual appeal. Over time it has progressed to make it where the same offerings can be displayed on various screens. If you think back to the websites you saw in the late ’90s to early 2,000s, they were not very appealing. Today almost every site uses pictures and videos to help communicate the message they wish to communicate. Given that most user interfaces use very similar designs, you don’t see much difference in the user interface to define better quality. You might like one more than another, but that is easy to fix.
The functionality plays a much greater role in the quality of software. The functionality is focused on several aspects, including:
- How well does the software fit the business needs?
- How fast does the software complete the tasks it is doing?
- Does the software work well on mobile and desktop?
I would expect any software you pay for to meet the business needs, but how it meets the needs matters. For example, you have two options. The first software will follow your normal business process but reduce the number of steps that require a human to complete a task. The second piece of software reduces the number of steps but makes humans learn a new process. Which one would you prefer for your business?
I know I’d prefer one that doesn’t force people to learn a new process because that could cause resistance to utilising the software.
When talking about how fast the software completes the process, speed matters. The time it takes a website to load directly impacts whether people interact with it or not. Desktops tend to load faster because they are connected to the internet, while mobile devices loading speeds can vary dramatically based on location and whether they are using WiFi. Google considers a good load speed as less than 3 seconds. Anything more, and the user is likely to leave. Users really expect an instantaneous load, which you really want to be trying to achieve. If your software is meant to be used on mobile devices, you should test how fast they perform without WiFi. There is a nominal loss of traffic as long as pages load in under 3 seconds and about 1 in 3 leave if it takes longer than 3 seconds, making faster software important You could potentially see 50% more usage of your software depending on how fast you can get it to operate.
The speed is impacted by the quality of the code and the hardware used. The quality of the code includes aspects like how databases are set up and indexed, whether the developer removed unnecessary code like the 50 fonts you don’t use in your applications, how many requests for parts of the page are made, and much more. In addition, the hardware used impacts the software functionality because the memory and processors need to be large enough to handle all requests at your peak without being oversized.
As you can see, functionality impacts quality far more than the user interface because it is subject to more fluctuations. Still, the ease of expanding the software is even more important in evaluating quality.
Ease of Adding New Features.
The ease of adding more features is by far the biggest thing that impacts the quality of software. It isn’t readily visible to developers except for the prices people charge to add more to the software. The reason it makes such a difference is high-quality software is easily understood. Think about different parts of the user interface. Behind each part is code. In well-made software, each part is a separate section of code. It is labelled where it is easy to understand; for instance, high-quality software will name the section for the footer “footer,” while lower quality software might identify it as “F.” It is a small difference. Still, the time can add up quickly when you add up the time it takes to figure out what each poorly named aspect is and how it interacts with other poorly named components. Another way you’ll be able to tell the quality of the code is the quality of documentation. If you have nothing to refer to in documentation and poorly labelled components, it is going to be a developers nightmare to map out everything, document it, then figure out how to connect the new functionality into the existing software. Quality software can reduce the time spent integrating new features into existing software by nearly 50%. When you are working on a time and materials contract, which is how most software developers operate for ongoing projects, the savings can be tremendous over the business’s life.
As you can see, the most obvious parts of quality software are not visible without looking behind the functionality and seeing how the code, hardware, and development actually occurs. If you’d like us to help you figure out how to make your software faster, leaner, and easier to use, check out our Software Architecture Design page or email us to schedule a free consultation.