DEVOPSdigest asked experts from across the IT industry for their opinions on the top tools to support DevSecOps. Part 3 covers security and monitoring ...
The past few years have seen some very dramatic and eye-opening changes in software development. We have fully redefined what it means to be fast in product development and deployment, as well as the skills and tools required to be successful in the space.
Take agile software development: Agile software development methods were introduced less than a decade ago, but their popularity has seen a steady rise. However, according to Zephyr's annual How the World Tests report, while a large number of the companies are adopting agile testing methodologies, they face a fair number of obstacles in successful adoption. Here, we’ll cover the key findings of that report and what they mean for those looking to adopt an agile testing process.
Automation is What Ails You
As we know, the beauty and pain of agile development is the timeline. Relying on two to three week sprint cycles means little to no room for human error. By the time it comes to testing, developers are facing only three or so business days to configure and write test cases. That often leaves a small one or two day window to fix, retest, and go live. That is a very short time frame to do a lot of work. These timelines often lead to developers looking for ways to automate the testing processes. A lack of automation, or not enough time to run all the testing required, can create a huge barrier to agile adoption for many companies, regardless of size.
In fact, 35 percent of our survey respondents ranked the lack of automation testing as the biggest obstacle to agile adoption. If you can’t automate your testing, then you likely can’t meet the sprint timelines required for agile adoption, or you are forced to reduce the functionality that you implement per sprint. This means having to decrease the number of new features or functions your teams deliver, which is not good news for you or your customers.
The Skill Gap
If an automation testing solution is all that you need to successfully adopt agile processes throughout an organization, that shouldn’t be hard to fix, right? Well, not quite. While many enterprise level organizations are adopting automated testing, there is a distinct gap in the critical skills required for continuous delivery. According to our survey, 45 percent of respondents indicated that was the primary reason they had not yet automated their testing.
There are few different ways to tackle this problem based on the needs and size of the company. The first is to invest in acquiring the skills to write the necessary automated testing scripts quickly and efficiently. That can mean focusing on additional training to upgrade the current team skills, or recruiting new employees who already have them. Keep in mind, once you decide on an automation tool, you have a smaller talent pool to recruit from and you will have to pull people off client work for training. However, if you adopt the tool without the skills training, your team won’t fully understand the tool, and thus will be slow to adopt and apt to manual errors.
Another option, of course, is to keep labor costs lower and not invest in automation testing. This course of action will minimize your automated test repository, potentially extending the delivery timeline. That means you likely won’t meet your sprint deadlines. There is also a chance customers may view your platform or delivery as inflexible due to its lack of customizable features.
Larger, enterprise-level companies have a much higher percentage of automated testing in place when compared to smaller companies. Smaller organizations likely subscribe to the “shipped is better than perfect” methodology. If you’re a startup or a small company, you simply don’t have the time or the money to invest in automation -- you are laser focused on getting the project completed and out the door.
According to our research, while 70 percent of smaller companies follow an agile methodology, only 30 percent use automated testing in deployments frequently. They lack the resources in terms of staffing or money, or they suffer from a lack of a defined development and testing process. Regardless of the why, smaller companies need access to both the training and solutions for real-time, automated test management to improve their products.
Finding the “One”
Depending on the technology your company is looking to develop, there may not be a sufficient automation tool available on the market. Once you have picked your platform, the number of solutions is already limited. For example, if you’re developing a website, you’re already limited to automated testing tools specially designed for websites. Our survey reported 22 percent of respondents identifying missing tool sets or a support deficit within the current process as preventers to automated testing. Among the automated tools available, many may have a support deficit, further narrowing available automation tools.
The Devil You Know
Without a team experienced in automated testing, it can be very hard to determine a threshold of what can be automated versus what can be manually tested. This often creates a decision roadblock. And, as with any decision roadblock, most chose to travel the path they know, rather than take a chance on the path they don’t. In this case, from small to enterprise-level companies, 13 percent of our respondents claim to struggle with what to automate and what to manually test, creating roadblocks to automation deployment. They choose the devil they know (manual testing), rather than the one they don’t (automation), even though manual testing is likely less efficient and actually adding time to deployments.
Companies everywhere are looking for the best ways to speed up delivery and deployment of their products. Even though agile processes are one of the best methods to do so, the adoption of these processes is far from easy. Automated testing solutions can help make that transition a little easier, but there are barriers. The training and resources required to overcome those barriers to automation are worth the investment. Each of these points clearly requires a C-level, top-down understanding of the impact of adopting agile production without a successful automation partner and what it can mean to an organization and its long-term success.
Hamesh Chawla is VP Engineering at Zephyr.