Creating software is easy, creating software that is sustainable to maintain and extend is hard. There are not many mediums in which the consequences of a simple change or design decision can render the complete system useless. The way in which the software is built is just as critical as to who is building it.
Honey why is the toilet flushing now when I flip the light switch?
Whoa! Cool! I didn’t realize changing the light bulb would do that.
Poorly designed systems are interconnected in ways that are not necessary. It is often easier to write the prototype in this manner, but products often need to be refactored to use time tested design patterns.
If you ever find yourself scared to change something or can’t figure out how to add the next killer feature. It is certainly time you reevaluate what you have and don’t be afraid to delete your code. You may be surprised how much of it is no longer needed.
More code, more bugs!