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:
|Rapid Application Development||Test-Driven Development||Waterfall Model|
|Software Development Life Cycle||Extreme Programming||Scaled Agile Framework|
|Agile Model||Scrum||Rational Unified Process|
|Big Bang Model||V-Model||Conceptual Model|
|Kaizen Model||Kanban Model||Spiral Model|
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.
planningstage to map out the specification documents, establish software or hardware
requirements, and generally prepare for the upcoming stages of the cycle.
planningis complete, an
analysisis performed to nail down the appropriate business logic, database models, and the like that will be required at this stage in the project. The
designstage also occurs here, establishing any technical requirements (languages, data layers, services, etc) that will be utilized in order to meet the needs of the
analysisout of the way, the actual
implementationand 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
testingprocedures to identify and locate any potential bugs or issues that have have cropped up.
evaluationof 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
agilemoniker 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 modelmay 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
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!