Aside from death and taxes, complexity may be the only other sure bet in life. Complexity always grows over time. In our industry, it’s the unavoidable consequence of maturing software. Unless we’re willing to remove features from an application, there is simply no way to sidestep it.
If we can’t get rid of complexity, our next job is to stifle its growth. We need to recognize when complexity isn’t necessary and develop a finely tuned nose for it. If we know what it smells like and if we can pick up the all-too-familiar stench from every nook and cranny of our software, we’ll be better off in the end.