In my last post I encouraged you to learn more about your business and start looking for your constraint. It might take you a while to find your constraint company’s constraint so I’m going to let you continue that journey on your own and talk about change today. Why is change important to 10x programmers? Why do people resist it? What’s the best way to change yourself? What’s the best way to help others change?
Let’s get started.
Why change is important to 10x programmers
10x programmers find the place where their effort will have the most effect and focus their efforts on maximizing the value of their contribution there. Almost by definition this will be something new and will therefore involve change. You can’t do your job as a 10x programmer if you can’t change or if you can’t convince others to change.
You also need to learn some new skills and new ways of working to maximize your effectiveness, which also involves change.
Why people resist change
People resist change for three reasons:
- the reason they tell people
- the reason they tell themselves
- the real reason
That’s my little spin on a popular aphorism. But, in my experience, it’s true.
Let’s look at a popular example of a change that people resist: exercising. People have all kinds of excuses for why they don’t exercise (too busy, injured, too tired, etc.). But they also have an internal dialog where they probably have different reasons for not exercising (I’m to fat to show my face in the gym, I don’t want to look stupid, I can’t fail at another thing, etc.). And then there’s the real reason, which is coming straight out of your unconscious: you are programmed to resist radical change.
As a survival strategy, radical change is about as smart as holding your hand in a fire. So no matter what you want to happen, you’re brain will make you resist radical change (just like it will make you pull your hand out of that fire).
You can induce anxiety in just about anyone by making them imagine making a radical change in their life. Let’s try it. How would you feel about leaving your chosen line of work, your job, family, friends, and possessions and move to the other side of the world to live in the jungle and study amphibians alone and only speaking in an language you’ve never heard before?
I don’t know about you but I’m not interested. What if we up the rewards? Would you do it for double your current salary? Triple? What would it take to get you to agree to such a radical move? It would take an obscene amount of money to convince most people to accept this deal.
The hard way to change
You can do what all those people who make New Year’s resolutions do: you can try and make a radical change and hope you can override your reptilian brain’s need for stability.
It’s stressful and difficult but if you’ve got enough motivation and/or will power you could pull it off, at least for a while. But the likely result is that you won’t be able to sustain the effort to fight your reptilian brain and, sooner or later, you’ll revert to your former behavior.
The secret to changing successfully
The best way to change successfully is to avoid engaging your reptilian brain by doing anything radical. This is important: once your unconscious decides you’ve gone too far, you’re pretty much doomed.
The successful change formula:
- set a clear, attainable goal (it helps to write it down some place where you can see it)
- do the smallest possible thing that moves you towards your goal. And by small I mean the absolute tiniest thing. Do this thing consistently to make it a habit
- if you’ve reached your goal you stop here. If not, you go back to step 2 and repeat the process
I know what you’re thinking: “if I follow this formula it will take forever to reach my goal!” This kind of change certainly isn’t fast but you’re odds of sticking with it are way better than making a radical change and hoping it will stick. I’ve used this formula to make many changes in my life and I can attest to its effectiveness.
An example of a successful change
Suppose you’ve been reading about automated unit testing and you think it might help you be a better programmer. You tried it a couple of times but it was really slow and difficult. Lots of code just seemed untestable too so you’ve given up quickly each time you’ve tried it.
Let’s try using the formula on this change.
Your goal: you want to write unit tests for the code in your project.
What’s the smallest thing you can do to move towards your goal? How about you start with writing one simple unit test per day for some existing code? I can’t emphasize this enough: the step has got to be small! Just write one test per day on something that’s super easy to test (no database, no globals, no hidden side effects).
Keep writing one test per day until it seems routine. Take as long as you need to get comfortable with this pace. Once you’re comfortable with this, keep the one test per day for existing code and add one test per day to the code you are working on throughout the day.
And do that until you’re completely comfortable then maybe learn about dependency injection to make the next step easier and continue your existing two tests per day and now add one dependency injection transformation to your routine.
Once that feels good, you might want to look at mocking to take advantage of the dependency injection you’ve been practicing. It’s really not that difficult. Let’s add one unit test with a mock to your daily routine.
And from there you just keep going. There’s a ton of research behind this slow and steady approach to change and I’ll share some resources with you at the end of this post.
A note on consistency
Your willpower is strongest in the morning so you could write your unit tests as soon as you get to work. It will just take a few minutes and then you can get on with your day. If morning doesn’t work, just choose a time that does work for you and write your tests at the same time every day.
Another strategy you can try is to do the new thing you are trying to make a habit directly before or after a habit you already do (like learning to floss every day by doing it right before you normally brush your teeth). So you could always practice writing your unit tests right before your daily stand-up, for example.
The secret to successful group change
Getting a group to change is even harder than changing yourself. Everyone has a different threshold for what kind change is too radical for comfort. It only takes a few people to start voicing doubts to divide the group and stall your efforts (or prevent them from starting at all). People will come up with all kinds of logical reasons why they shouldn’t change (but they rarely mention that it’s scary or hard). So if you try to impose a radical change on a group, you are almost guaranteed to fail.
But you can use the successful change formula on a group almost as easily as you can on yourself. You just need a couple of modifications:
- set the goal for your group or you might suggest a couple of goals and allow the group choose the one that they want to tackle
- invite the members of your group to suggest small ways to move towards the goal. Lead the group to a consensus on the next change they want to try
- act on the suggestions as long as they are reasonable
- hold regular meetings to report progress on the goal and solicit more improvements (it also shows your commitment to the goal and the process)
- reward and recognize members of your group for participating in the process
- finally, never punish failure. Think of each change as a mini-experiment. Some things will work out and others won’t and you should be happy to get either outcome as long as you learn something
These are my two favorite books on the topic of change:
- The Spirit of Kaizen: Creating Lasting Excellence One Small Step at a Time (Robert Maurer). It’s a really great book that’s full of practical advice and examples. It gets right to the heart of the matter.
- The Power of Habit: Why We Do What We Do in Life and Business (Charles Duhigg). This book explores the science of habits: what they are, how they work, and how we can modify them. These are things every 10x programmer should know.
As a 10x programmer, you need to know how to change yourself and how to help other change. We are drawn to radical change–also called innovation–because it’s dramatic and we intuitively think that’s the best way to change. But I hope I’ve convinced you that continuous improvement wins almost every time.
In my next post I’m going to show you how to build your influence. Stay tuned.