There is a famous quote by Aristotle that states: "quality is not an act, it is a habit", which applies to how quality is achieved at Shape. A mindset is a set of beliefs, that drives and motivates you in the way you do things. Testing methodologies, tools, and frameworks are irrelevant if we do not understand that testing is first and foremost a mindset. The role of the Quality Assurance Engineer has changed over the past years from being perceived as the “gatekeeper of quality” at the end of the software development cycle, into being the advocate of quality. QA Engineers are now driving a mindset and culture that impacts all involved in the organization. The testing mindset is the key to continuous quality improvement in the engineering level of the organization. So, what exactly is motivating and driving our quality? How can we define the testing mindset present at Shape?
At Shape, we have allocated resources for different projects. Each project is run by a small dedicated team normally combined of a Tech Lead, Commercial Lead, an Android Developer, an iOS Developer, a designer and a QA Engineer. Having these dedicated resources to a project increases the ownership and empowerment of everyone involved. All team members are free to apply judgement to situations that fall outside the rule and problems that occur are dealt with including everyone’s input. A part of the quality mindset is about being an excellent communicator and a great team player. The team communication and collaboration is precise and quick, whether it happens on Slack or during a weekly Tech Jam. Design reviews take place during development, in which the designer and developers evaluate the design implementation. Developers have platform alignments to ensure that Android and iOS are on the same page with a specific feature. Everyone recognizes which part to play in a project, and there is a common understanding that everyone must play their part and deliver high-quality work. Everyone is dependent on each other’s commitment and ownership in order to deliver the project with quality. Members of the team do not only follow guidelines for QA but also see others taking quality-focused actions. It is incredibly valuable for any member of the team to hear others talking about quality, and sense that quality matters. Having a great collaboration and building relations between QA and developers is something we achieve by fostering peer involvement. We do pair testing with developers and bug squashes together and, in return, developers obtain an understanding and appreciation for testing.
We apply critical thinking to every development task, whether it is a technical concern, design remarks or comments on the user experience. We work with an open mindset instead of clinging on to prejudice. As a tester, it is important to not only find bugs but also to prevent them. We like to analyze things, look for patterns, and spot inconsistencies. We try to challenge, explore and investigate rather than validate and checking. We ask questions and raise risks and concerns rather than just validating and verifying. Thinking things out and looking at the impact is extremely important, as well as looking at things in detail. All team members’ ability to be constantly aware, curious, asking questions, and evaluating the possibility of failures, plays a huge part in the quality we deliver.
Everyone must be focused on creating the best possible experience for the end-user. Developers have by nature a tendency to focus more on technical solutions rather than user experience. We try to focus our time on testing the scenarios that a regular user encounters rather than focusing on individual requirements. The more time testers spend doing manual tasks like documenting test cases, the less time they have to do other valuable activities such as finding defects and exploring the application. With users in mind, testers also check that the application does not do what it is not supposed to do, which is different from making sure it does what it is supposed to do. The end goal is to ensure that we give the users the best experience possible.
We aim to set the bar high and encourage team members to go “above and beyond”. At the core of our quality culture is the focus on caring about the product and delivering with quality. By challenging yourself to deliver the highest standard possible, and showing that you are willing to go the extra mile, you will grow every day. By setting the bar high, you will have a positive influence on the people you work with, as they are more willing to adapt the same quality in their own delivery. We are looking for people who are driven to keep learning and growing professionally. What drives and motivates people varies from person to person, but what is certain is the need to be driven towards the same end goal.
At Shape, our QA engineers are ambassadors on promoting the testing mindset, supporting their colleagues in how to perform testing and bringing everyone into the quality process. The project team must be able to perform proper testing even when a QA engineer is not assigned to the project. We believe that any member of the team can perform testing as long as people are given the appropriate tools and the right guidance. We recognize that QA Engineers have an instinctual motivation toward testing, and developers may not. The QA mindset can be taught by learning to think the way that a QA professional does and then translate that way of thinking into your own testing. QA as a mindset is a way of thinking, and QA should not be seen as a separate process from the development process. Projects should not rely on testing to catch issues, instead, we should all be able to adopt the mindset and be QAs.
The main reason why software development teams and QA teams are separate is that both teams view an application completely differently. More often than not QA Engineers will hear a developer say “We need your testing mind on this project”, asking for help with testing the application. Similar to testers, who focus their time on testing, the developers have their own developer mindset and behavioral drive which evolves around writing quality code that solves problems and brings value. If you are able to combine the two worlds of testing and development, you will be able to reach a culture where everyone cares and works together towards achieving one common goal. That is a culture that creates a joint responsibility on the quality delivered, where all team members have a broad focus and think beyond themselves. They live and breathe quality in all their actions and they are passionate about quality as a personal value rather than simply obeying company guidelines. An objective of the testing mindset is to break the paradigm of developers only focusing on development and QA engineers only on testing.