How to Reduce Software Defects

Meysam Valiolahi
2 min readMay 2, 2021
Note: It’s not a recipe for all teams, just read it to inspire, create your own culture and agreement base on your situation and weaknesses.

“Eating Your Own Dog Food”

The term is believed to have originated with Microsoft in the 1980s, although the terms true origins are debated. it means to use your own product or be a user of your product. this term is the root of all issues.

In many of the software testing books, it’s mentioned that “Programmer should not test his/her own program.” But we know it is not the main point, programmers should write valuable automation tests before releasing the code. Please take notice of valuable words, writing an automation test absolutely is not enough, the test should be valuable and cover all possible situations.

Implementation Bugs

Coding bugs often introduce after writing code to implement some features, and we can prevent them by review and or analysis or other techniques. Before shipping the program for testing a developer should at least pay attention to:

  1. Test the program using valid, invalid, and empty input.
  2. Test the program for validations and proper errors.
  3. Test Security.
  4. Test the error messages for being helpful.

And after all, once again we should write Valuable automation tests.

Specification Bugs

These bugs are introduced at the time of creating technical specifications or requirements for software. We should be careful before writing the specification and check all business rules with stakeholders. as we know coding is a human job and having some bugs is acceptable!

Absent Specification Bugs

These bugs are introduced in the software because workflows and use-cases related to them were not considered during the creation of specifications. We can refer to some cases like considering OWASP principles.

Specification Bugs and Absent Specification are related to the communication gap or poor planning, especially when teams work remotely. Open and clear communication can help a lot If every team member is encouraged to communicate about use-cases or scenarios that they think.

How can Software Bugs be Prevented?

  1. Motivate team members for open communication.
  2. Improve software quality using code review.
  3. Having User-Flow or prototype.
  4. Valuable tests.
  5. Having the right pipeline for CI/CD.
  6. Use Mock API for early detection of bad flows in the hand of the front-end team.
  7. Having the right tool for application monitoring and error tracking.
  8. Learning and growth in soft and hard skills.

Below links that are so helpful if you are interested.

https://www.forbes.com/sites/michaeldefranco/2014/03/04/not-eating-your-own-dog-food-you-probably-should-be-2/?sh=26422584692e

https://airbrake.io/blog/software-development/techniques-for-preventing-software-bugs

--

--