The best strategy to break a bad habit such as smoking, eating too much, drinking excessively, gambling, shopping excessively, and so forth is to not develop the habit in the first place! I know...easier said than done but prevention is really the very best way to avoid the formation of bad habits. As problematic habits unfold nipping them in the bud in the spirit of prevention is so very important if you can do it.
However, for so many people the train has already left the station and the bad habit is now fully formed and causing all sorts of troubles and distress. So now what? What do you do once these habits have solidified? Most people rely on willpower and motivation. This is a big mistake in my view since willpower and motivation vacillate and are totally unreliable day to day and over time. We really need to let go of the use of willpower and motivation to deal with long standing bad habits. It just doesn't work for the long term. Rather, we should use social engineering which is a much better strategy for sure. Basically, can you create an environment for yourself that forces you to change behavior for the better? Can you socially engineer your bad habits out of existence?
Let’s take a few examples. Perhaps you are a couch potato and don’t exercise much if at all. If you get an active and fairly large dog that needs to get walks in everyday it will force you to take lots and lots of walks. If you struggle with eating too many problem foods at home you can work to keep the challenging food items out of the house. If you struggle with internet pornography use you can put filters on your computer. None of these solutions are perfect or easy but if you put enough barriers in place (especially those that you can’t dismantle very easily) you are likely to make good progress over time on your bad habits.
The problem with changing bad habits for most people is that they rely way too much on motivation and will power when they should be focusing more on prevention and social engineering strategies.
So, what do you think?