This week I’ve been a little bit lacking in focus, but that isn’t particularly unusual, especially for a personal project! So here’s some approaches I take to get out of a rut. Most of these involve trying to find a small piece of work, as that generally leads on to a bit more work afterwards.
Fix a Bug
There’s always a few small jobs that need doing. For example, I look at the game and I can see that the “ticker” at the bottom of the page is very close to the line above, and the current action icon is not aligned correctly with the text next to it. Two small issues, really easy to fix, and I have my sense of accomplishment in a few minutes work…and I’ll probably do a bunch of related things while I’m at it!
Do Specific Design
When I’m stuck, it helps for me to do some design. This is more than just think vaguely and at high level about what I need to do, this is specific bullet points of what I actually need to do. For example, rather than just say “I need to add stats to various actions in the game”, I will come up with some specific tasks:
55 Add game stat entity - with both current and total values
56 Add serialisation of game stats
57 Add game stats for actions
58 Add game stats for resources
59 Add game stats for buildings
60 Add display for game stats
61 Add reset for game stats
This still has some generic actions (add game stats for actions – what stats?) but this does have a specific thing I can do at any time: Add game stat entity. That will take about 10 minutes. And voila, I have a job I can do quickly and cross of the list. The chances are that I’ll do two or three of these small tasks, and then think about how to turn some of the bigger ones into smaller ones, so that list will have the following added:
62 Add game stat manager that can be used to store game stats and update them
63 Add sub type for game stats, as a string
64 Add to game stat for actions completed count on action complete for each action subtype when the actor is the player
65 Add to game stat for resources collected on action completed for gather action with a subtype for each resource type
66 Add to game stats for resources collected on forage complete for each resource subtype
67 Add to game stat for buildings constructed on construct building request message handler for each building subtype
Now this is looking much easier – this is mostly done now, all I need to do is actually code it…
Pretend I’ve got a Manager
If I was at work, I would periodically have to justify what I’ve done in the last few days – that might be submitting it to QA, or giving a report, or producing a new release. So when I’m stuck, sometimes I think about how I can offer a pretend manager something to look at. This means one of two things:
- I write a blog post. This means that I have to actually have something to talk about, which means I need to do something. That might be design, it might be a bit of testing, but it’s a real tangible output that my pretend manager can read and say “good job” to.
- I start to plan a software release. If I have a definite plan, that means I have a tangible thing to offer my virtual manager. So I look at what I have, see if it feels like enough, and start to finish off the bits that are missing – eg do the UI job I don’t want to do that needs doing.
Both of these approaches push me forwards to do something tangible.
Do Something Different
I don’t mean do a different project, but there’s usually something I can do that isn’t part of the current plan which is a bit more appealing to do. For example, I might sit down and draw a new icon, or rework the UI on a page, or add a test that I should have done ages ago.
All of these things are relatively easy, give me a quick win and sometimes give inspiration for the thing I’m putting off.
These are a few tricks I use to make sure progress ticks along. It can be difficult to keep momentum, especially when working alone, but hopefully these are useful hints!
To my imaginary manager:
This post was not in itself procrastination! I wrote a bit of testing framework and started on stats for actors, so there is progress. Please believe me and I need a pay rise thanks.