Iterative Model
WHAT IS ITERATIVE MODEL?
Iterative development is a way of breaking down the software development of a large application into smaller chunks. In iterative development, feature code is designed, developed and tested in repeated cycles. With each iteration, additional features can be designed, developed and tested until there is a fully functional software application ready to be deployed to customers.
Typically iterative development is used in conjunction with incremental development in which a longer software development cycle is split into smaller segments that build upon each other.
Iterative and incremental development are key practices in Agile development methodologies. In Agile methodologies, the shorter development cycle, referred to as an iteration or sprint, is time-boxed (limited to a certain increment of time, such as two weeks). At the end of the iteration, working code is expected that can be demonstrated for a customer.
Iterative development contrasts with a traditional waterfall method in which each phase of the software development life cycle is “gated.” Coding doesn’t begin until design of the entire software application is complete and has gone through a phase gate review. Likewise, testing doesn’t begin until coding is complete and has passed necessary phase gate reviews.
The purpose of working iteratively is to allow more flexibility for changes. When requirements and design of a major application are done in the traditional method (sometimes referred to as BDUF or Big Design Up Front), there can be unforeseen problems that don’t surface until development begins. By working iteratively, the project team goes through a cycle where they evaluate with each iteration, and determine what changes are needed to produce a satisfactory end product.
THE ADVANTAGES OF ITERATIVE MODEL
- In iterative model we can only create a high-level design of the application before we actually begin to build the product and define the design solution for the entire product. Later on we can design and built a skeleton version of that, and then evolved the design based on what had been built.
- In iterative model we are building and improving the product step by step. Hence we can track the defects at early stages. This avoids the downward flow of the defects.
- In iterative model we can get the reliable user feedback. When presenting sketches and blueprints of the product to users for their feedback, we are effectively asking them to imagine how the product will work.
- In iterative model less time is spent on documenting and more time is given for designing.
THE DISADVANTAGES OF ITERATIVE MODEL
- Each phase of an iteration is rigid with no overlaps
- Costly system architecture or design issues may arise because not all requirements are gathered up front for the entire life cycle
Comments
Post a Comment