Assessing Your Needs and Requirements
I hate writing documentation. To a certain degree, I don't like finding out what exactly it is that my customer wants either (because we all know exactly what customers need). Gathering requirements just isn't as fun as hacking out some code and making the little box do something.Sadly, this guerilla coding technique creates all kinds of problems. The truth is that we don't know what our customers need, and without documenting your goals, you'll be stuck in an endless mode of revisions and tweaks, and you'll never get your product out the door. So important are requirements that many large books have been written on the subject, and many colleges require a course on requirements gathering in their computer science curriculum.Once again, there is no universal truth. Among the core tenants of extreme or agile programming are that your code is the documentation and that short iterations of development lead to more efficient code that gets to market faster. Having worked in that environment, I agree that there are a lot of advantages to this approach to development, particularly with back-end components or systems that process huge amounts of data without user interaction.
If you're interested in learning more about extreme and agile programming, visit http://www.xprogramming.com/ and http://agilemanifesto.org/. |