As you may have already gathered, I have some reservations about the value of Agile and XP methodologies. I’ve even gone so far as to say that they are a license to cut corners.
I just read a very interesting post by Tony Wright, on the relative cost of fixing a bug in different stages of a project. Do we need a better justification for applying a little bit of forethought to a problem before rushing headlong into the implementation phase of a project? I guess the justification of an iterative development plan is that there is always a requirements, and design phase coming up that defects can be fixed in. The problem with that is that it blows out the project timeline, because time spent on developing worthwhile functionality is being spent on defect fixing. Not only that, the ‘agile’ ethos promotes a mentality that actively avoids solving problems ahead of time. That leads to short-termism that ultimately bakes bugs into the code!