The Agile development life cycle is essentially different from more conventional development cycles, in that it is a constantly ongoing process instead of a one stage at a time, step by step process of development. For instance, in a more traditional development life cycle each individual stage may be completed with a high investment of effort, in detail and in order. However, in the Agile development life cycle only the initial stages of Planning and Analysis require that high level of commitment. To get a better grasp of things, let's have a look what a more traditional process might look like:
In comparison, an Agile development lifecycle may look something like this:
As can be seen above, the agile development cycle is a very dynamic process. After the initial Planning and Analysis stages are over, most of the work happens in between Sprints. A Sprint is an agreed upon duration of time in which the team works on various features. The duration of the Sprint depends on the preferences of different teams. What can also be observed is that the software is released in increments, with a release usually happening at the end of a Sprint. This dynamic work model allows Agile teams to bypass the problem of delivering a product that does not meet the end users requirements.
Customer feedback can be used to constantly improve upon the project, and to provide the correct product to the end user. To sum it up, it needs to be mentioned that this development life cycle is highly adaptable in any work or project development environment, and is not exclusive to the software industry due to its process visibility at all stages. However, there are some drawbacks to this approach. Most notably the process of documentation gets left behind. Due to the constant real time nature of completing work in Agile keeping detailed logs of documentation becomes difficult. Secondly, the immediate feedback gathered from end users can sometimes become a burden on the team. When the end users get used to getting their requirements met instantly, the demands for new features are bound to increase. This can sometimes swamp the development team and put too much on their plates at once.