This time of year, talk turns to resolutions. Something about the end of the year makes us all want to prepare for the next.
Now that we’re back at work, how have your resolutions held up? Yes, it has only been a few days since we bade goodbye to 2016, but I ask this because many people make resolutions and quickly break them.
Why do resolutions rarely work? A better question: Why do people only now choose to make big improvements?
I gave up New Year’s resolutions, but I’m still committed to improving—continuously, that is. This is true in my own life and in software development. Let me explain.
Missing Big Targets
To me, the tradition of making New Year’s resolutions is very much like traditional Waterfall development: You plan your enhancements—in this case resolutions—and deliver them only once a year.
You’ve spent the year with whatever behavior it is, but only now do you intend to change it, and drastically—right now! In effect, you’ve wasted months waiting until now to make a change when you could have been gradually working on it day-by-day and without so much pressure. Now that the focus is on, you decide to go big, and it rarely works.
You can make your goals—just not today and not doing it this way, because constantly judging against the one big goal you want to meet makes it much easier to toss in the towel and quit. The goal is too large. It’s a binary thing where either you do the whole goal or nothing.
Attaining Small Goals
What if, instead, as the year progressed, you made minor changes and evaluated them each time? You could find out what works and what doesn’t, then modify your approach for the next few weeks.
You would do this with the idea that the “deliverable” each few weeks isn’t the end goal—it’s progress toward the end goal. You would go for smaller, attainable steps that build. Most importantly, as the year progressed you could incrementally benefit by building on successes and learning from errors. The amount of pressure you would be under is much less.
If this makes sense for self-improvement, it can also make sense for your software projects.
The psychology behind it is the same. Why do we continue to set up large, binary, pass/fail projects with far-out dates and big pressure? Wouldn’t it be better to start on the project now?
Break the project into smaller goals that can be met in short time frames, such as with two-week sprints, and deliver the benefits along the way. As problems are found, adjust and move on. You want a clear goal you can meet soon. That’s more motivating than staring at a huge, far-off goal.
Meeting these small goals is what we call continuous improvement, a hallmark of the Agile development process. It’s a simple idea and there is no better time than the present to start. So, if you’re going to make a resolution for 2017, make it that you will start using the incremental power of Agile.
Photo: Flickr: Anthony Quintano