Iâ€™ve begun to notice a recurrent phenomenon lately that is totally killing forward momentum on my Bible-teaching computer games project, namely this: What was a genuine top priority yesterday turns out to be a complete waste of time today. When I dropped down to a four day working week last September in order to devote
more time to my game, I spent the first day drawing up a list of my top priorities. It wasnâ€™t hard: there was a clear show-stopping feature that had been holding up substantial development for about six months. The stupid thing was that once I got down to it, I was able to bash out an implementation in a single weekend â€“ opening the floodgates for all sorts of exciting progress that was dependent on that feature. Why oh why had I spent the last six months circling around the real issue, tinkering with code that simply didnâ€™t matter
in the grand scheme of things?
â€œNever again,â€ I told myself. From now on, letâ€™s always pick the most important feature and prioritise that. Yet barely a few weeks had gone by when I found myself in the exact same situation, frittering away my time on an annoying piece of code that actually wasnâ€™t all that important, whilst the real meat left untouched in some other part of the system. So I asked myself how it had happened. Where was the bug in my process? What it came down to is this: my granularity of features was too large. Sure, the most important thing that needs doing today is the Doodad Whatyajibbet, but is it really true that every single line of code Iâ€™m writing under the Whatyajibbet umbrella is really equally important? The answer, in my case, was a resounding no. Yesterday, the Doodad Whatyajibbet was my critical path, but now that 70% of it has been implemented, itâ€™s the FlimFlam MegaDoowhat thatâ€™s standing in the way of real progress. Getting this wrong is a disaster for motivation in the long run, because you get into situations like mine were you’ve spent six months faffing and essentially have nothing to show for it. What’s more, my days at home when I get to focus on my game are a precious resource that I really don’t want to be wasting – good stewardship of this amazing gift God’s given me demands that I use them wisely.
This is one of the things that agile methodologies like Scrum really help you with, if you do them well. You break your projects down into the smallest work units that make sense on their own, and then each sprint you pick the user stories that are going to give you the biggest return on
So hereâ€™s my battle plan moving forward:
- Each day, pick the smallest work unit thatâ€™s standing in the way of progress
- Implement as little as you can to see the benefits youâ€™re after
- Deprioritise mercilessly the things that wonâ€™t move me towards my goal