Who are Quality Assurance Engineers and Why do You Need One for Your Project?
What makes you to delete an app? I don't talk about ordinary, useless apps or about copycats. Let's say app has some innovative things and killer features. Let's say you really need this app in your life and yet you deleted it. Why? Let's answer this with another question: who will keep an app that's full of bugs, freezes, glitches and crashes?
Batman: Arkham Knight. I'm pretty sure that most people heard about "Batman: Arkham" franchise and how great it is. However, the situation with the hugest and the most ambitious Rocksteady game was different. The game itself was great - thrilling story, dynamic gameplay and large city to explore as Batman. But no one wanted to play bugged PC-version. Even the ones who got it for free deleted the game after they saw that surrealistic nonsense that was happening on their screens. The game was fixed with multiple patches and it was playable in half a year after its release on PC. Rocksteady wasted huge amount of time and instead of lots of sales they only gained bad fame.
Why such things happen even with the best of the best? One of reasons is that developers are also familiar with writer's block. There are a lot of advices on how to deal with it and the most common is "write anything that comes to your mind, fix it later". Sometimes programmers work the same way. They write tons of code and leave all the places they're not sure about for the next day. Or they just can miss the mistake in their code, so they have to spend days looking for it. It's getting harder to fix it after the time passed. Programmer can focus on different things and forget the context of that mistake. It's also getting harder because he has to think how new changes in code will affect the code he wrote afterwards and so on. The more time it takes to fix the code, the more expensive the project will become to the customer.
So, what we learned from two examples above? Were the programmers bad? Hell no. Rocksteady are known for delivering high quality products. And the guy who is able to analyze his code, find and fix the mistake is really strong developer. What we need here is the person who will read code and look for bugs. We need QA engineer.
Ok, who is it?
"Quality assurance (QA) is a way of preventing mistakes or defects in manufactured products and avoiding problems when delivering solutions or services to customers" - thanks, Wikipedia. That's basically what software quality assurance engineer does in app development - avoiding bugs and glitches before the product is released. Before is a key word here.
Think of writing. You have a writer who, well, writes the book or an article and you have an editor whose goal is to check the grammar, syntax, make the text easier to read, etc. QA is an editor in the IT world. They support programmers in development process and take responsibility for the quality of the final product. QAs need to make sure that everything in software works correctly and final product meets both customer's expectations and modern standards.
Quality assurance engineer responsibilities are somewhere in-between of product manager's and developer's. They need to effectively communicate with development team and not bully them with deadline. They also have to communicate with the customer to understand the concept of application. The more clear QA understands the concept, the more chances that final result will satisfy the customer. QAs also must have strong technical knowledge, because they read code a lot and they must know what exactly is happening in those lines. They don't write code - that's a developer's cup of tea. QAs put software to test while developers are busy writing more code. Their goal is to make every step of development trouble-free.
Still, why do you need him?
You see, the most obvious answer - it's cheaper to offer quality assurance services than trying to fix the bug that was made in the beginning of development. In this case you pay some extra money to QA specialists for month instead of paying money to the whole team for an indefinite amount of time. It's cheaper to hire QA than losing your audience with a glitched application. So why risking?
Amazon, Twitter, Warner Bros, Airbnb, Fitbit, Sony PlayStation, GoPro - all they have QA department. Apple App Store won't allow you to upload an app with bugs. Such companies want to minimize the chance of refund and they understand that the better quality the product is, the lesser risk of financial failure. That's why they hire the experts in minimizing such a risk. And that's why you should.