This is why (via programming musings). Writing code that only I can understand is a popular strategy for job safety.
Having said that, the apparent simplicity can sometimes fool you. The reasons software systems are complex are hardly technical. They are usually born out of constraints like budget, time or a lot of unknowns and dynamics in the real world. It is the designer’s job to simplify and present a comprehensible design within these constraints. Like Albert Einstein said, “Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage — to move in the opposite direction”. No effort should go without justification, not even the one for compliance to standards.

November 11th, 2006 at 10:22 pm
Very well said!