There is constant pressure on businesses to improve margins through cost-cutting. Most of them find opportunities by identifying areas that can receive a 10% trim or even a 100% trim.
Cost-cutting continues to be a standard business practice. In fact, more companies could soon engage in cost-cutting with talk of recession in the air. People, processes, and systems are examined and restructured to reduce costs and increase customer satisfaction that often leads to increased sales and heightened profitability.
But an improper and chronic cost-cutting holds the power to create opportunities for new brands to out-premium the premium brands.
Cost-cutting programs in software development are as prevalent as other industry domain. But inappropriate cost-cutting can have an adverse effect on software quality…
The cost… 9-digit failures and defects
Last year, Boeing 737 Max crash killed 157 people aboard immediately after takeoff. It was due to a computing system failure of its life-critical system. Boeing’s over emphasis on cost-savings made them outsource engineering to cheap contractors to try to increase production bandwidth. The consequent software failure cost them $6 billion dollars overnight.
Software failures and nonperformance is expensive. According to a survey report by Tricentis, software failures caused around $1.7 trillion of financial losses to 314 companies. Whereas, software bugs were the most common reason behind these failures.
The failure of cost programs in software development can be linked to multiple factors, including: challenges in implementing the initiative, poor design, and tracking, etc. Let’s have a look at few takeaways from software failures due to improper cost-cutting.
Why cost-cutting initiatives fail?
Valuing cheap over quality:
Fostering an engineering culture where management values cheap and fast over quality software and continuous progress will have a tremendously negative impact on both the timely delivery and quality of your software – as buggy software takes longer to build.
Wrong outsourcing:
Companies often tend to partner with outsourcing vendors quoting lower than the proposal. And eventually realize that the low software development rates don’t necessarily mean best price-quality ratio. It is important to pay attention to the organization’s reliability and their understanding of basic market research.
Cutting R&D expenses:
Without spurring cutting-edge R&D, companies leave loopholes in evaluating product and respective improvements. Such improvements are cost-effective that are needed to be implemented during the development phase.
Underestimating testing:
Testing is basically done to make sure that the software runs without bugs. But, if testing is done when the code is in production or prior to the complete development, debugging becomes more expensive.
Breaking down cost-cutting in stages
Why cost-cutting programs of many companies end up making short-term financial gains at the expense of long-term business performance and health? Let’s divide cost-cutting into 3 stages providing a perspective to that question.
Stage 1: At initial stage, cost-cutting harvests the low hanging fruit and is well worth doing.
Stage 2: And when there is no more low hanging fruit left to harvest, it takes a lot more work to make cost savings materialize, and the return from that work decreases.
Stage 3: Eventually a cost-cutting strategy runs out of costs to cut and the effects of unwise cost-cutting starts to damage the business.
When fast is slow and cheap is expensive
We are used to trade-off time, quality, and cost. This is where the businesses face challenges when asked to pick any two. The cost-price-time triangle suggests that it is not possible to optimise all three. As, all three properties of the project are interrelated – one will always suffer. In other words you have three options:
Design something cheaply and with high quality, but it will take a long time
Design something cheaply and quickly, but it will not be of high quality
Design something to a high standard and quickly, but then it will not be cheap
People involved in a software development process are typically motivated with different goals. Some are motivated to publish software quickly whereas some want to be sure that a solid and mostly error-free product is being introduced to the market. Cost-cutting plans are based on such motivations taken on priority.
There is a thin line between good and catastrophic cost cutting. A proper plan of gradual cost cutting can save and even make you money but a cost-cutting initiative that focuses only on immediate benefits, is doomed to fail. Because haste makes waste.
According to a study done by pricing experts at McKinsey and Company, 1% price improvement results in an 11.1% increase in profits. This can make a big difference for growing and small firms looking to invest in new team members and additional resources.
Similarly, for digital agencies, there is a great way to create recurring income, and having their fee and salary paid all or mostly upfront in the form of a client retainer pricing model.
As you know how much money is going to come in!
But, in the past five years, clients have been asking to move their agency remuneration from retainers to other pricing models.
Let’s dive into the trend of client’s changing requirements that is subsequently making it a bad choice for agencies.
Retainers are safe but limiting
The first thing to realize is that most agencies love a retainer. But the retainer often acts as a double-edged sword for the agency.
On one side, the retainer is directly linked to the cost-recovery of the single biggest expense — human resources, as it is guaranteed cash flow. But on the other side, it forces you to reserve a set amount of time for each of your clients, leaving you with uncertainties a client can bring.
And what if there’s a project delay with the client or delay in reviewing your work or a late signing off? You end up turning new clients away because you may or may not have the time to commit to them.
A perfect market with many options
Clients are finding themselves not working with one Agency of Record (AoR) but at its most basic, two, with media separated from the creative agency. Then they add on a B2B specialist, brand activation agency, digital specialist, and perhaps PR, then suddenly there is a roster of 6 to 8 core agencies or marketing suppliers.
In other words, more competition and a lot of other options present in the market make clients prefer different agencies for different services, as they find it’s ineffective and pricey to pay retainers for each one.
Change in business strategies
Clients are increasingly finding themselves having to react to their competitors and the market due to downward pressure on prices. This makes them to adopt changes in business strategy not on an annual basis but on a weekly basis making it difficult to commit to an annual retainer.
Cost reductions are usually a sign that their budgets don’t go as far, hence the reluctance to throw money into a retainer.
Incomplete scope of work
A client’s overall budget plays the biggest role in deciding retainer prices. In addition, just like selling a course on Udemy — you need to learn about how many hours you plan to devote to the client as well as the anticipated scope of services you perform.
You cannot be sure about how much work is coming your way. Sometimes, it might be sufficient, sometimes less or sometimes more. This needs a plan that is better for all your hours to be used up so that your resources are utilized well.
Agencies for which retainers work best
Agencies who work quickly and can produce a large volume of work each month
Agencies having big clients with bigger budgets
Agencies with established relationships with their clients (long-term clients are easier to transition into a retainer model)
Ultimately, to choose the best pricing model comes down to what you value most. For those who are driven more by the overall results, they will be attracted to a fixed retainer. Those who like to know the exact amount of time they are paying for, an hourly billing is a way to go.
When you’re looking to outsource, you probably spend a lot of the project’s time in finding that “right partner”.
What if we tell you that even after choosing the right partner the performance rate for software outsourcing remains below 50%. It means that companies who outsource without considering the risks and operation costs, only get half the efficiency out of their outsourcing efforts.
Companies are so quick to handoff their work to off-shore agencies that outsourcing becomes purely transactional. Maybe we can rethink of outsourcing as a holistic approach and start with evaluating our processes and current performance instead of diving straight into a partner hunt and handing off the work to them.
The key is to have an extensive plan so that the risks are low and success rates are high. The rule of 5 P’s sums it up really good-
Proper Planning Prevents Poor Performance
With this guide you’ll be able to strategize for efficient outsourcing, choose the right vendor, optimize testing costs, and streamline your development process with QA.
Getting ready for outsourcing
Define Objectives and Goals
Clearly defined objectives and measurable goals makes for a good basis of an outsourcing strategy. Objectives will help you with decisions concerning a project’s business value, vendor, outsourcing models, projects to outsource, and related risks to assume. Down the line objectives will also help you evaluate the success/failure of your strategy.
Whereas, Goals are the events and functional metrics by which management can monitor progress, take corrective action, and project future performance.
Measure Performance Baseline
You’ll also need to define metrics with which you can represent a baseline performance for your outsourcing efforts. Use these metrics to get a baseline for your current performance which can be later referenced for future measurements. Baseline also clarifies which metrics are important in achieving specific goals and business objectives.
Set realistic expectations
After defining your goals and expectations, you need to check if they’re are just. Unrealistic expectations of large immediate savings is the reason behind most of the failed projects.
Practical expectations ensure stability for your offshore strategy. A careful analysis for ROIs and timing of the benefits will help you evaluate and set better expectations.
How to choose and manage an Outsourcing vendor?
Shortlist a vendor –
A quick Google search will land you on the pages of thousands of vendors with a fair amount of happy client testimonials. How do you see past a few deliberately filtered out success stories? The first thing in your course of action should be checking the review and references of your shortlisted vendors.
A vendor with a good track record should be able to provide you with sufficient references. References might give you just enough green flags to go ahead in your research. You can then continue your vendor evaluation based on the below mentioned factors.
Gauge their expertise
To showcase one’s expertise vendors should provide you with their test documentation, portfolio, and test cases. The depth of their reports should give you a good idea about their process and cases they cover.
See if they have sufficient resources and services
An ideal vendor should always have more resources than you need at the moment. Regardless of your immediate needs, your vendor should be able to do all types of testing be it automated and manual for web or functional, performance, usability, compatibility, API, and security testing for mobile/desktop. It enables your vendor to scale as you do.
Vendor management and assessment –
Understand your vendor
Vendor management starts from understanding their needs and where they are coming from. An outsourcing vendor has to deal with operational costs, talent acquisition challenges, and problems with other projects. Excessive price negotiations might push them to cut corners by allocating insufficient or junior resources.
Regularly assess the vendor
Regular assessment ensures quality. You need to have a systematic assessment in place, so that when you’re unable to get the expected quality of work, you can take action or look for other vendors.
Make sure that the frequency of these tests is not on the higher side, because it will shift their focus on showing rather than actually doing things. Assessing too frequently will keep them on the edge all the time.
This assessment criteria should get you started.
– Number of missed bug
– Quality of defect description
– Correlation between testing efforts and outcomes
– Quality of test documentation
– Capacity and availability of resources
– Efficiency of testing tools
Manage vendor performance
Assessment provides you with insight that you can use to improve the testing procedures in place and maybe introduce some measures to increase the efficiency.
You should review vendor’s testing documentation at least once a month. Based on the reviews, your QA lead should provide the test team with relevant feedback, detect hidden wasteful steps and cost drivers.
You should also be in constant touch with your vendor’s QA manager to communicate missed bugs or unclear reporting. Ensure that the test team properly understands business and software requirements.
In case a vendor fails to deliver on your expectations, you can consider a multi-vendor strategy. For big enough projects you can assign different part of projects to different vendors. Having options makes the replacement easier when and if your projects are at risk.
Dealing with cooperation issues –
Prioritize testing activities
Addressing urgent issues is a common practice in an agile environment but urgent requirements can often delay the important issues. Because, every time there is a change in requirement vendors need to adapt and reprioritize. While dealing with the changes they might leave business critical or problematic features out of the scope.
Your QA manager should be able to help the test team create a clear test plan and prioritize testing activities, so that nothing is swept under the rug.
Include several SLAs in your contract
Since it’s difficult to match a traditional contract with a flexible agile testing process, you can divide your contract into several service level agreements(SLA) to make collaboration more manageable. Each SLA should cover a part of the services to be rendered, the time required for execution, priority, and KPIs.
Which Outsourcing Model to choose?
An outsourcing model has many variables, such as scope, distribution of responsibility, contractual flexibility, and duration, but the main variables that define a model are the distribution of responsibility between you and offshore vendor, and the scope of the outsourcing effort.
Staff augmentation
This model has the same characteristics as a traditional onshore staff-augmentation model. You hire contractors to perform a particular task or role. The contractor receives work assignments directly from your company, the same as all other developers on the team, and performs the work remotely.
However, the staff-augmentation model has the advantage of having the lowest risk and being the easiest to implement as it can be executed with a single offshore resource for a fixed task and duration.
Offshore vendors tend to shy away from this model and many strongly discourage its use due to the shared overhead costs and limited upside for the vendor.
Project-outsourcing
This model is a self-contained engagement with fixed start and end milestones where a dedicated offshore team is responsible for delivering a complete project according to your specifications.
If you have a large project, you can start with a pilot project by assigning an isolated part of the project to see if the vendor’s processes are mature and what are the overhead costs and vendor also learns how your company functions.
If the project is small, the risk is relatively contained and both parties figure out the intricacies of an effective business relationship.
This model is more appealing to many offshore vendors and represents a more significant benefit for both your company and the vendor because the model can be scaled up to more and larger projects.
Dedicated development centre
In this model the vendor has a pool of resources, resources that are dedicated to your company’s use.
As your company matures in its relationship with an offshore vendor, this is a logical next step in growing from either a staff-augmentation model or a project-outsourcing model.
This model allows the same resources to be retained for multiple successive projects and reduces the loss of intellectual capital prevalent with the project-outsourcing model.
Functional outsourcing
This model outsources an entire business function, process, application, or department. This tends to be a high-risk, high-reward endeavor.
You must be confident in your vendor’s ability to deliver significant business value and minimize the risks of business disruption before entering into this kind of relationship.
However, offshore vendors that specialize in a certain business functional area can often provide a higher level of expertise than you can — at a reduced cost.
Tests to look for
An experienced outsourcing vendor with structured QA processes will help you realize robust and reliable products in shorter turnaround time. With their proven industry experience they will also ensure consistent implementation of best practices.
Knowing their process can prove to be an insightful experience into their work and how they operate.
Just to give you an example here’s our process that explains how a product is tested, starting from an atomic level (lines of code) to a molecular level(modules) to an elemental level(System).
Unit testing-
This stage focuses on a small piece of an application, even something as granular as a line of code like a method or class, and ensures that it functions as per expectations.
Our Unit testing checklist
Write a line of code
Write a method to test that code
Implement the code
Launch test
Verify results
Unit testing accelerates productivity by streamlining development and lowering the risk of time-consuming and costly bugs down the line.
Integration testing-
Units make up a module and if units do what they are supposed to then it’s time to see how they work together as a module in integration testing.
Here are some methods used in integration testing:
Big bang
Top-down
Bottom-up
Sandwich/hybrid
Integration testing verifies the functionality, reliability, and interoperability of multiple system components working together. It also identifies and addresses problems with exception handling.
System testing-
Software system testing looks at a software product as a whole and evaluates whether it successfully meets the pre-defined functionality, end-user, and business criteria.
Functionality
Does the system function as the requirements criteria detail it should?
Performance
Is the software reliable, responsive, stable, and performant under various conditions?
Regressions
Has the software retained its original functionality since its modifications?
Usability
Is the software user-friendly, and intuitive? Does it offer an optimal experience for the end-user?
Stress
Can the software hold up as the load and stress on the system increase?
Load
How quickly does the system respond under normal and peak conditions?
Security
Do the security features ensure the integrity of the software product as far as protecting sensitive data and information are concerned?
Recovery
Can the software recover successfully and quickly following a crash or failure?
Interoperability
Can the software successfully interact with other software systems or components?
Documentation
Are all test scenarios and requirements agreed upon prior to and during this QA phase well-documented?
If bugs, breaks, or defects are identified during this stage of evaluation, they are fixed and then re-tested, forming a repeated quality assurance cycle until the software QA team signs off for deployment.
System testing ensures end-to-end evaluation of an entire product prior to release and lowers risk for application failures once the product is live.
Acceptance testing-
Even after all the programming, technical oversight, quality assurance, and bug fixing, software acceptance testing is necessary to evaluate that the end product fulfills the purpose for which it was originally designed and developed.
Acceptance testing mitigates any fallout from outstanding bugs or defects that weren’t identified in the previous unit, integration, or system examinations. It also improves overall user experience as testers and users relay usability and functionality feedback
The above mentioned testing process is common to all software development and testing providers. But to ensure utmost product quality and robustness we have these additional layer of tests that help us make our products flawless.
Load or performance testing on page and application scale
Security testing
Accessibility testing
Visual QA
Automation testing
Key takeaways
Software testing and QA outsourcing is an opportunity for businesses to reduce IT overheads and improve efficiency.
Good software testing is a specialized and professional skill, and not merely an afterthought entertained at the end of the IT project life-cycle.
Even if large-scale offshore outsourcing is not an option that you’re ready to consider, outsourcing a small part of a large project can provide an effective supplement to your existing solution.
Ultimately QA outsourcing boils down to understanding your needs, setting cautious expectations, and knowing when to withdraw.
As Galaxy Weblinks says “Our first and most important job: to help our clients understand the totality of the technology landscape and conceive, design, implement, and support solutions that fit their needs – and budgets.”
With pride, we are happy to announce that Galaxy has been featured as one of the leading B2B companies and software development companies on on our platform. More specifically, they are listed number 6 on the Leader’s Matrix, a compilation of the top companies in this category.
As a B2B services ratings and reviews agency, Clutch uses the typical reviews process with a personal touch. Our analysts often speak with a company’s clients directly, gathering feedback that is insightful and offers a true window into a partnership with that firm. Clutch uses this research to organize the thousands of companies on the site into a directory with multiple shortlists, guiding buyers in their decision-making process.
Recently, Clutch released a new platform, Visual Objects, which deems Galaxy Weblinks one of the top UX design agencies. Visual Objects is a portfolio website that showcases work from the best creative firms around the world.
Additionally, our high ranking on Clutch allowed contenders an additional feature on The Manifest, another B2B ratings and reviews platform. Here, Galaxy is listed as one of the best UX designers.
A special thank you to Galaxy Weblinks for this guest post. We wish you more success in the future.