In this post, I would like to visualize some bad design and coding using some real life parallels.
But first a disclaimer: as bad as many of the following examples look like, sometimes compromises need to be made - to meet a short-term deadline, to save cost in the short-term, due to temporary lack of expertise, making some feature work for a customer on the spot, etc.
As long as you acknowledge in advance that what you did is not the right way to do it, and are willing to improve and proceed to apply the proper solution...
First, let's take a look at the equivalent of some messy code.
When one of the power lines dysfunctions, how long do you think it would take to fix it ? Or just to find it ?
Same is with bugs in code that looks like this...
Now, how about using a workaround solution rather than upgrading the infrastructure to handle it properly ?
Sometimes, just because you can make two pieces of software work together doesn't mean you should:
Here is how it looks like when you apply a patch rather than rewriting a broken piece of code:
And finally, this how is it looks like when you leave some useless code around:
For contrast, here is the probable visualization of a good piece of software - fast, sleek, great design, and it gets you to where you want to go to:
Do you have any more similar design or code visualizations ?