The Future of Testing for Agile Development

As we’ve noted in two previous articles on mobile and cloud testing, the number of software applications has grown exponentially over the last decade.

For example Mashable noted that the use of mobile applications grew 115% in 2013. And PC World predicted that the total SaaS market will grow to $22 billion in 2015, up from $14 billion in 2012.The growth in mobile and SaaS has opened new markets for software applications, especially among younger users who demand higher quality and performance from their applications. They expect changes and improvements in software products to happen right here, right now.

agile2To meet the increasing demand, many organizations have turned to Agile development methodologies as an alternative to the traditional waterfall approach in order to produce applications that are more customer-oriented and deliver more value to end-users.

The Growth of Agile

Agile has seen huge growth in just the last four years. In 2010 Forrester reported that only 35% of organizations surveyed used Agile. Three years later Actuation Consulting reported that figure had doubled to almost 74%.

What exactly is Agile? As a quick refresher, Agile is a response to an increasingly complex and unpredictable world where requirements are constantly changing and market conditions require flexibility and responsiveness.

Boiling down the methodology very simplistically, Agile consists of:

  1. Short development sprints, typically lasting about 2-3 weeks
  2. Frequent and rapid release of features or functionality into the market
  3. Small self-directed teams with lots of autonomy to make decisions
  4. Simple user requirements for each development cycle as opposed to a complete project plan
  5. Daily “stand-up” meetings to determine what has been done, what the day’s plan is, and what each team member needs help with

In other words, Agile methodologies allow project teams to be more collaborative, independent and self-driven, while focusing on execution, process improvement, simplicity and quick response to change.

Though Agile has been with us for at least 13 years now (the Agile Manifesto was published in 2001), not every organization has incorporated it into their development processes. Agile will not replace all software development – it’s not a ‘one-size-fits-all’ approach.

According to Matthew Hotle, VP at Gartner (as noted in this TechTaget article): “The breadth of penetration (of Agile) into our client base is fairly high, but the depth is fairly low.” Hotle said that more than 50% of Gartner’s client base uses Agile, but only 10% of the work is actually being done in an Agile way.

In fact, most organizations implement a hybrid approach: Agile for front end development and waterfall for the backend.

But as new trends such as DevOps arise, Agile becomes an enabler for continuous delivery across the entire value chain.

Agile and Testing

The traditional waterfall methodology typically incorporated two separate teams – one for development and another for testing. The development team worked on the “design” and “implementation” stages, and the testing team worked on the “verification” and “maintenance” stages.

In Agile, developers and testers are encouraged to work side by side, performing both development and testing functions simultaneously during development. This process requires continuous collaboration between all stakeholders: managers, developers, testers, customers.

There are little to no rigid requirements documents and checklists. The team does whatever it takes at any moment to satisfy a customer’s requirements.

But this seeming “informality” is a little too much for some organizations. Many of them have raised major concerns regarding software quality levels, precisely because the methodology designates little time to incorporate a separate testing regimen.

Their concerns are based on:

  • Lack of documentation
  • Inadequate test coverage
  • Incomplete requirements
  • New defects generated by frequent builds
  • Determining the right balance between manual vs. automated testing
  • Performance bottlenecks

Additionally, some organizations take issue with lack of a proper development infrastructure, and they fear that collaboration among team members with different personalities might cause friction which could negatively affect the testing process

Remote Agile Testing: A Solution for Cost-Savings and Efficiency

But despite these misgivings, many organizations are taking advantage of Agile testing methodologies using geographically distributed teams. These virtual teams have several advantages:

  • Cost savings: Distributed teams can now be located in areas with lower labor costs.
  • Hire the best: Since location is no longer a limiting factor, organizations can now hire the right people no matter where they live
  • Follow the sun: Organizations can leverage time zones to their advantage 24/7

Getting remote Agile testing teams to work requires tackling a few challenges, however. The daily stand-up meetings and constant collaboration, a hallmark of Agile, typically required shared workspaces.

But with remote teams, face-to-face communications can be a challenge. To increase collaboration, organizations should take advantage of technologies such as telepresence, instant messaging, and centralized repositories.

Time zone differences can also be a challenge. Our recommendation is to work with remote team members in overlapping time zones. The more the overlap, the easier it is to perform Agile testing.

Conclusion

The Agile development project management trend emerged during the last decade as a way to enable quicker turnaround times, more efficient development processes and more friendly software. It has seen important rise in adoption due to the exponential growth in cloud and mobile computing.

It has also enabled more efficient and organic testing, but the lack of documentation and a separate testing discipline within Agile has raised concerns among organizations wary of the lack of a formal testing methodology.

Despite these misgivings, many organizations have accepted agile testing, including the advantages of remote agile testing teams. Some of the benefits of remote teams are cost savings, the freedom to hire the best people no matter where they live, and the ability to continue development and testing 24/7.

To find out more about Agile testing, as well as cloud, mobile, automation and exploratory testing, check out our remote webinar, “The Future of Testing.”