Habit-forming is my new (short-term?) obsession. And I’m looking back at some of the practices in agile development and what I can learn from the habit=f(motivation, ability, trigger) equation.
Technical practices – test first development, refactoring, requirements driven development, etc…, are some of the most valuable practices in our toolbox, yet, unfortunately are the least commonly practiced. We all know that they are difficult – but is that enough to keep us from doing what we know to be the right thing to do?
The motivation is usually there to certain degrees. In fact, looking back, the most successful teams are those in crisis and they have really serious motivation to help them go through the huge learning curve (i.e. ability in habit-speak).
And the triggers are pretty simple – write a test before you write code. Write an acceptance test before you start the iteration.
The real problem here is the ability – it is a really high bar. If we remember that ability needed and motivation required are proportional – then we need to bring the ability needed down so that you don’t need great motivation. Here’s what we’ve tried so far:
- immersion classes (in the early days of eXtreme Programming)
- training classes
- eLearning (such as Industrial Logic’s technical albums)
- pair programming
But the fact is, those things reduced the hurdle, but evidence shows it is still too high. So, I’ve been thinking, “what ridiculously small steps can we take to help people build the habit first?”.
And since I am currently writing in ridiculously small steps to build my own blogging habit, then I’m not going to worry too much that I don’t have the answer now. But I think I have a really good question. And I’ll let my subconscious work on it for a bit and blog ideas as they come up.
But please, if you think this is worthwhile – think along with me. What ridiculously small steps can we take to make the technical practices habits with more teams and individuals?