The age of digital disruption demands both leaders and individuals to make faster decisions. Testers are often considered as a bottleneck for accelerated releases in Agile and DevOps despite the advancements in test automation. Speed in decision-making is now an expectation from each one of us without compromising the quality of our decision-making. As a software testing professional, you make hundreds of decisions every day. Your decisions not only determine your success, but also that of your team. Some decisions may even have an impact on the success of the overall organization 🤯
Life would be exhaustive if you had to deliberate about every decision you make. Our brains are only capable of processing a certain amount of information and complexity. As a result of these limitations, our brains naturally avoid overload of information by preferring solutions that require minimal mental effort. We consciously or unconsciously rely on mental shortcuts to reduce decision making time and arrive at a quick solution.
In this article, we will discuss how testers can make faster and effective decisions by leveraging a popular philosophical razor called Occam’s Razor.
What is a Philosophical Razor?
A philosophical razor is a mental shortcut or a rule of thumb that enables one to eliminate unlikely explanations for a problem. Philosophical razors are great critical thinking tools. These mental models assist us to cut out conclusions that have a lower probability of being correct so that we can better understand the problem at hand.
Remember that philosophical razors are fallible, they are mental models that allow you to arrive at a satisfactory solution quickly and with minimal effort.
In this article, we will discuss the application of Occam’s razor in software testing, test automation, and other software development practices.
The problem-solving principle of Occam’s razor is credited to a 14th-century philosopher called William of Ockham. Occam’s razor states that –
“Entities should not be multiplied without necessity”
In simpler terms
“The simplest explanation is often the correct one”
When confronted with multiple competing hypotheses for the same problem, choose the one which makes fewer assumptions. This rule of thumb can be applied in a wide range of situations where you want to make rapid decisions with minimal information in hand. Occam’s razor prefers simplicity over complexity until proven otherwise. Detectives, doctors, and even scientists have used this mental model in their respective fields to find solutions by cutting unnecessary assumptions 🕵️♂️
Let’s assume that you are testing an application that helps users to create email campaigns. You find a bug when you are testing your application.
The 3rd party email editor (library) that you use in your application stopped loading suddenly. There were no releases made from your team in the last 15 days. As a technical tester, you are proactive and want to investigate why this issue occurred before you report it. Which is a more likely explanation of why this issue was introduced? 🤔
- Explanation 1 – Someone might have hacked into your application and induced this bug.
- Explanation 2 – This issue might have occurred due to a sudden spike in traffic. We should conduct a performance test and try to replicate this issue.
- Explanation 3 – The 3rd party email editor released an update last night (You just checked their release notes) which might have caused the issue.
WHEN YOU HAVE ELIMINATED THE IMPOSSIBLE, WHATEVER REMAINS, HOWEVER IMPROBABLE, MUST BE THE TRUTH.
– SIR ARTHUR CONAN DOYLE
The KISS principle (Keep It Simple, Stupid) is a great example of Occam’s razor in action.
- Keep your test automation scripts as simple as possible. Ensure that your code is well structured and readable. Avoid complexity and over-engineering. This will make life easier for yourself and your colleagues. Remember that simplicity is not easy, it requires thorough planning and continuous improvements.
- When choosing test automation technologies and tools choose the ones that are simpler. Simpler tools allow you to create and maintain test suites with a minimal learning curve ✅
- Increased complexity will lead to increased maintenance and bugs. Community-powered platforms like TestProject will enable you to achieve easy test automation without hassles.
You can apply this principle to pretty much anything and everything:
- Project Management – Do not overcomplicate things, have just enough processes. Empower teams to choose processes that are relevant and truly useful for them. Too many processes can cripple your team. Inspect on a regular basis and eliminate the processes that do not add value to your project. Agile and lean frameworks are designed to foster simplicity and innovation.
- Product Management – Minimize feature creep, adding excessive features may not always add value to your customers, but may rather make your product too complex and frustrating to use.
- UI Design – Focus on creating simple User Interfaces. Simplicity is subjective. Understand what simplicity means to your customers. Experiment with A/B testing, Multivariate testing to understand what really works for your end-users.
- API Documentation – Instead of bombarding users with too much information, create simple API docs that simple and easy to learn. Developers will use your API service only when your documentation is top notch and simple to get started with.
- Communication – Develop simplicity in your Communication. It is crucial to communicate the right things to the right people. For example: when communicating with business representatives, talk from a business standpoint. Do not go in-depth about the technical details. Understand your audience and speak their language.
Achieving simplicity is hard, but ultimately will lead you to success. Always opt for the simplest possible solution, architecture, design, process, technology, frameworks, tools, etc. Keep Occam’s Razor in mind next time you’re designing automated tests or finding the root cause of a bug. Occam’s razor is a vital tool that every tester should use to cut unsupported assumptions and achieve both quality and speed in their decision-making 🚀