I was recently reminded of an excellent whitepaper by Martin Fowler concerning agile methodologies. I read this whitepaper a few years ago but it's still highly relevant. A key point is that software can be self documenting and describes the design without extensive formal documentation. Iterative development and testing is obviously essential to enable feedback that helps adapt to changing requirements and scope. A formal process is not a substitute for a skilled developer. It's a very worthwhile read... click here.
As an aside, Martin Fowler will be in Brisbane this week for the JAOO conference. It looks like a pretty cool event and I notice that Joel Pobar will be presenting on .NET language pragmatics. That's some pretty cool company.