The iterative model
is a particular implementation of a software development life cycle (SDLC) that focuses on an initial, simplified implementation, which then progressively gains more complexity and a broader feature set until the final system is complete. When discussing the iterative method
, the concept of incremental development
will also often be used liberally and interchangeably, which describes the incremental alterations made during the design and implementation of each new iteration.
Throughout this article we will take a deeper dive into the iterative model, including where it originated from, how the process is actually implemented within a project, and both the advantages and disadvantages that can arise from its use, so let's get crackin'!
Some more specific takes on SDLC include:
While agile
development models such as the iterative model have come to be a generally accepted evolution over the traditional waterfall model
of the past, it turns out that iterative methods were used in projects as early as the 1950s. During this period, the United States Air Force and NASA worked together to develop the X-15 hypersonic aircraft, using a largely iterative design process throughout. While this wasn't directly a software development project, the success of this process led NASA to use an iterative model for the software development of Project Mercury
, which was the first manned spaceflight for the United States.
In the subsequent decades since, iterative methods have been implemented in a wide range of software applications, from modern web applications and high-performance gaming clients, to the United States Department of Defense's software acquisition standard document 5000.2
, stating that "There are two approaches, evolutionary and single step [waterfall], to full capability. An evolutionary approach is preferred."
Unlike the more traditional waterfall model
, which focuses on a stringent step-by-step process of development stages, the iterative model is best thought of as a cyclical process. After an initial planning phase, a small handful of stages are repeated over and over, with each completion of the cycle incrementally improving and iterating on the software. Enhancements can quickly be recognized and implemented throughout each iteration, allowing the next iteration to be at least marginally better than the last.
planning
stage to map out the specification documents, establish software or hardware requirements
, and generally prepare for the upcoming stages of the cycle.planning
is complete, an analysis
is performed to nail down the appropriate business logic, database models, and the like that will be required at this stage in the project. The design
stage also occurs here, establishing any technical requirements (languages, data layers, services, etc) that will be utilized in order to meet the needs of the analysis
stage.planning
and analysis
out of the way, the actual implementation
and coding process can now begin. All planning, specification, and design docs up to this point are coded and implemented into this initial iteration of the project.implemented
, the next step is to go through a series of testing
procedures to identify and locate any potential bugs or issues that have have cropped up.evaluation
of development up to this stage. This allows the entire team, as well as clients or other outside parties, to examine where the project is at, where it needs to be, what can or should change, and so on.Now the real fun begins! This is the crux of the entire iterative model, whereby the most recently built iteration of the software, as well as all feedback from the evaluation
process, is brought back to the planning & development
stage at the top of the list, and the process repeats itself all over again.
waterfall method
-- and thus the process will take a great deal of time -- the beauty of the iterative process is that each stage can effectively be slimmed down into smaller and smaller time frames; whatever is necessary to suit the needs of the project or organization. While the initial run through of all stages may take some time, each subsequent iteration will be faster and faster, lending itself to that agile
moniker so very well, and allowing the life cycle of each new iteration to be trimmed down to a matter of days or even hours in some cases.waterfall model
may work well for large organizations with hundreds of team members, the iterative model really starts to shine when its in the hands of a smaller, more agile team. Particularly when combined with the power of modern version control systems, a full "iteration process" can effectively be performed by a number of individual team members, from planning
and design
through to implementation
and testing
, with little to no need for outside feedback or assistance.waterfall model
, which emphasizes nearly all user/client engagement within the initial stages of the project during a brief crunch time period, the iterative model often requires user engagement throughout the entirety of the process. This is sometimes an unfortunate obligation, since each new iteration will likely require testing and feedback from users in order to properly evaluate any necessary changes.With the adept agility and rapid turnaround of iterative model
projects, you need an exception management tool that can keep up the pace, without the overhead of user-intervention. Airbrake's error monitoring software provides real-time error monitoring and automatic exception reporting for all your development projects. Airbrake's state of the art web dashboard ensures you receive round-the-clock status updates on your application's health and error rates. No matter what you're working on, Airbrake easily integrates with all the most popular languages and frameworks. Plus, Airbrake makes it easy to customize exception parameters, while giving you complete control of the active error filter system, so you only gather the errors that matter most.
Check out Airbrake's error monitoring software today with a free 14-day trial, and see for yourself why so many of the world's best engineering teams use Airbrake to revolutionize their exception handling practices!