Agile Software Construction

In the last couple of chapters, we have looked at Agile Modelling, which applies agile philosophies to the modelling activities that take place within software development projects. In this chapter and the next, we will start to look at how these philosophies have also been applied to the act of programming. In our case, we will look at Extreme Programming (more commonly known as XP). XP is part of the agile movement that focuses on the writing of the software that will implement the required system. This may involve writing Java code, Smalltalk, C++, C#, database tables, XML files, etc.
XP has been widely misunderstood and is often associated with hacking, a lack of planning, avoiding the creation of documentation and of programmers wildly attacking code while working in pairs. One ex-colleague joined a company a few years ago that claimed to have adopted XP. One of their "rules" associated with XP was that the developers were not allowed to write any comments in their code (they used Java so they had rules that Javadoc was illegal). Their claim was that code was "self documenting" and, anyway with XP, you did not need any form of documentation.
All of these myths are wrong; XP does not say that you do not need documentation, or that you can hack or that there is no planning involved. Hopefully, as you will see from this chapter, XP places a great deal of emphasis on planning, and on the production of software...