Agile is a must for development shops. Agile is a mature, iterative, collaborative methodology that breaks the development process down into shorter sprints. At its core, Agile development is about small iterations, test automation and a continuous integration pipeline.
Waterfall Was Created For a Perfect World, But We Don't Live In One
Agile is a reaction to the slower, sequential approach known as Waterfall. Where Waterfall requires upfront planning to ensure that all details are accounted for, with no room for surprises or changes, Agile accounts for the inevitability of change, adapting to the project as it unfolds.
“Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development.” (Search Software Quality)
To understand the advantages of Agile, it’s important to first understand the more traditional Waterfall methodology:
- It is a sequential design process: discover, plan, build, test, review
- Each project is based on the extensive collection of clear documentation gathered at the beginning
- The whole product is only tested at the end of the cycle
- It doesn’t take into account a client’s evolving needs or leave any room for revision
Agile Was Created for the Real World
With Agile, your work is divided into small, manageable tasks and testing is done continuously throughout the software development lifecycle. It can’t be cut at the end, meaning you go through every phase (analysis, design, coding, testing) at every iteration. Testing never gets squeezed in at the end, put off to a future iteration or ignored altogether, as often happens with the Waterfall method. The beauty of working the Agile way is that every two to four weeks the customer gets working software — a feat that’s nearly impossible with Waterfall.
Image source: http://forty.co/agile-design-what-weve-learned/
Why Automated Testing?
Automated testing is one of the most important aspects of the Agile method, and one of the biggest shifts developers have to make when switching over. So to answer your question now: No. You cannot switch over to Agile without also using automated testing. Agile relies on fast feedback by testing each incremental change, which is impossible to do manually. Therefore small automated tests become an essential component of each and every phase of the Agile development process. Automation opens the gates for continuous integration and allows developers a chance to break free of the rigid, unrealistic Waterfall method. Image source: http://startuprx.us/2015/salesforce-agile-development/
What Does It Take for a Team to Succeed With Agile?
Moving to Agile is more than just changing a few processes and habits. It requires a change in culture. This is often the most difficult part for a team. For years, many development shops have tried and failed to adopt Agile because they didn’t understand just how differently an Agile team must function from a Waterfall team. To be successful in Agile, the whole team has to be on board, changing habits, practices and — to some degree — the entire culture of the shop. You may need to hire some new developers with experience in onboarding test automation infrastructure and DevOps tools. But if you can make the shift successfully, the whole team will enjoy a number of benefits:
- The smaller, more manageable tasks allow the project team to focus on high-quality development, testing and
- collaboration, and testers and developers collaborate daily, delivering high-quality software with less rework.
- Small and repeatable automated tests (Unit, API, Integration and Functional UI) catch issues before they have a chance to cause problems.
- Continuous integration keeps it all together and provides faster feedback.
- In the end, you can ship better code faster.
You now understand the difference between Waterfall and Agile, right? Let me recap! Waterfall moves slowly. Using this method, projects are almost never completed on time and are usually infested with bugs. Agile breaks down tasks and allows for revisions, making it easy to ship modules of better code faster. If you haven’t already, now is the time to get your development team together and talk about shifting to Agile. Trying new things can be overwhelming and even scary, but if you think small, you can sprint your way to success. It’s the Agile way! Greg Sypolt (@gregsypolt) is a senior engineer at Gannett and co-founder of Quality Element. He is a passionate automation engineer seeking to optimize software development quality, while coaching team members on how to write great automation scripts and helping the testing community become better testers. Greg has spent most of his career working on software quality — concentrating on web browsers, APIs, and mobile. For the past five years, he has focused on the creation and deployment of automated test strategies, frameworks, tools and platforms.