This past week I’ve been thinking a lot about changing habits and how much of our lives habits influence.
To be clear, I would define a habit as something we have learned to do as an automated response to some trigger. Something we no longer think about doing, but we just do because … well … because we’ve always done it that way.
I have some bad habits:
- Eat something sweet when I’m tired or bored.
- How I react to particular situations
- … others I’m not so willing to share publicly … 🙂
And some good habits:
- Wake up before 4:40am
- Go to bed at 9:00pm
- Write a blog post once a week
- Watch PluralSight videos for 30 minutes every day.
And some habits I’m trying to form:
- Exercise every day
- Take my vitamins
- Work on my book for 30 minutes each day
How I Deal With Habits
Now, I’ve learned that the best way to conquer bad habits is to replace them with good habits. So, for example, since I believe that fat is better than sugar, I might decide to eat cheese rather than cookies when I’m bored.
I’ve also learned that if I can set an alarm, I’m more likely to do something. In fact, my life is run from my calendar on my phone. If you want me to do something for you, the best way to make sure I do it is to make sure I’ve scheduled it. I’m kind of obsessive about keeping appointments, so this works well for me.
The other thing that works well for me is doing something at the same time every day, or every week. So, I write blog post, pay bills, do household chores and prepare for a Bible study that I run on Saturdays. I watch PluralSight videos and work on the book that I’m writing first thing every morning. I take my vitamins at the same time each day.
It is the routine that helps maintain the habit.
I often end up coaching people who want to start some new habit. Maybe you’ve been reading my blog and you’ve been challenged to start implementing Test Driven Development. What I find is that people want to start at the end. So, let’s say you want to run 3 miles every day. If you start out the first day and run three miles, I can pretty much assure you that you’ll give up right away. No, what we need to do is something much smaller.
I started exercising a couple of years ago, I realized that if exercising required me to go to a gym, I was never even going to get started. The question I often ask people is, “What CAN you do?” So I asked myself that question. The answer came back, “I can do one exercise every hour and a half during the day.
Then I started working outside of the house and the change in routine slowly eroded my ability to exercise. So once again, I asked myself, “what CAN you do?” I can do one exercise every morning. Once I’ve established that habit, I plan on increasing to two exercises.
So, if you want to start with TDD, probably the best way to start is to write a test. One test. Maybe commit to writing one test a day. Think about it, if you are afraid that TDD won’t be accepted in your organization, who’s going to complain about one little test? Or maybe better, just commit to a half hour of writing tests every day. This allows you to get started without taking the huge time commitment learning TDD properly would take, which is probably what is keeping you from starting in the first place. Start today. Start now. In a year, see if it hasn’t become how you develop code.
What I’m still working on are ways that I react to situations. These are a bit trickier to change because most of my responses are what people would called “learned responses.” What I need to figure out is, 1) where did I learn these responses, 2) why did I learn them and 3) do the responses still make sense?
Better Than Before
A couple of resources caught my eye this week that I think you might be interested in if you are interested in killing bad habits or starting a new one.
The first is a new book by Gretchen Rubin called, Better Than Before: Mastering the Habits of Our Everyday Liveswhich will be out by the time this post goes live (I write these blog post well in advance of when you actually see them).
What I’ve found particularly interesting is that Gretchen has developed a framework for how to determine how people respond to expectations, and you can take a test to find out how you respond to expectations.
- Upholders: respond readily to outer and inner expectations.
- Questioners: question all expectations; they’ll meet an expectation if they think it makes sense; essentially, they make all expectations into inner expectations
- Obligers: meet outer expectations, but struggle to meet expectations they impose on themselves
- Rebels: resist all expectations
Gretchen says, if you don’t want to take the test, you are probably a rebel, so don’t worry about it ;).
Anyhow, I’m looking forward to reading the book when it comes out.
I came out as an upholder, which is no real big surprise. There are areas of my life that are HEAVILY influenced by what I think people expect of me, and I tend to question new expectations that are imposed on me.
And yet, I still have trouble trying to implement new habits in my life.
This brings me to my second resource. I’ve known about this one for a while, but I’ve just recently really started using it.
Coach.me is an app for iPhone and Android that allows you to use the power of community and accountability to help you establish your habits and achieve your goals. If you want, or need, there is also coaching that you can pay for if you want or need a little extra help.
Right now, I’m just using the alarm and check-in feature. Somehow being able to open the app and check the box that says I finished a particular activity is enough encouragement for me to not blow it off. It probably helps that if I don’t check it off, I’ll forever have a hole in my calendar forever saying, “Yo! you missed a day.”
At some point, I may actually use one of the coaches. I keep looking, but I haven’t found anyone that looks like someone I can relate to. Or, maybe I just need to grow out of my 3 year old self that wants to do everything on my own. That’s another area I’m working on.
Other Habit Changing Resources
- Triggers: Creating Behavior That Lasts–Becoming the Person You Want to Be
- The Power Of Habit
- The Habit Journal
Other post in TDD
- Why Don't You Practice Test First Development? - February 20th, 2014
- Test Driven Specifications - February 25th, 2014
- Unit Test Structure - March 11th, 2014
- When You Really Need All Of Your NUnit Test In One Class - March 18th, 2014
- TDD Isn’t All About Testing - March 25th, 2014
- Automated Web Application Functional Testing - April 1st, 2014
- What Not To Test - April 9th, 2014
- Make Your Test Work For You - April 18th, 2014
- Don’t Comment Out That Test - April 24th, 2014
- The Proper Function of QA - May 1st, 2014
- TDD Saves Time – A Story - May 22nd, 2014
- It is called "Unit Testing" for a reason - August 28th, 2014
- Is Your Architecture Crippling Your Unit Testing? - September 4th, 2014
- Selenium Performance Improvements - October 2nd, 2014
- Technical Debt Is Inevitable - October 16th, 2014
- NUnit, Unity Dependency Injection, MOQ and Private Fields - October 23rd, 2014
- NUnit & Visual Studio - December 4th, 2014
- Software Architecture without Test Driven Development is DANGEROUS! - January 29th, 2015
- NUnit Test Code Structure - February 5th, 2015
- Excuses For Not Testing - February 26th, 2015
- Why Johnny Can't do Test Driven Development - March 5th, 2015
- Changing Habits - March 19th, 2015
- 100% Code Coverage Possible? - March 26th, 2015
- TDD Gamification - Turning Test Driven Development into a Game - April 23rd, 2015
- Run NUnit from Visual Studio - April 30th, 2015
- The Parable of The Road Line Painter - May 28th, 2015
- The Fallacy of Motion - July 23rd, 2015
- Test Driven Learning - An Experiment - March 24th, 2016
- 3 Reasons You Believe 100% Code Coverage Is Impossible - May 26th, 2016