What is Quality Software?

What is Quality Software?

If you are in software development, you probably know the cartoon strip of the tire swing. We all look at it and smile knowingly and then go about our days, however, I think it's worth reflecting on this and specifically about what we set out to build.

No alt text provided for this image

This particular picture in the cartoon I believe it actually the root of a lot of trouble when it comes to software development. However, I don't think the customer is the only one to blame for this. Many of the bells and whistles that are added to initial requirements, came from developers prompting the customer with "you know what else we can do for you". And what you end up getting, is a list of requirements with no focus on the core.

What is the Core of a software product?

When talking about the core of the software, I believe that software is built to address a "Business Problem" and that needs to be the focus of any software being developed. The business does not care about "cool features", the "latest development stack" or how feature-rich the software is nearly as much as they care about having their problem solved.

We need to be careful to have pet preference for our focus when developing software and double down on making sure we solve the business problem first and foremost with as little distraction as possible.

Why is it hard to focus on the core?

I think the main reason is that generally, the core isn't "sexy". Which results in people's attention drifting to more fun ways of solving the problem.

When you are creating a new feature in your app/system, don't build a flimsy shovel when a good stick will do just fine. Once you see how people use the stick you might realise that a fork was a better option anyway. You may have heard the "*Done is better than perfect" catchphrase when building a new solution. I always feel like I need to put a * in front of that statement because "perfect" refers to the business problem being solved, not the quality of the solution.

Diagram showing how some parts of a solution can be built with a plan to depricate in order to more quickly address a business problem

For example, you can generally create a solution to solve a problem in a "less than ideal"/"simpler"/"less cool" way (yellow circle) while still solving/improving the greatest pain points of the Business Problem. The loss of time caused by some planned deprecation is probably less than the cost of the problem it's solving by a fair bit (worth making sure of this tho). A word of warning: the code you plan to deprecate might live longer than you think.

So what is quality software then?

Quality software is software that first and foremost reliably solves a business problem. It should also be maintainable, extendable, and perform at an acceptable level of speed. It is well tested and ideally regression proofed via automated testing.


Would love to see how you get to the core business problem? As you've identified, the best software, is one that focuses on achieving that core goal effectively and efficiently. But the path, the story of the Tree Swing, is as much an anecdote on failure to ask questions, as it is developers trying to not be bored lol. :p Both contribute potential risks. So I was wondering, what tools, questions, excercises have you used/developed that allow you to get from potentially making a three seated tree swing, to "the reliably solves a business problem" answer? Would love to hear more about your processes, and how you might reduce both too little knowledge, and too much over shooting?

Like
Reply

Love it and great write up

Sharp outlook Danie. Enjoyed your post. I also haven't seen SCRUM become a silver bullet, although I do consider definition of Ready and definition of Done as key aspects to wholistically ensure quality beyond technical QA.

Nice words of wisdom Daniel Van Heerden. Too often this is overlooked.

To view or add a comment, sign in

More articles by Dan Van Heerden

  • Leading teams that do things properly

    I am a developer by trade, and one thing that gets hammered into you early on in your career is to program "safe"…

  • Splitting Software Delivery Teams

    If you have noticed that your team's performance has plateaued despite more people being added to the team, it might be…

    3 Comments
  • The advice I received on my way to leadership

    I've had many mentors on my way to becoming a leader starting as early as my parents. I have always believed that there…

    1 Comment
  • Senior IT Developer CV Tips

    In my last couple of roles, I have been involved in recruiting many Senior Developers for both smaller startups and…

    2 Comments

Others also viewed

Explore content categories