As everybody is talking about being agile, the word agile has got so much importance that the one of the word searched most in Google is like agile development, so now you know why people are looking at agile and why one is more serious about being agile, with agile being applied for more and more effective management of projects and overall development, so this has more than one criteria that needs to be fulfilled and one among them is Risk based selection for agile iterative life cycle methods, to know more go through the article below,
This risk based selection mainly helps project management and teams in selecting the best iterative methods for their projects, based on the major risks they want to tackle. This highlights the focus of the different methods, ie. which risks are mainly needed to be addressed.
In the last decade agile software development methods and life cycles (SDLC) this became very successful and as such a lot of hype was created around them. The abundance of methods that have been developed may look scaring at first like agile, incremental, iterative, evolutionary, lean and extreme are some of the terms used. It is not easy to select the right method for the problem at hand. So as a project team the focus is on tackling a project's risk. Choosing the right iterative development method which is an important activity early in a development life cycle.
Compared to the waterfall approach all iterative methods have in common that their main deliverable in (almost) every iteration is an integrated, tested, executable system. All development processes (requirements, analysis and design, coding, integration and test) are performed in every iteration.
Differences between the methods lie in the kind of risks where they put the focus on, the length of iterations, the amount of documentation, the importance of modeling.
What follows is an overview of the best-known methods, their focus, and main references. Use this overview to make an educated selection for your projects.
Spiral Model
Although not the first application of iterative development, but then Barry Boehm who was the first to explain why iteration matters. The spiral model has explicit activities to identify risks, tackle them via prototyping and evaluate them before going to the next iteration.
Incremental Development
This is often used together with iterative development. The main focus is on a staged integration. The major risk integration near the end of development is tackled. In traditional waterfall oriented organization, incremental development has the advantage that you can work in an iterative way only at the back end of the life cycle activities (coding, integration, testing) and do the front part activities (requirements, analysis & design) in a waterfall way. No difficult cultural and organizational change is needed with the business partners. A disadvantage of this approach is that one can remain inflexible to requirements changes. With a fully iterative process one can also do the requirements activities with every iteration, and they can cope with requirements changes, but it also requires more involvement from the customer.
Rational Unified Process (RUP)
An iterative incremental development process by the IBM-Rational which is widely accepted by industry. The process is architecture driven, use case driven, and risk driven, in right balance. Compared to the agile methods there is more emphasis on documentation and visual modelling. IBM-Rational provides a whole toolsuite and web based process asset library to support the process. RUP is highly tailorable and scalable, although the tailoring can be a challenge for somewhat smaller projects.
eXtreme Programming (XP)
XP is the best known of the agile methods. The aim is on coping with unstable requirements. Emphasis is put on communication, simplicity, early deliveries and testing. The method is based on a set of core practices like test-driven development, continuous integration, pair programming, small releases, customer tests, simple design, refactoring, metaphor, collective ownership, coding standard, planning game, whole team and sustainable pace. XP works very effective and is largely productive for small highly skilled teams. The method is rather difficult to scale to large distributed teams. It can also be difficult to use in traditional development organizations.
Scrum
A method which emphasizes on project management and team work, with less focus on the engineering practices. Iterations are defined as 30 days sprints. Daily 15 minute meetings (scrums) help the team stay on track and make fast progress. Customer prioritized features are kept in a backlog. The method is widely applicable, both on new projects and on maintenance, at the team level which might be part of a larger organization.
Test-Driven Development (TDD)
Focuses on testable requirements and test automation. The development cycle is turned around like starting with a test case and a failing unit test before implementing the code. Use unit test tools and build a regression testsuite on the go. This is one of the XP practices that seems to be more difficult to adopt in traditional development environments.
Finally the Conclusion
An iterative development life cycle is the obvious choice in todays flexible software business. Choosing the right variant of iterative development should be based on the risks you want to tackle in your project. This article gives you a first guideline.