Compared to traditional software development, the agile methodology is intended for complex systems with dynamic projects, where to make accurate predictions of the development time is very difficult. As a result it would lose too much money. The number of years of experience have helped make up the agile methodologies.
Predictive versus Adaptive
Development methodologies exist on a continuum from "adaptive to predictive. Agile methodologies are a part of the ADA. One of the key elements of Adaptive development is called Rolling Wave, which determines objectives, but it gives flexibility to the time to get them, these goals are also subjected to possible future changes. How far will come, in time, a goal, an Adaptive development will be more vague about what they spend on that date. A team that uses adaptive development can not report on that will make the next week, but if what features to implement over the next month. If the team asked a prediction of what will be done after six months (or any considerable amount of time) the team will only be able to report on the main objective, or a prediction of the cost you will have.
On the other hand, the predictive methods focus on analysing and planning the future in detail in order to be able to control the possible future dangers. In the most extreme cases, a team that uses a predictive methodology is able to say all of the jobs that will be made over the course of the project. These methodologies are based on a very detailed analysis phase, however, if during the development something goes wrong, it will be very difficult to change the direction of the project. Usually these machines have a change control board, which is to ensure that only the most important changes are added to the project.
Iterative development and development in waterfall
One of the main differences between agile development and the cascade development is that the phase of testing is carried out in several stages. On the Model of desenvoluament in waterfall, there is a stage of testejament when you are finishing one of the phases of implementation, while, in the agile methodologies and especially in the Extema Programming, are carried out in parallel with the development of the code.
As the stages of testing are performed in each small iteration, users can test and validate this small piece of software. This allows users to make better decisions about the future of this program. Have in every iteration of development the opportunity to rethink the way it would continue the program (e.g., the Scrum has at most one month iterations), allows the team to try to maximize establishment the value offered by the program.
This iterative planning allows you to view the development of software such as an organism that was adapted to the changes that were taking place. As long as the software is used, and especially if you have competition, the iterations in the agile development aportarant changes.
Code and documentation
In a letter to IEEE Computer, Steven Rakitin expressed cynicism about agile development, criticizing an article that advocated the agile development as "another attempt to minimize the disciplin of software engineering", and moving the "Work in code for the documentation" to "just want to write code, remember the real programmers don't write documentation".
These aspects are discussed by advocates of agile development, saying that developers should write documentation if it is the best way to achieve the relevant goals, but that there are better ways to get them to write a static documnentació. It is said that the documentation haurià to be barely acceptable (to English Just Barely Good Enough (JBGE), since plenty of documentation serià a waste of time, because usually the developers did not have much faith in a very detailed documentation, because it usually is not synchronized with the code, on the other hand very little documentation or a very poor can give problems for maintenance , communication, learning, etc.