All the things. An incredibly overused meme but one I love and cherish when it comes to quality assurance and software testing. However, firstly, let’s clarify something: when we say we ‘test all the things’, I’m not just referring to a feature, website or even product - although we should test as much as we can! I use the term ‘test’ metaphorically (and literally…) in that we should check, examine, investigate, analyse, inspect, scrutinise and apply any other test synonym to each work item, process and deliverable we can. Software ‘testing’ shouldn’t just be about the software; from the processes through to the deliverables, all elements of a project shape and contribute to the delivery and critically, to the quality of that delivery. We’re not just delivering a product, we deliver services, solutions, ideas, diligence and ultimately, ourselves. Everything we do influences the quality of our delivery and therefore impacts upon our reputation and success.
Where do we start to implement testing? It’s a tricky question. But let’s take the easy option and say ‘at the beginning’. In terms of delivering a project, this will be during conception of the solution. In the world of bespoke software applications, the conception may have already occurred to an extent with the client having identified an idea they want in order to enhance a part of their business. However, before we start to design the appropriate solution for what the business wants, we must establish if it also satisfies what the business actually needs. Long-term relationships with clients mean that we have got to know their businesses inside out, so we can instantly understand the value of a new idea, and sometimes suggest them before our clients do.
In the software world, wants and needs are called ‘requirements’, which sounds much more absolute than they really are! It is necessary to take a step back and analyse the requirements against the issues they are addressing. Have we identified everything we need in order to implement a beneficial system? Do the requirements cover these needs? Does the business understand their users and their users’ needs?
However, conception isn’t really the start, it’s just the start of the delivery process. There will be several interactions with the client in order to secure their custom. If we don’t get these right, we won’t have a project to work on. Therefore, we need to look at the quality of our pre-sales interactions, meetings and proposals. And we can go back further still; what about our lead generation, marketing or the brand itself? Are they getting us the clients and projects we want and do they really reflect who we are, what we do and the quality we produce? How about our company culture and recruitment? Are we attracting the highest quality and encouraging production of the highest quality? Do our actual results meet the expected results? How do we find out? We test. We analyse. We investigate. The concept of testing can be applied at all levels. And should be.
So, where do we start? For me, understanding is the beginning of delivering quality. Do we understand our own business? How about our employees, knowledge, skills and processes? During our rebranding in September 2017, we were ultra-transparent and collaborative about what the new brand would say about us, we held consultations and company-wide meetings, engaged with employees, clients and recruits, and had much discussion about our purpose, mission and values. All this resulted in Ghyston embodying who we actually are - a good start!
Do we understand our clients and their needs? Working on such a wide variety of interesting (sometimes borderline niche) projects, we have to be confident we can get to know the product, the project, the industry and the end-user relatively quickly. If we can gain a comprehensive understanding, we will be much better placed to identify problems and the appropriate solutions that will benefit both the business and end-users.
All this testing - it doesn’t have to be long and drawn out either - when you have a culture of continuous improvement it all fits in around the edges - it becomes part of you. Frequently heard in the office kitchen for example are developers arguing what the fairest metrics would be for grading interviewees, or how to best estimate large and complex projects. Tacked onto the end of every process should be the appropriate space to hear (or the direct questioning to get) the thoughts and opinions of those directly involved. Our clients and interviewees alike give us invaluable feedback all the time.
As you can see, I’m a big fan of questioning things. Questioning what we do, how we do it and comparing our achievements to our aspirations is an effective way to start testing whether we’re delivering the level of quality desired and if our processes facilitate high-quality work. Which brings us to yet another question; what is quality? We may have the best of the best and if we do, it’s likely we can build the best quality solution. However, if it’s not the right solution for the situation then you can be sure the client will not see the quality! We have to build the right things the right way. Having an all singing, all dancing product is all very well, but if the client can’t make it sing and dance when they want then they won’t be happy. Less still if they didn’t want it to sing or dance in the first place. This is why understanding is such a key element of everything we do.
Once we’ve delivered and we know we have met or even exceeded the expectations of the customer, can we be satisfied that we’re delivering the highest quality we can? No. We can always improve. Therefore, we must continue to test everything we do and work towards continual improvement. Most of all, we should remember to test ourselves and ensure that we’re growing, improving and continually learning from our experiences. Whether you are religious or not, the Bible definitely hit the nail on the head with the instruction “Test all things; hold fast what is good”!