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:

Related Posts

We can be happy if we choose to

June 26th, 2006 by Dave Cheong

Personal development is about understanding how our mind works, consciously controlling our thoughts and having good patterns. Developing an awareness of how our mind works can improve any and all aspects of our lives as well as our interactions with family and friends.

I’ve been interested in personal development for years - probably since I was a troubled adolescent. Our family moved to New Zealand when I was 11. In the beginning, things were difficult. Not only did we leave our close family and friends behind, we also had to deal with a different environment and foreign culture. I recall being only the second Chinese student in my school at the time! To cope with these changes, I devoured lots of self improvement, motivation and personal development books. One thing I learnt during this challenging time was the notion we can be happy if we choose to.

Try this. Imagine you are holding a lemon in your hand. Can you feel the smooth yet rough texture of the skin on your hands? Is the lemon cold to your touch? Take a moment to trace your eyes across the unique grooves on the surface. Now hold the lemon to your nose. Can you smell its freshness? Use a knife and visualise yourself cutting into the lemon. Can you see what’s happening? Squeeze the juices into your mouth. Can you taste the sourness around your tongue? Swirl the lemon juice around your mouth and slowly swallow it.

Are you salivating? I am! The reason for this is because our minds cannot tell the difference between what’s real and what’s imagined. To our minds, the lemon was as real as a real lemon we had in our hands. This is pretty important - whatever our mind thinks, our body naturally responds.

Our mind and our body co-exist in a symbiotic relationship. Our body is essentially a mechanical tool for our mind. It feeds our mind with essential nutrients to survive and function. It carries our mind wherever it wishes to go. However, we exist in our mind. We can choose what we think about, how we feel and in what way to respond to things around us.

A child on a tree might think, “Whatever happens don’t fall”. Do you know what happens? He falls and breaks his arm. How many times have you thought, “Don’t forget the keys tomorrow” and then you promptly forget the keys the next day! There’s a reason for this. If we tell ourselves not to fall from the tree or not to forget the keys, at a subconscious level, that’s exactly what we’re thinking about. We are thinking about what would happen if we fell or forgot the keys because that’s what we have instructed our minds to think.

One philosophy I subscribe to completely is positive thinking. If you visualise a positive result, your mind and body naturally work together to make it happen. Instead of thinking about not falling or forgetting the keys, try “If I jump, I will catch that branch” or “I will have my keys with me because it’ll be in my purse”. Now, we’re focused on the positive results instead. By controlling our thoughts and what we think about, we can influence the outcome.

If we took this to the next level, you can see that by controlling our thoughts we can actually change our lives. I know people who sit and complain about their lives all the time. “I hate my job”, “Why am I fat and ugly?”, “If I won the lottery, I would…”, “My spouse treats me badly”, “I’m unhappy with…” etc. Sometimes it makes me angry to hear these things from people I care about. Mostly though, I feel sad.

Things aren’t going to get better if you just sit and complain about how unfair life is. If you are unhappy, focus on what would make you happy. Think about the positive outcomes. You have a choice. It all begins with a simple thought. If you believe you are overweight, think about how you can implement an exercise routine. If you hare unhappy with your job, think about how you can reskill yourself and change your vocation.

When good things happen to us, we feel happy. However, don’t rely on the randomness of good events to determine your happiness. Take control. Proactively put yourself in situations where you increase the frequency of good events. Do this by asking what would make you happy and what you need to do to ensure it happens.

I’m convinced that this “thought creates reality” mindset as Steve Pavlina describes it, is something worth exploring. In his post, he describes one way to really test if what we think about can really affect reality or not is to change our dominant thoughts. I’m determined to try this out and will post about some experiments I will conduct over the coming weeks.

If you take only one thing from this article, take this. You can change your life by choosing what you think. Your mind can influence how your body reacts. It cannot tell the difference between what’s real and what’s imagined. If you focused on the positives, even if life isn’t going as you had planned, things will get better. At the very least, you will live a happier life.

Isn’t that better than the alternative?

Related Posts

Top 14 stumbling blocks for new businesses

June 23rd, 2006 by Dave Cheong

In the last couple of days, I’ve been doing some research on the challenges typically faced by new businesses. It turns out there are plenty throughout the early stages. Starting and growing a new successful business is a skilful balance between talent, timing and luck. Mostly though, I believe it is about recognising common mistakes and avoiding them.

This is a list of what I consider are the top 14 stumbling blocks for new businesses. Most of these stumbling blocks seem obvious on the surface. However, from what I have read, many businesses fail to avoid them nonetheless. This may serve as a timely reminder to the budding Entrepreneurs out there.

1. Bad initial concept.

At the core, I believe all businesses need to create value. Although the implementation is key, it wouldn’t hurt to start with a good idea. A good idea is one which fulfills a genuine need and has a unique selling proposition.

2. Inadequate planning.

I believe having a business plan really helps, even if it is sketchy. Firstly, the act of writing the plan forces the founding team to think through the steps and map out the landscape they will be operating in. Secondly, the plan can be a good communication tool between the parties involved.

3. Failure to do proper research.

