Refactoring
As we add more functionality to the system we need a way of maintaining our design and keeping our house in order. In Agile we call this refactoring.
For example, instead of copying and pasting code every every time we need some functionality, it's much easier to maintain if we extract that code into a one place and call it from where ever we need it.
