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. I’m sure everyone has gone to a hairstylist that charges less and gives you a worse hair cut 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 another 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. Let’s look at how each of these play 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 a variety of screens. If you think back to the websites you saw in the late 90’s 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 aren’t going to see much difference in the user interface to define which is 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 accomplishes meeting 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 requires 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 that 3 seconds. Anything more and the user is likely to leave. Users really expect an instantaneous load and that is what you really want to be trying to achieve. If your software is meant to be used on mobile devices, you should test to see 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. Hardware used impacts the software functionality because the memory and processors used 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, but the ease of expanding the software is even more important in evaluating quality.
Ease of Adding New Features.
Ease of adding more features is by far the biggest thing that impacts the quality of software. It isn’t readily visible to anyone besides developers except for in 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 labeled 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, but 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, the time can add up quickly. 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 labeled components, it is going to be a developers nightmare to map out everything, document it, then figure our 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 life of the business.
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.