Another weakness of XP is that there are some common misconceptions in circulation. I think these are a result of people who read the XP books and try to implement the practices without understanding the principles behind XP.
Unfortunately, there are teams who have adopted XP because they believe it frees them from having to do design. XP is not a license to hack. Just because the emphasis is on working software and simple design does not remove the need to do design (see Chapter 6). No doubt these teams live in an environment where the design burden in terms of undue ceremony and documentation is high, but swinging the pendulum to the complete other extreme is not the correct response either.
Good software developers always think about a problem and plan their approach before they write any code. The difference is that in XP, instead of focusing on a detailed design document as the key output of the design process, the most important attribute is the software and the process you go through to produce the design.
Many people feel that XP teams are not disciplined. Actually, XP requires a great deal of discipline. The misunderstanding comes in through the definition of discipline. Typically, those who think XP teams are not disciplined think of discipline as process compliant, where the process dictates the production of documents in a carefully staged order of analysis then coding. These people use the absence of the documents created in traditional development (e.g., requirements documents, design documents) as evidence that agile teams are undisciplined. There are also feelings of discomfort that agile teams do not put any effort into understanding user requirements or do not do design, when in fact they do. The difference is that with agile approaches, the emphasis is on the software, not documents, and making a decision as late as possible.
Discipline is more than just documents or rules; it is a function of the people in the team. Agile development provides a simple model that can be used to give a project a regular heartbeat with a constant understanding of progress and learning. It is up to the people in the teams to take advantage of the information they have. This is really no different than in traditional development: Discipline is up to the people on the team and not an attribute of the methodology.