What is Quality?
Quality is extremely hard to define, and it is simply stated “Fit for use or purpose.” It is all about meeting the needs and expectations of customers with respect to functionality, design, reliability, durability, & price of the product.
What is Assurance?
Assurance is nothing but a positive declaration on a product or service, which gives confidence. It is certainty of a product or a service, which it will work well. It provides a guarantee that the product will work without any problems as per the expectations or requirements.
The Concept of Software Quality
While to err is human, sometimes the cost of a mistake might be just too high. History know many examples of situations when software flaws have caused billions of dollars in waste or even lead to casualties: from Starbucks coffee shops being forced to give away free drinks because of a register malfunction, to the F-35 military aircraft being unable to detect the targets correctly because of a radar failure.
In order to make sure the released software is safe and functions as expected, the concept of software quality was introduced. It is often defined as “the degree of conformance to explicit or implicit requirements and expectations”. These so-called explicit and implicit expectations correspond to the two basic levels of software quality:
- Functional – the product’s compliance with functional (explicit) requirements and design specifications. This aspect focuses on the practical use of software, from the point of view of the user: its features, performance, ease of use, absence of defects.
- Non-Functional – system’s inner characteristics and architecture, i.e. structural (implicit) requirements. This includes the code maintainability, understandability, efficiency, and security.
The structural quality of the software is usually hard to manage: It relies mostly on the expertise of the engineering team and can be assured through code review, analysis and refactoring. At the same time, functional aspect can be assured through a set of dedicated quality management activities, which includes quality assurance, quality control, and testing.
Often used interchangeably, the three terms refer to slightly different aspects of software quality management. Despite a common goal of delivering a product of the best possible quality, both structurally and functionally, they use different approaches to this task.
Should we outsource?
We can say that it is the most awaiting question on this topic; the answer is “Yes” you can. The thing is just you have to select the proper partner for your product who will assure the quality.
Here, are five points you have to consider while moving your business outsource.
Lowest rate does not equal lowest total cost
When it comes to outsourcing vendors, the old adage, “If it sounds too good to be true, it probably is,” makes sense. I once received a rate card from a procurement team that had negotiated an $8-per-hour rate for offshore testing resources. When I checked into the details, the systems integrator that offered the low-priced testing was planning to open an office in China but hadn’t even set up the office yet and had no testers on board. With business-critical systems under test, I wasn’t willing to make my business the guinea pig for that experiment. You may be tempted to select a vendor that is offering you a virtual army of testers for what seems like an attractive price, but from my experience, using a small team of rock-star testers is more effective than relying on a large pool of untrained workers.
Industry experience counts… a lot
Each industry vertical has its unique business processes, so bringing in testers who have never worked in your industry before will only slow down your testing efforts. On the flip side, a team of QA professionals who understand how your business works not only will add efficiency to testing, but also can help focus your quality efforts to ensure that the areas with the highest level of business impact get the highest testing priority.
Add staff or go with a managed service
If you just need testers for a short-term project, staff augmentation is usually the best approach. However, if your organization requires ongoing support and the skill set needed is not core to your business, a multiyear managed service can be very effective. In a well-run managed service, the testing partner will have an incentive to do the work more efficiently, driving process improvement managed by your carefully negotiated service-level agreements.
Does your partner have a technology framework and best practices?
Be sure to ask a prospective vendor what unique intellectual property and best practices it can bring to your project. You want a team that has done it before and distilled its years of experience and success in completing projects into a set of best practices, accelerators, methodologies, and tool kits. Having these assets will help accelerate your quality efforts and reduce time to market.
Cultural compatibility: Does the shoe fit?
A good cultural fit is every bit as important as every other criterion. Your partner should get to know your organization, the people, and other vendors that work on your projects. Can it work at your pace, communicate information the way you need it, and be prepared to deal with the level of chaos that exists in your work environment? If it can’t handle the way you work, it’s probably not a good match, no matter how good it is technically. In addition, if you need a large managed service, it is also important to have an on-site lead to ensure accountability.