The Agile Age
For a business to survive or, dare I say, thrive in the “Agile Age”, it must adopt agile methodologies. The term agile may ring some bells with those of you from the product lifecycle field. But when I say agile, I’m not referring to product lifecycle terms like Scrum or Kanban. I’m talking about agility throughout the organization, starting from the CEO, through marketing, sales, R&D and, of course, to IT operations.
To compete in today’s environment, you must act and react fast! If you don’t, your competition will beat you to it. Today, the barriers to compete are minimal and the only way to defend one’s stature is by innovating in short iterations.
Agility facilitates survival in a highly competitive business environment. And it dictates a different DNA. One that can move fast, innovate and work in ridiculously short iterations.
This new DNA demands an IT infrastructure that supports agility. What was so right in the waterfall-age is sometimes so wrong in the agile-age. While the right IT infrastructure can enhance agility, the wrong infrastructure will add friction and cause failures.
Five years ago, the vast majority of IT infrastructures were dominated by giants like HP, IBM, Compuware, BMC, etc. Today, you’re more likely to see agile, streamlined companies making waves thanks to their ease of use and excellent ROI for their customers. Companies like Heroku, New Relic and BlazeMeter are fast becoming the new household names in the technology of today and tomorrow.
Waterfall Vs. Agile Approaches
A product lifecycle is built out of iterations. As adopting agile methodologies mean you have dozens or hundreds of extremely short iterations every year, the waterfall development cycle is no longer adequate. A typical iteration starts with product marketing specifications, then goes through design, development, QA and finally deployment. During the Waterfall age, this process would take many months to complete. However, in the Agile age, a typicaliteration can take anything from a few days for a minor release to a few weeks for a major release.
Testing in the Agile Age
An organization that relies on web or mobile applications to deliver services, benefits and features needs to introduce agility into its product development lifecycle. In order to achieve agility, we need to build applications differently than we did in the past. Bugs, bad user experience and downtime come with a far greater cost than they used to.
The Agile Age is all About the Continuous Delivery Process
By moving from Waterfall to Agile, the entire testing process has changed significantly. There can no longer be manual handoffs between development and QA in order to perform testing. There is simply no time as iterations are so short. Testing needs to be automated and performed as part of the cycle and not as the next phase. Today, testing is part of the continuous integration and deployment processes.
What is Being Tested and by Whom?
Today, testing is conducted by the entire technical team in all phases of the development lifecycle. Testing starts at the development stage by the developers, continues through the continuous delivery process all the way to post production monitoring of the application’s service level. While testing is performed throughout the product lifecycle, it is carried out by different teams with various skill sets: Dev, DevOps, Performance Engineering, QA, Ops and others. Some of these teams have a comprehensive understanding in the field of performance testing and some have close to zero understanding and little patience to learn. As these teams can no longer do handoffs to the QA team, they must carry out testing on their own. They need to leverage their skill sets and utilize tools that will enable them to perform these tests.
A Fantastic Story: The Life of the Agile-Age Test Script
The Agile-Age test script can be used by developers manually for troubleshooting, unit-testing and module-testing. Very quickly, the test is automated and run as part of the continuous integration cycle after each daily build. Prior to production, the test script can be used to run a load test. Once the release is ready for deployment, the test script is attached to the continuous deployment process as part of a Chef or a Puppet recipe to be performed as part of an automated deployment. The same test can also be used to monitor the application service 24/7 post production.
Open Source Vs. Commercial
If, in the past, the testing market was dominated by commercial tools such as Loadrunner and QTP, today it is obvious that the use of open source tools for testing such as Apache JMeter and Selenium is becoming increasingly common. Working with a commercial tool binds you to a certain company – making you dependent on its support team and feature roadmap. Open source tools today are far more up-to-date than many of the commercial tools and they give you freedom. With open source tools, you can find one that you like, download it, view a couple of YouTube videos and get going without speaking to anyone. In the past, no CEO would ever be fired for choosing IBM, today it’s the same for choosing open source. Not only do open source tools tend to be more up-to-date than commercial tools, they are also easily integrated with other open source tools and users can share their experiences. Most importantly, they can be altered and customized per use case.
Conclusions
For the past four years, we’ve been witnessing an IT revolution. Organizations have a new DNA – which some have started calling ‘DevOps’. This new DNA cannot survive without an IT infrastructure that supports agility. The right IT infrastructure can enhance the agility that DevOps requires, whereas the wrong infrastructure will create friction and ultimately cause failures. Testing has become an integral part of the development lifecycle. It needs to isolate bugs and bottlenecks – but it absolutely cannot stop or slow the release cycle.
Cloud computing and open source tools have become a great facilitator for agility. They replace many of the old techniques, saving a significant amount of time while enabling users to achieve more with less. Apache JMeter, Selenium and AWS allow the Agile-Age professional to do ten times more with ten times less. In this agile age, an investment in testing might just be the smartest investment an organization can make.