A very common theme in productivity, especially when developing software, is to break down larger goals into chewable little tasks. But, what if you are so far from your end goal that it’s difficult or too daunting to break down big chunks into little chunks?
For me, the answer is sustained progress. I’ve put a new rule into my day-to-day efforts on our internal agile Flash development framework: Make 2 things better about it each day.
I have an end-goal. One day, I’d like to wrap this entire framework up into a bow tie, figure out a way to distribute it (freely or not) to the outside world, travel the world and talk about it. But, there’s enough moving parts and the sub-components are large enough to be entire projects of their own.
So, for the time being, 2 improvements to the framework suits me well. I explicitly don’t say whether they have to be big improvements (e.g. wrap a security layer around the application) or little ones (e.g. Create more elegant, friendly error messages). Some days I’ll have the energy to tackle a big task and a little one. Other days, maybe two minor ones.
Two also seems like the right number. One improvement can sometimes be daunting: (Which one do I choose?) One is also too close to zero. (Well, I could just compensate and do a couple things tomorrow). Three seems like too much. Especially on those Fridays (or Saturdays or Sundays). Two seems like the right balance. I can find time, even on a busy day, to squeeze out two new little nuggets of goodness into my product.
Also, I reiterate – it’s 2 ways to make your product better. Not necessarily 2 new features. Better is sometimes getting rid of something or cleaning up some code.
Deciding to make your product better in 2 ways everyday is a good mental exercise to keep those large projects moving forward.
In a working week, you’ll have 10 better things to say about your product than you do now. In a working month, you’ll have 40 better things to say about your product than you do now. That’s progress.