Krystian Blaszkowicz u1202807 Iterative and incremental development model Iterative and incremental development type models are a combination of iterative method and incremental build model. This model is widely used in large scale project development as in many cases software development cycles have multiple iterations running at the same time overlapping each other in layers. Over this research task I will be pinpointing key features like the advantages and disadvantages of this development model to get insight if this is the suitable model for our project. The idea of this model is to develop a method through repeated iterative cycles and in smaller incremental portions at a time allowing software developers to take advantage of earlier iterations of the development cycle providing space for learning and improvement. Learning comes from both the development and use of the system, where possible key steps in the process start with a simple implementation of a subsection of the software requirements. The main functionality of these two models working in conjunction is that it adds a large amount of flexibility to the project compared to other development models like waterfall where no task can carry on without the preliminary one being completed. Krystian Blaszkowicz u1202807 Phases of iterative and incremental development model Inception identifies project scope, requirements (functional and non-functional) and risks at a high level but in enough detail that work can be estimated. Elaboration delivers a working architecture that mitigates the top risks and fulfills the non-functional requirements. Construction incrementally fills-in the architecture with production-ready code produced from analysis, design, implementation, and testing of the functional requirements. Transition delivers the system into the production operating environment. Each of the phases may be divided into 1 or more iterations, which are usually time-boxed rather than featureboxed. Architects and analysts work one iteration ahead of developers and testers to keep their work-product backlog full. Larman, Craig (June 2003). "Iterative and Incremental Development: A Brief History". Computer 36 (6): 47–56. Advantages Produces business value early in the development life cycle. Better use of scarce resources through proper increment definition. Can accommodate some change requests between increments. More focused on customer value than the linear approaches. Problems can be detected earlier Disadvantages Requires heavy documentation. Follows a defined set of processes. Defines increments based on function and feature dependencies. Requires more customer involvement than the linear approaches· Partitioning the functions and features might be problematic. Integration between iteration can be an issue if this is not considered during the development Conclusion In conclusion the iterative and incremental model combination is a viable option for our project as it has enough flexibility to hold up against the problems often seen in software development like frequent bug fixes and unsteady development stages that often need much backtracking. With the benefits there are a few disadvantages that could greatly impact the productivity of this method on our project like the large amount of documentation and communication that has to be taken to successfully complete each task in the iterative model. There is a large amount of evidence providing that smaller projects like ours may not fully use the benefits of the incremental model when it’s used in conjunction with the iterative model. In the reality and scope of our project I think the advantages would be greatly maximized by just sticking to incremental development models. Krystian Blaszkowicz u1202807 Reference Dr. Alistair Cockburn (May 2008). "Using Both Incremental and Iterative Development". STSC CrossTalk (USAF Software Technology Support Center Craig Larman, Victor R. Basili (June 2003). "Iterative and Incremental Development: A Brief History". IEEE Computer (IEEE Computer Society) 36 (6): 47–56.