Waste bin

How to reduce testing costs in agile projects

If you're like 86% of global vendors in this Dimensional Research survey, you deploy a new software build at least weekly. Or perhaps you're among the 14% of respondents who do builds hourly by using agile. But despite project teams' enthusiasm for agile and its informal nature, project managers are of two minds about it, due to the higher cost of software testing.

Regardless of methodology, swift time-to-market and product quality are top priorities in software development, and project managers know exactly what (read how much) it takes to ensure both. Normally, software testing in agile projects comes to 25% of the overall project cost, and in certain cases the costs can reach 40%.

But there is a ray of hope. Testing costs in agile can be reduced by applying Kaizen. This approach can be of use to both in-house and outsourced testing teams (when applied along with specific management principles).

While Kaizen is not new to software development, its application in software testing is limited to overall management; it doesn’t provide any insights into improving day-to-day processes. So I decided to go deeper and single out Kaizen wastes that typically hamper the testing process in an agile project and to offer strategies to eliminate them.

5 fallacies of waterfall development

Kaizen and wastes

Kaizen, which means “continual change" or "continual improvement" in Japanese, is a methodology, a philosophy, and a mindset designed to achieve productivity. It was Kaizen that empowered Toyota, once a small business, to become a global titan of the automotive industry.

The Kaizen approach found its way into many industries, including software development. Its concept of “wastes” and “waste elimination” offers a way to increase productivity and reduce costs.

According to modern Kaizen, there are eight types of waste-hampering project implementations. Meet TIM WOODS:

  • Transport: Moving people, products, and information
  • Inventory: Excessive storing
  • Motion: Unnecessary movement
  • Waiting: Increased idle periods
  • Overproduction
  • Overprocessing
  • Defects: Rework
  • Skills: Using capabilities inefficiently, or delegating tasks to inadequately trained specialists

Skills and overprocessing are the two most common and harmful types of waste in an agile project. Piling up, these wastes transform into defects (rework) and waiting (increased idle periods), which increases testing efforts, time-to-market, and software testing cost.

The skills waste

In testing, a skills waste translates into a lack of domain knowledge. Although some people consider that lack an advantage because expertise in a domain could result in a strictly conventional approach to testing, specialists can predict a system’s vulnerabilities, saving time. They can also perform comprehensive UI and UX testing, relying on industry specifics.

Typically, a testing engineer who is not a domain specialist can take a week to several months to adapt to a new domain. During this period, work efficiency drops.

Luckily, many testing engineers specialize in certain domains, including healthcare, banking, retail, and telecom. 

The overprocessing waste

In testing, overprocessing waste presents three challenges that can undermine an agile project’s success. They are:

1. Exhaustive testing

To prevent this type of waste, you must understand that software testing doesn’t aim to ensure that your application is bug-free. Its main purpose is to ensure acceptable product quality. To do so, qualified testing engineers draft a test plan that describes intended test activities. A test plan includes:

  • Purpose. A short summary of application functions to help the testing team stay focused on the application goals and key functionality.
  • Features to be tested. Includes both functional and nonfunctional features of the application. Testing engineers assign priorities to the application areas and address critical and major functionality in the first turn.
  • Features not to be tested. Includes functional and nonfunctional features of the application that will not be tested due to low significance to the customer, lack of time or resources, and so on. Such features may be tested later.

A thought-out test plan enables the project team to reduce unnecessary testing to a minimum.

2. The waste of bugs created by bug fixes

This waste often torments the development team as new bugs are reported after each workaround. However, the project team can dispose of this waste by applying holistic quality assurance. This approach fully correlates with one of the basics of a successful agile implementation: efficient communication. Holistic QA means assuring quality at every project stage, starting in the requirements-gathering phase—and for good reason: Removing a bug at that stage costs about $1, whereas in-production bug fixing costs 100 times more.

Besides applying holistic QA, the team can come to terms with what is considered acceptable quality and avoid wasting time on minor bugs and accompanying costs.

3. Unnecessary manual testing

However detailed and comprehensive it is, manual testing requires considerable effort and a big time investment. These are acceptable in sizable waterfall projects, but in agile, excessive manual testing can slow time-to-market. While complex areas of an application should be tested manually, automated testing is a viable alternative for continuously repeated testing types, such as regression testing.

However, the automation of regression testing should be approached with caution. When new features are introduced, the whole test suite needs rewriting, which slows time-to-market. That is why agile teams mostly revert to manual regression testing in large projects requiring numerous releases. In this case, it really works toward reducing time and cost.Use Kaizen in your next project and cut costs

Often praised for speedy releases and decreased paperwork, agile methodology says nothing about the project costs, which are a pain point for any project manager. Although attaining quality is expensive, testing costs can be reduced by applying the Kaizen approach to waste and waste elimination. Use it as part of your next project strategy, and you'll lower software testing costs without harming quality.

5 fallacies of waterfall development
Topics: Agile