Chances are high that you didn't write the application you're currently working on. Most developers inherit projects built on an existing codebase that reflects design patterns, usage assumptions, ...