Iterative Application Development (IAD) is a software development method which users and designers see as equal partners. The I stands for developing in iterations (iterative), along with the user (interactive) and gradually expand to a larger utility (incremental).
Phases and activities
In the past, several development methods devised and tested in practice. Methods should ensure that the development of a system is successful.
IAD describes a method in which a project in relatively small increments will be divided. These parts are developed separately, the time taken for development depends on the size of the part, after development, it is possible that the portion immediately usable. Each part is called a pilot. By applying this method, it is possible to include a major project by a large group of people to perform. Teams can develop in parallel a pilot. During the phase “introduction” to the pilots combined into a useful product.
The development cycle (one iteration) consists of three phases in a repetitive way out: Study definition, development and pilot implementation. Each cycle produces a pilot project. That a pilot is a small part, but it means a number of the total (and possibly still unknown) system covers. Only in the last pilot to all system requirements are met. After each cycle a useful profit. There is frequent communication with users and the client, whether it be content, if new requirements are for problems seen. This provides a major advantage: at any time adjustments may be made to the needs of the client. Thus seeks to achieve optimal results for the client to connect.
There are four different types of development. Which version is suitable for use depends on the organization and the final product. This depends on the complexity of the system, the stability of the system and the presence or absence of the need for quick delivery.
The different variants: evolutionary development, incremental yield, incremental development and Big-Bang enter.
In applying evolutionary development, all three phases iteratively through. The system is gradually developed into the final desired result. The result is what is in the beginning often not known in detail, but in this variant understand it evolves with it.
With incremental yield is intended that all requirements to be fully described. Then the system iterative phases. The first definition phase study is performed once. This is contrary to evolutionary development, that stage where as many runs as the pilot design and implementation phases.
With incremental development (Rapid Application Development) it is assumed that the system and the system concept described previously. After the system is developed in several iterations, then the result is at once introduced.
At Big-Bang enter the system iteratively developed, as in evolutionary development. The introduction will not take place until after the last pilot is completed, such as incremental development. The first two phases, creating a definition study and develop pilots done iteratively. The final implementation phase is completed once.
Benefits of IAD
By using IAD are some benefits. There are obvious for any condition. IAD example, is based heavily on participation and good communication between developers and users.
There is a large (r) user involvement and client. This leads to misunderstandings because of disagreements between the developers and users quickly can be overcome. Because there is a faster “tangible” results, users will also be able to more easily targeted (re) requirements.
By rapidly “tangible” results show will allow users and client more confidence in a good result.
Since after each cycle through a part of the system for users and clients can be used directly, they are emphatically in the development process and they get used to the system during development.
Risks can be better managed by smaller pieces to be developed. Bottlenecks are so quick to light.
Complex systems are clearer and less complex to implement it step by step to a comprehensive income working without the need of a complete design is created.
At the end of each iteration, a useful product, even if the development is discontinued put. In a linear method would often never made use perch.
Changes in organization can be quickly incorporated into the development process.
Disadvantages of IAD
There are obvious disadvantages. Some disadvantages:
Because during the development process needs to be adapted and refined, it may be that the original purpose fades. It can happen that it continues to change and it never finished. This is called Scope Creep.
Project managers who are accustomed to linear development can be confused by the strong dynamics.
The rapid development has the potential to draw a bill on the organization and resources of the great dynamics.
Inexperience with the way of working can lead to misunderstandings and disappointments..
Development Using IAD
As already described in IAD is a number of activities. Working in an iterative method provides several advantages.
The complexity of the problem to be solved reduces because there are only a part of the problem is tackled.
Yielded tangible results quickly. This makes it easier to get feedback or resolving urgent issues to discuss this.
Because after each completed circle it is possible goals, requirements, solutions and the strategy to discuss and if necessary adjust creates the flexibility needed a rapidly changing project environment.
The system to be developed to divide into pieces one by one iteratively developed, the greatest return on committed effort are achieved.
Risks can be better managed because the products are evaluated after each iteration
Phases and Activities of IAD
Developing a system consists of three phases; definition phase, development and pilot implementation. These phases are a pilot for a one through which a portion of the system will be. Later all the parts together as a system.
In the first phase the design goals of the system studied and described. It also noted the limitations and conditions. If there is already a pilot, the pilot has been completed in this phase evaluated. This phase is more adapting and working out the final system a significant contribution. Each cycle of the development of the system is always the final plan is refined and further developed. This is the wish of how the system should look increasingly clear.
After a pilot clear how it should look like they started in the pilot development. There may be a pilot, or when several pilots are handled in parallel, several pilots simultaneously. In this phase the development of the pilot site development and pilot design workshops.
During the pilot design workshops looks at how the overall functional specifications for the construction of the pilot look. A prototype of the final system. Parts of the pilot or pilots are referred to by one or more development teams built, called A-teams. During this work, the budget and tight schedule planned and not changeable. By ensuring that pilots can be reused in other pilots, is a well thought out software structure. When this is achieved can be quickly matched with high quality and delivered products. A teams are small groups of professionals working well together, each with its own specialization and all in all stages of development cycles to work. Opposite, users involved in developing operating in U-teams.
After the pilot has been developed in the previous stage, the stage will be made to introduce and be introduced into the organization. To ensure that the experiences gained from the pilot are used in these pilots should ensure that effective information can be collected and stored.