One very intriguing aspect of software development is that whenever someone gets an idea for a new application, we nearly always think that it will be easy to implement. Only after getting a closer look at what the idea really involves do we begin to get a clue about the true complexity of the new application. No matter how much experience a developer has, the first guess as to how long the application will take to create is going to be completely wrong.
To give a sense of this, let's consider a simple application, say a membership system for a running club. Nothing too complicated, you understandjust a means of recording the members' names and addresses, tracking when their membership fees are due, and sending email to notify members about upcoming events and races. It would also be nice if there was a way of recording race results so that the club could publish lists of age-ranked results in the newsletter.
How hard could it be to produce a little application like that? It sounds quite trivial, doesn't it? Take a guess now, and after you've finished reading this article see whether you would revise your original estimate.