Agile development is sometimes criticized as cowboy coding. Extreme
Programming's initial buzz and controversial tenets, such as pair programming
and continuous design, have attracted particular criticism, such as McBreen and
Boehm and Turner. Many of the criticisms, however, are believed by Agile
practitioners to be misunderstandings of agile development.
In particular, Extreme Programming is reviewed and critiqued by Matt
Stephens's and Doug Rosenberg's Extreme Programming Refactored.
Criticisms include:
Lack of structure and necessary documentation
Only works with senior-level developers
Incorporates insufficient software design
Requires too much cultural change to adopt
Can lead to more difficult contractual negotiations
Can be very inefficient -- if the requirements for one area of code
change through various iterations, the same programming may need to be done
several times over. Whereas if a plan was there to be followed, a single
area of code is expected to be written once.
Impossible to develop realistic estimates of work effort needed to
provide a quote, because at the beginning of the project no one knows the
entire scope/requirements
Drastically increases the chances of scope creep due to the lack of
detailed requirements documentation
The criticisms regarding insufficient software design and lack of
documentation are addressed by the Agile Modeling method which can easily be
tailored into agile processes such as XP.
Agile software development has been criticized because it will not bring
about the claimed benefits when programmers of average ability use this
methodology, and most development teams are indeed likely to be made up of
people with average (or below) skills.