I’m not sure how many of you have heard of the phrase “Broken window broken house” otherwise known as the “Broken Windows Theory”. As a Software Engineer, this phrase holds special meaning because it describes software entropy – a condition we try to avoid. However, I have also found the meaning of this phrase is applicable to our daily lives, especially regarding how habits and patterns can influence our productivity and effectiveness.
Let me begin by giving you a bit of a background behind this phrase. Its origin can be traced back to an article written by James Wilson and George Kelling which was later turned into a book Kelling wrote with Catherine Coles. The book was titled “Fixing broken windows: Restoring order and reducing crime in our communities”. It addresses the question why some buildings in an inner city are beautiful and clean whilst others are run down, dilapidated and derelict. They write:
“Consider a building with a few broken windows. If the windows are not repaired, the tendency is for vandals to break a few more windows. Eventually, they may even break into the building, and if it’s unoccupied, perhaps become squatters or light fires inside.”
“Or consider a sidewalk. Some litter accumulates. Soon, more litter accumulates. Eventually, people even start leaving bags of trash from take-out restaurants there or breaking into cars.”
These examples describe how a single broken window, if left unrepaired for an extended period of time, can cause the inhabitants to lose respect, pride and care in their surroundings. When one window is broken, another will follow, and another. In time, vandalism takes place, crime levels rise and eventually the effort and cost to fix the condition becomes insurmountable.
For software, the “Broken Windows Theory” describes how rapidly a piece of software can degrade into entropy or “spaghetti code”. When a developer sees poor design or writes bad code and doesn’t fix the problem immediately, it sets a precedence for more poor design and bad code. Given enough poor design and bad code, the effort and cost required to address the problem become too big and it is simply easier to continue perpetuating the problem rather than fixing it.
For example, a developer seeing a software component someone else has written does not have comments might think comments aren’t important, required or necessary for this project. So they don’t write any. After all, if nobody is doing it, why should they? This is a natural reaction. However, soon you’ll have a system with thousands upon thousands lines of code which do not have comments or documentation.
In another example, a developer while attempting to write a software component, searches for other components in the system to use as reference but sees they have been written poorly. Fixing these requires too much work, so instead the developer exacerbates the problem by copy and pasting bad code to complete their task.
The book continues by describing the strategy for avoiding the decay and entropy is to solve the problems when they are small. When a window is broken, fix it immediately. In software, if a developer sees poor design or bad code, they should address it immediately.
I’ve found the “Broken Windows Theory” applies to our personal lives just as well. It isn’t constrained to solving crime and software engineering. Consider the following:
If I left some paper on my desk instead of filing it away at the beginning of the week, I find by the end of the week, I have a messy desk. If I left my clothes on the floor instead of the closet or the dirty laundry basket, soon I have a messy room with clothes everywhere. If I procrastinated on a task today, say paying the electricity bill, I find I don’t ever get to it until the day it is due and all my other bills don’t get paid either. If I left a single plate after dinner unwashed in the sink, soon there’s a sink full of unwashed dishes!
Do you see the pattern here? Instead of filing the paper away, putting clothes in the right place, paying bills the moment they come up or washing the dishes when required, procrastination can cause us, even if only at a sub-conscious level, to lose respect, pride and care in our surroundings. One piece of paper not filed, leads to more. One clothing item on the floor, is followed by another. Heck, there’s already 10 dirty dishes in the sink, what’s one more?
To avoid this slippery spiralling decay and disorder in our personal lives, I find that developing good habits and sticking to positive patterns are essential. Fix the problems and address the issues as they arise. Don’t leave that paper unfiled. Put it away immediately. Instead of dropping the clothes on the floor, put in a little bit of effort now and place them in the laundry basket. If there are dirty dishes, wash them immediately.
This applies to our personal and professional goals in life as well. Whatever your goals are, be committed to it. Do not approach them half-heartedly. I know this takes discipline, but if that’s what it takes, then you’ve got to do it. For example, I have committed to waking up early and consistently and I do so everyday. Not just on weekdays, but weekends too. Sleeping in just once, sets a precedence for future sleep ins. So try to eliminate thoughts like “I’ve already slept in 4 times this week, what’s another time?”.
If leaving a single window broken leads to more broken windows, then not fixing a window sends a message that vandalism is tolerated. In summary, the moral of this story is “Don’t live with broken windows”. If there is something that needs to be done or fixed, do so as soon as possible. Don’t let the problem escalate to a point it becomes too difficult or costly to fix. When that happens, it just doesn’t get done.
For more information about the “Broken Windows Theory”, you may find the following resources helpful:
- Fixing broken windows on Wikipedia
- No broken windows on Pragmatic Programmer
- How a theory shook the foundations of law enforcement and helped heal a city
- Don’t live with broken windows – an interview
- How broken windows can kill a business