[ Back to Kevin's Homepage | Back to Ramblings and Brain Farts ]

Simplicity

Simplicity: To reach simplicity, one typically finds an elegant solution to a problem. The difficulty is that one really needs to understand the problem before you even has the possibility of coming up with said elegant solution.

I've worked on a number of systems, and most of them end up being incredibly complex. When you sit back and look at all the original design documents, a great many of the decisions made were to make things simpler. But all told, dozens and dozens of small simple bits still add up to an incredibly large and complex system.

How do you fix it? Unfortunately it typically means architectural changes to the system to re-simplify it. That means a lot of work, but the results can be rewarding. How do you do it? First pass, look for all the 'exceptions' to the design. Clean those up. Then, unify code paths where applicable. It's always healthy to merge code paths that are 90% the same. What else do you do? Good question. Let me know if you have any more hints to add here.


created - 2003.12.20 kjw
last modified - 2003.12.20 kjw