Starting a new business takes time, money and commitment. I believe it really pays in the long run to research the opportunity, industry, domain specifics and competition before jumping in. A bit of work in the beginning can save you a lot of grief later.

In addition, some find professional help and mentors useful. I think it depends a lot on who is providing the help and in what form the help comes. However, anything you can do to avoid the same mistakes others have made has got to be a good thing.

4. Insufficient capital.

Many businesses fail because they under capitalise. The level of funding required depends largely on the type of business, barriers to entry and the skills composition of the founding team. Some industries just takes more starting money to create a viable business than others. Whatever your industry, I think it is important to understand what the cost requirements are before you start.

A key question to ask yourself is how long the business can survive before making that first sale. As a general rule, err on the conservative side - it tends to take longer and cost more than what you think.

5. Poor cash management.

Having sufficient funds is essential for any business to stay alive and grow. There’s no doubt about that. It doesn’t really matter how brilliant an idea is or how clever the founders are. If there isn’t sufficient cash in the bank to pay the suppliers, employees or monthly bills, a business cannot remain operating for long.

Apart from ensuring the ongoing survival of a business, I think cashflow management can enable a business to capitalise on opportunities as they arise. Why else do you think Microsoft has $50 billion in the bank for?

6. Lack of business domain specific knowledge.

Every industry operates in different ways. I believe having a good understanding of the market dynamics is important. It isn’t enough to just be an expert in your particular product or service. The deciding factor between success and failure could be a business’ ability to recognise and respond to changes in the market place. Having domain specific knowledge and a solid understanding of what customers need are essential ingredients.

7. Chasing any potential sale.

Some projects and customers have less strategic value than others yet may require the same if not more effort to work with. I’ve found this to be the case in my professional work as a Software Engineer for hire. There are clients who just don’t understand technology and it can be an uphill battle working with them.

In a small (but busy) business, the resources tend to already be stretched, so chasing all sales opportunities can be time consuming and wasteful. I believe it is more important to focus on the quality and not the quantity of a sale. As the saying goes, if you try to catch all the rabbits, you’ll catch none of them.

8. Late billing and collections.

I think this goes hand in hand with cash management. Concentrating on the product or service a business produces is important but being able to recover the costs and make a profit is essential. After all, cashflow is the life blood of a business. For new businesses especially, I think they have to be extra careful and ensure they are charged correctly, billing cycles aren’t too long and customers pay on time.

9. Lack of focus.

A new business can go through several iterations before its form and shape is finalised. In some instances, the part of a business that finally takes off may not even be something the founders had originally envisioned. I read this all the time. To me this is fine, as businesses must adapt as they learn more about the customers’ needs and usage patterns. However, I believe a business must focus at some point to turn a plan into action and actions into results.

10. Lack of internal control systems.

Running a business well is about having the right operational procedures. Internal control systems play a key role in ensuring that the right procedures are followed. To me, this is pretty important - without the right systems, how can you possibly manage the cost, ensure financial compliancy, timely invoicing, accurate product dispatches etc?

One thing I didn’t find much information about though is the fact that the type of systems put in place should probably match the size and complexity of the business. A simple business is unlikely to need a powerful reporting solution for example.

11. Hiring the wrong people.

Although I believe in being a generalist, I also believe when the time requires, hiring the right people can be beneficial for a growing company. A common mistake Entrepreneurs tend to make is not hiring the right skills when needed especially when they have solely been responsible for getting the business to its current successful state.

In addition, I think it depends a lot also on hiring the right people - not just people with the right skills but people who are best for the company. Ill fitted people on a team can adversely affect the productivity of the entire team as a whole. Choosing the wrong people can change a company’s dynamics and destroy whatever it is that made it unique and successful.

12. Reliance on few suppliers or customers.

Running a business is about managing risks. To me, businesses that rely on a few suppliers or customers are operating under risky conditions. Any change in the relationship or circumstances can significantly affect such a business. For example, how would a business cope if their primary supplier decides to increase the cost of all products by 5%? Or what impact does it have on a business when its only major customer decides to move their business elsewhere?

13. Not having enough perseverance and resilience.

It’s hard for me to say for sure, but it seems to me some businesses fail because they do not persevere long enough. There could be several reasons for this. Perhaps the founding team underestimated the timelines. Or the enthusiasm and passion have dried up. Whatever the reason, sometimes building in the redundancy and resilience is enough for a business to weather the storm and emerge victorious at the other end.

14. Insufficient performance metrics.

It’s pretty important to have metrics you can use to measure how you are progressing. It doesn’t matter in what area the business operates in, metrics that identify cost to produce goods, sales, productivity etc is essential. Sometimes what you think is happening can be completely out of synch with reality. Without timely metrics, management cannot make informed decisions.

Running a new business on your own can be trying and stressful. However, the rewards can be fantastic too. How successful you are is only limited by your own creativity and hard work. If you run a relatively new business, ask yourself how many of these common stumbling blocks have you encountered? Perhaps more importantly, think about the mitigating actions you can put in place before they occur. Avoiding some or all of these common stumbling blocks could be the difference between your business surviving or otherwise.

In my research, I found the following resources useful and inspirational:

Related Posts