Is It The Gremlins Again? – The Golden Myth Of Bug Free Software

’99 little bugs in the code, Only 99 little bugs, Take one down, patch it around, Now you have 198 little bugs in the code’

 

Most of us will have experienced the irritating result of a software bug at some point in our lives, be it a frozen screen or having an application spontaneously close seemingly without reason. In fact we have almost been conditioned to anticipate glitches in new software, with some users of Apple products delaying the installation of new iOS updates until they know for sure that there will not be any adverse effects before doing so and gamers waiting for the inevitable patch release from developers before progressing too far in game.

Is Bug Free Software Actually Achievable?

When taken into consideration this begins to raise the question, is totally bug free software actually something that is achievable?

When you look at the theory you would think the answer to be yes, with a large number of Quality Assurance processes and techniques available to use, however this is a perfect example of the phrase ‘easier said than done’ in action as there are a number of reasons as to why software can become buggy.

Why is Bug Free Software so Hard to Achieve?

Reason one. The capability of available software is continuously advancing, never staying stationary for too long. As a direct result of this ongoing change, like a loaf of bread left out on the side, software can quickly become stale and undesirable. For example, owners of older Apple products like the iPhone 5 and 5c or the iPad 4 will soon be looking to invest in newer models, as following the release of iOS 11, they will no longer be able to receive software or security upgrades, gradually leaving the devices useless as apps begin to malfunction and security holes remain unresolved.

Reason two. If you take a look at something.com or isitchristmas.com, I’m sure you’ll agree that  the chances of the code behind these two webpages being bug free is relatively high, simply due to their obvious simplicity. However, neither of these sites will be capable of serving a business purpose other than maybe providing a few minutes of entertainment for a few members of staff. If you were to add a button that opens a new page, making the coding slightly more complex, you introduce a new potential source of bugs. Every time a system becomes more sophisticated the possibility of bugs appearing during its lifetime increases even more.

Reason three. Humans are far from perfect, we constantly make mistakes, so expecting the product of work completed by humans to be perfect is nothing short of foolish. Of course there are the Quality Assurance processes that were mentioned earlier in the article, but then when you think about it these are processes put in place and performed, on the whole, by human beings. Is it unreasonable to think that it is possible for a bug to slip through unnoticed?

If you consider the flip side of this coin, the users of all this software are only human too and as such will act in unpredictable ways. With complex software systems that perform all sorts of processes and contain a grand number of operation options, it can be quite a feat to try and predict all the possible orders of action that a user may make. Having to think about things like what would happen if they were to click this button more than once or what about if they press this key by accident, would certainly fry anybody’s brain and although automated tests can help to alleviate the possibility of bugs introduced by user action there is a very high chance of something going unnoticed.

These are just a few of the potential reasons as to why totally bug free software is so hard to achieve, others include:

  • Communication failure/miscommunication
  • Unrealistic development timeframes
  • Poor design logic
  • Poor coding practices
  • Buggy third party tools
  • Lack of skilled testing
  • Last minute changes
Conclusion

As this article shows the chances of accidentally introducing a bug into software systems is extremely high, but here at Zircon we take the quality of the software we produce very seriously. By following a well-planned software lifecycle, which includes appropriate levels of testingcode reviews, and using peer review of all stages, we aim to keep the number of bugs to a minimum. Moreover, should something drastic happen to slip through the net we follow our continuous improvement process to ensure that our processes are rigorous and future occurrences are reduced. From the clients perspective we offer a warranty to give them that extra level of reassurance.

More From The Blog

IR35, Here it Comes Again…

IR35, Here it Comes Again…

IR35, Here it Comes Again...In 2021 the reform to IR35 Off-Payroll rules is to be rolled out to the private sector. As before the reform will only affect companies that do not meet the following attributes: an annual turnover below £10m fewer than 50 employees or a...

Solving the Resource Conundrum

Solving the Resource Conundrum

Solving the Resource ConundrumPicture this. One minute all is fine and dandy, you have access to all the resources you could possibly need, then bam an unexpected challenge arises. Suddenly you find yourself lacking the capacity to meet the new need. What are your...

Quality – An Aid to Produce Consistent Rubbish

Quality – An Aid to Produce Consistent Rubbish

Quality - An Aid to Produce Consistent RubbishAnother year has passed, and myself and a colleague have hosted a BSI auditor for our annual ISO9001/TickITplus check-up, and in fact this was more than the regular check, in that it was our 3-year re-certification audit,...

The Hazards of Legacy Systems

The Hazards of Legacy Systems

The Hazards of Legacy SystemsBeing the owner of a software system with a dedicated customer base sounds like the kind of position one would like to find themselves in. At least until it gets superseded and you have to face dealing with a legacy system. Many developers...

How to Test Without Access to The Test Environment

How to Test Without Access to The Test Environment

How to Test Without Access to The Test EnvironmentIn many of our previous articles, we have expressed the importance of achieving a high standard of testing. Potentially blocking this achievement, several factors can come together to affect the quality of your...

The Technical Workshop – How To Make Them Work For You

The Technical Workshop – How To Make Them Work For You

The Technical Workshop - How To Make Them Work For YouAnyone experienced in product design will understand just how valuable a facilitated workshop can be. Bringing together a project's key stakeholders into a single space allows for the exploration of diverse...

Developing Software for Safety Related Systems

Developing Software for Safety Related Systems

Developing Software for Safety Related SystemsSoftware systems should always be both robust and reliable, however the moment you introduce a safety element, this need for reliability increases significantly. The level of safety required is governed by the severity and...

How to Choose an Outsourcing Partner

How to Choose an Outsourcing Partner

How to Choose an Outsourcing PartnerHaving recognised a need to outsource, and worked your way through the initial preparations, you are now in a strong position to seek out a suitable partner. Choosing an outsourcing partner is no trivial affair, so taking the time...