AgileSoftwareDevelopment means delivering the value the customer desires as rapidly as possible and continuing to do so over time.

Value because it doesn't matter how fast you develop the software if it does the wrong thing. We can be really fast if we stop now, but does that produce the desired system? Value means that what we produce is driven by what the Customer wants. Value also means that what we produce generates correct results. Broken software produces little value.

Rapidly means that we (to paraphrase Einstein) go as fast as possible but no faster. Pushing for speed at all costs produces mistakes. Remember that "value" thing mentioned above? Pushing for speed at all costs also tends to produce behavior that hides problems. This behavior breeds failure. If a given date is important, it is better to know the actual progress and to prune "value" explicitly than to let chance choose for you.

In the book Rapid Development (1556159005), Steve McConnell spends the first five chapters talking about how to correctly create software. These chapters are more valuable than all the remaining ones on how to rapidly create software.

Continuing to produce value as rapidly as possible for the long haul is the real need of businesses. While software projects are often proposed as a one-shot campaign, that's rarely what's really wanted. Software is too expensive to build and throw away, starting from scratch each time. You'll want to grow the software's capabilities, following whatever changes in direction that the business makes.

Many people take a cursory look at Agile Software Development and jump to some ErroneousBeliefsAboutAgileDevelopment. I'd like to dispell those beliefs.