Agile methods have revolutionized the way software projects are managed, but some of the fast-growing movement’s terminology can sound a bit confusing to newcomers. To un-jumble the jargon, here’s a simple guide to the concepts and lingo commonly employed by agile practitioners.
Every software project manager knows how easy it is for a software project to fail. One response to the high risk of software development is to construct detailed designs and to try to anticipate problems in advance. This is an admirable goal, but doesn't always help in the real world where the business and technological environments change so quickly that even the best-planned software can become irrelevant by the time the project is reaching completion. The frequent result is well-planned software projects that also fail.
In response to this dilemma, the Agile community urges a more flexible approach to software development in which project managers don't try to plan for every contingency in advance. Instead, they focus on what's most important this week, or this month, and leave future issues to be handled as they arise. By producing software in small but useful iterations, and keeping the focus on the most important requirements, an agile software team can produce value for the customer in short timescales. Business and engineering changes are welcomed — and addressed quickly;