RE & QA – the love story behind every successful projectIrina Vöhr
Requirement engineering (RE) and quality assurance (QA) are critical components to ensure product quality. They exist so that all requirements are meeting the client’s wishes. But what is the exact role of requirement engineers and quality assurance testers? And why are they so important in the development of new tools and features?
Requirement engineering: turning real world problems into digital solutions
Requirement engineers are problem solvers that transform real world hitches into digital solutions. They are permanently working with the stakeholders of a given project – project managers, developers, and clients, mostly – as they discuss the global vision and goals of the project and draw all the specifications necessary to making this project a success. REs have to find the perfect balance between user and business value by considering what end-users really need versus the client’s wishes. We apply this thinking to how we create websites, apps, or other similar projects.
Let’s take the example of a website. After defining general needs and wants of both the end-user and the company, REs will discuss the client’s ideas for their website development with them and list their wishes. The RE will then detail the acceptance criteria (AC) for each feature. By AC, it basically means listing the criteria that must be met for a successful development of the tool in an easily understandable way.
Sounds like something logical to do, right? Yet this critical step is not systematically applied to every project. As a result, the stakeholders involved in the projects might discover features that were never discussed before, or some features might become outdated faster. And when you think about it, how else would you develop a complete tool without having a clear view of users’ needs and clients’ requirements and goals?
Acceptance criteria have three big advantages:
- ACs are written in a way that is understandable for everyone – with or without a technical background.
- They give a clear view of what the final deliverable will be, and what value it brings to end-users.
- They are easy to adapt, and every change or adaptation is clearly documented simultaneously.
“ACs lay the foundation of the whole development of the future tool. It ensures a smooth and errorless development of multiple complex features requiring precise programming, good inter-connectivity and various dependencies.” says Sophia Widmann, Requirement Engineer at Emakina in Austria.
Quality assurance: leaving nothing to chance
Where RE sets a solid basis for flawless development, QA is continuously monitoring the development cycle to detect potential defects at an early stage and solve them more easily. QA testing helps to reveal inconsistencies, errors and redundancies at an early stage. It ensures that the product being developed can survive the real world in a long-term perspective.
It is unfortunately rather common to see feature releases just after a quick code review and/or customer approval. For a small project that’s not too complicated, such a superficial review might work. But projects are becoming more and more complex. They involve more systems and technologies and have to be developed quicker in increasingly complex environments.
During the development cycle, developers don’t have time to check every feature that is implemented after the release. These features are often tested in an isolated way by the person who was in charge of their development. That’s where QA strikes: QA testers are in touch with every stakeholder who took part in the project, from developers to project managers to clients. Their role is all about testing each feature to the bone, considering the whole environment that operates around it.
Cross-checking new with existing features is one of the main reasons QA is so important. The QA tester, as an example, will ensure that when a new feature is released, everything keeps working correctly. If a QA tester says a feature works, it will!
REs and QA testers are the bridge connecting everything – features and people – and ensure everything goes as planned, at each stage. They help the whole project to run smoothly, saving time, money and frustration.