Realise

Software development concepts

Centralizing functionality

As projects evolve, developers begin to loose track of the codebase. This is exacerbated by multiple developers working asynchronously on different software components. As time goes by, duplicate functionality will begin creeping into the codebase. When maintenance time rolls around, problems will start to emerge.

Take the scenario a GUI application with two user input fields. This input is filtered, and special characters are removed. A bug has popped up in user input A, and needs a fix. The developer assigned fixes A, and assumes the applications filtering is now behaving as desired. A few days later, another bug pops up, the same bug but in user input B. How did this happen? This was supposedly to be fixed!

This scenario shows the danger of redundant code, and lack of proper centralization. Imagine your applications shutdown code resided in the method onShutdown(). The close box, the quit menu option, and any special escape sequences all should call this method. Redefinition will lead to maintenance hell.