What Is the Agile Iterative Approach and Where Is It Used?
What Is the Agile Iterative Approach and Where Is It Used?
An essential part of Agile development, check out what the iterative approach is an why it is so valuable to break up work.
Join the DZone community and get the full member experience.Join For Free
[Latest Guide] Ship faster because you know more, not because you are rushing. Get actionable insights from 7 million commits and 85,000+ software engineers, to increase your team's velocity. Brought to you in partnership with GitPrime.
To keep up with the market demand, the fast-evolving scenarios of the digital business have placed mounting pressure on CIOs, to deliver equally fast software development.
The 12th Annual State of Agile report found that one of the top five reported reasons for adopting Agile methodologies, was accelerated software delivery, increasing to 75% in 2018. Whereas Iterative Planning, with an 88% increase, was the second most-employed Agile Technique in 2018.
What Is Agile Iterative Development?
Agile methods of software development are most commonly described as iterative and incremental development. The iterative strategy is the cornerstone of Agile practices, most prominent of which are SCRUM, DSDM, and FDD. The general idea is to split the development of the software into sequences of repeated cycles (iterations). Each iteration is issued a fixed-length of time known as a timebox. A single timebox typically lasts 2-4 weeks.
The Agile Iterative Model is perhaps best explained by Craig Larman in his book, Agile and Iterative Development – A Manager’s Guide. Larman explains that the model functions on an ADTC Wheel (Analysis, Design, Code, Test). This is to say that each iteration cycle incorporates the Analysis of the plan, the Design, its Code and simultaneously the Test. The ADTC wheel is more technically referred to as the PDCA (Plan, Design, Check, Adjust) cycle. The Agile team implements the PDCA cycle on each iteration separately in the following manner:
P (Plan) – Iteration Planning
In this event, the team collaborates to discuss the objectives for the next iteration. It also summarizes the work done and determines the team backlog required for the next iteration.
D (Design) – Iteration Execution
This is the ‘do’ step where the development of the software, its design and coding takes place. If it’s a second or third iteration, then functionality testing is also conducted. The team collects user stories and prepares for the next step, that is Iteration Review.
C (Check) – Iteration Review
Also known as the ‘check’ step, Iteration Review is carried out with the Product Owner. The team shows the tested deliverable to the Product Owner, who then reviews the completed work and ascertains whether all criteria have been met.
A (Adjust) – Iteration Retrospect
In this event, the team evaluates the entire process of the iteration from the first step. It essentially works on any improvements that are gathered in previous iterations. New problems are identified along with their causes. Before the team starts the next cycle again, team backlog is refined for future reference.
The iterations are repeated for optimizations and improvisations and, the lessons learned from previous cycles are applied in the next cycle. Until a fully functional software is ready to hit the market.
Benefits of Agile Iterative Development
Agile Iterative development was created as a more flexible alternative to the otherwise traditionally rigid method of Waterfall.
The Waterfall method is a linear approach that proceeds sequentially from one phase to next, without allowing the development to return back to the previous step. Goes without saying, the Waterfall method causes impending repercussions, that include but are not limited to increased development costs, prolonged software delivery, and additional resource input.
Sudhakar Gorti, CIO for Environmental Data Resources agrees, “One of the major benefits of Agile over Waterfall is that you see a deliverable on an iterative basis and the Product Owner can decide to make changes to the product backlog.”
Customer Involvement – Agile Iterative development encourages user contribution. After each iterative cycle, customer feedback is obtained, and the product is then subjected to necessary changes based on that feedback. This aspect brings adaptability into the project’s framework.
Favors Evolution – The planning in the Agile Iterative development process is a continuous feat, that allows space for evolving ideas, instead of an extensive planning that only precedes execution and testing in Waterfall.
Risk Assessment – Agile iteration allows risk identification and mitigation early on in the development to avoid speed bumps later down the timeline.
Rapid Delivery – The work is divided into small cycles, allowing team members to dedicate their focus and deliver on time. Moreover, testing is conducted simultaneously to coding and design in every iteration, which greatly reduces the time needed to achieve completion.
Where is the Agile Iterative Approach Employed?
The Agile Iterative Approach is best suited for projects or businesses that are part of an ever-evolving scope. Projects that do not have a defined set of requirements intended for a defined set of time. For such cases, the Agile Iterative Approach helps to minimize the cost and resources needed each time an unforeseen change occurs.
nTask was created using the Scrum methodology. Scrum enables independent teamwork using the ADCT wheel, for which various nTask teams worked collaboratively in two-week sprints (iterations).
Since the scope of nTask is continuously evolving, and additions are made on a weekly basis, the iterative approach enables the nTask development team to switch back and forth for optimizations.
Brad Murphy, CEO of Agile consultancy Gear Stream, believes that Agile Iterative approach is now extensively serviceable in zones other than software development.
He explains how Digital Marketing can benefit from the iterative approach by using the element of frequent delivery to collect customer feedback. Fastly solicited feedback can directly aid in improving subsequent iterations to attract larger traffic.
According to investigations of The Deloitte Center for Government Insights, 80% of major federal IT projects termed themselves to be “Agile Iterative” in 2017. One reason for this rise was easily accounted for by the reduction in time taken to complete a project in harmony with the total cost of the project.
Another report from Deloitte in 2015 reveals banks like Barclays have also begun utilizing iterative approaches such as Scrum on more than 20% of their internal audits. Barclays conceded to benefiting from SCRUM in areas such as risk management and planning.
Agile Iterative Approach is not limited to IT organizations and financial firms only. Walmart uses the Agile Iterative Approach for internal audits. One of their many successes post-Agile induction included time-saving in comparison to traditional audit approach.
Ricky Barr, managing director Internal Audit, United Airlines, sums up his experience of employing Deloitte’s Agile Internal Audit as “a faster audit-cycle-time via time-boxed iterations”.
Up until 8 years ago, many corporations such as Gartner’s vast majority of clients still used traditional Waterfall methods for application development.
But with demonstrable benefits of Agile over the years, that ranged from increased business value to strong organizational impact, the Agile community has expanded from start-ups to Global brands like that of IBM and Cisco.
Published at DZone with permission of Fred Wilson , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.