You build software to support your business. You want it walked, stretched, and wrung before your customers use it. Sure you have people testing it, but bugs are building up and the quality of the product is in question. Worse yet, you’re becoming more nervous that you’re going to break something buried in the product that you won’t notice before you ship or deliver. You’re pretty sure you need to do something more about software quality.
What do you do?
Whether you’re building web sites, APIs, analytics engines, search algorithms, or ad servers, enterprise scale computer software is a complicated problem. Many projects and people with different motivations, timelines, and delivery criteria make it complex. Never having a product delivery go the same way twice makes it complicated. Complications arise when it becomes nearly impossible to trace back the trail of breadcrumbs that clearly outlines from whence you came. This is common in mathematical systems theory, ecological inheritance, genetic traits, and software development. Ensuring the quality of a complicated system is by nature… complicated.
Why is software quality assurance complicated? For one, an automated script for a user scenario for one build may pass for one build and fail for the next –with no recordable changes to the modules under test. Systems that passed a load test in one iteration may fail the next, with no clear rationale as to why. QA tests are written by humans with a limited linear logical mind-map of how the software should work.
A QA test that passes does not guarantee that the software works — it reinforces the understanding of the QA engineer’s understanding of the system. False positives are as good as no testing at all; I once discarded a year and a half’s worth of automated tests because the tests couldn’t run on their own and turned up roses while regression bugs were found in the software that the tests should have caught.
So you know you need QA help. Do you hire an engineer or a manager?
QA Engineers excel at problem solving and getting a solution framework up as quickly as possible to solve a particular problem. Solving for a suite of problems or implementing automated test systems that can be reused by other groups is often a far-away thought.
QA Managers, on the other hand, think in broad strokes of the immediate solution, the intermediate solution, and a scalable model (most often a QA Center of Excellence model) that can be applied to multiple product groups each supporting multiple product lines. Engineers are great for solving the “right now” problems. In 6 months, the same method of thinking that created the problems you’re solving today may very likely still be in place, and your engineers still solving the same problems. Engineers are good at solving process glut, but they can only operate for so long solving the same problem. Engineers need new problems to solve. Management glut gets old fast.
A good QA Manager will be able to get an automated test system, a defect tracking system, and a basic work management system up and running from open source software in less than a week; along with these systems will come a 1-month plan illustrating what the QA needs are. After a month, a QA Manager will be able to communicate a wider-reaching communication and hiring plan that maps how to get from where the software development organization is now to where the company products want to be in 3, 6, and 12 months or more.
QA Managers challenge paradigms of thought, software development process, deployment procedures, advertising operations models, support staffing & methods, and work-flow sizing and management. QA Managers affect change in software development as well as grow QA Test Engineering to maturity.
The solution to knowing what sort of QA staff to hire — manager or engineer — lies in your own honest evaluation of where you are today and where you want to be in 6 months. If you need to ship product now or you’ll sink, grab a QA contractor and do whatever it takes to make your deadline. If you’re strategically forming a company that you want to last 3 or more years, invest in an experienced QA Manager to help you see what you’re overlooking, challenge your assumptions, and hire the right people for the right positions.
Nobody can hire QA Engineers like a QA Manager. If you don’t have QA experience, you may be well-intentioned, but after a while you’re just reading resumes and going cross-eyed with keyword hypnosis. If you see Quality Center or SDLC or communication skills in boldface italics one more time…
QA Managers see right through the flashy jargon and can quickly cut through to a good QA resource in less than 5 minutes in a phone interview. If yours can’t, have them get in touch with me and I’ll help them.
If you’re having trouble hiring solid QA staff, maybe the problem is not the job candidates, but the person doing the hiring. If the same person doing the hiring is the same person that hired the QA staff that aren’t working out, take a time out. It takes a strong person to know when it’s time to bring in a master gardener to select new soil and new seeds.
A QA Manager is the workhorse to keep your team energized and on-point for the long haul; QA Engineers are the pistons that keep the work going. More pistons gives you more horsepower but power alone won’t win you the cup.