ABSTRACT

Agile development recognizes the reality that we often do not have a clear idea of what we need to build until after we start building it. For agile developers, this means that we will frequently be building software based on the best information we have at the time. As we complete pieces of functionality, we show our customers and users in the hopes that, on seeing what’s been created, that they will be able to further elaborate a direction for us to continue. The natural result of building software in this manner is that we will not always have a clear picture of what the completed software application will look like until late in its construction. This means that we will often refactor our software to remove unnecessary logic and to improve efficiencies between the new code and the rest of the existing system.