Monday, June 25, 2007

Getting Stuff Done - Weekly Time Budget

After you've broken down your goal and committed to it, and as an alternative to scheduling, my favourite way of getting stuff done is to decide to commit a certain amount of time per week to devote to a task. At the point that you commit to the work, you decide something like:

“Until the task is completely done, I’m going to spend 3 hours (180 minutes) per week, every week, tackling just this problem.”

Some observations and rules come from this:

  • You can make up this time any time you like. Before school, after work, on the weekend, staying up late one night etc. Within one week you have flexibility, you can front load or back load your week depending on how you’re feeling and your schedule.
  • Remember that the first few weeks will be easier to complete the time, as the task is new and interesting. Don’t go too high with the time commitment or it will become too hard to stick to.
  • When you’ve met your quota for the week, it’s nice to force yourself to take a break from it for the rest of the week. This means you’re ready to start the next week without being burnt out on the task.
  • Decide when your week is going to run from, to avoid you trying to cheat yourself by shifting it when you don’t want to work. For example, your week might start on Monday morning, with all the minutes needing to be done by the following Sunday night.

Friday, June 15, 2007

Bryce 5.5 is now free...

Gamasutra just announced that Bryce 5.5, the 3D modelling package, is now free to download.

Getting Stuff Done - Scheduling

So far, we’ve gone through the stages of deciding exactly what the goal is, and deciding whether we’re seriously committed to doing the work to meet it. The final thing we need to do is to provide some kind of ticking metronome to remind us to get it done.

The most common approach is to set up a schedule. It’s pretty simple:

  • There are a variety of programs you can use for scheduling, such as Open Workbench. If you’ve got less than 100 items in the list though, I recommend just using a spreadsheet.
  • Break down your goal into chunks, and predict/decide when you expect them to be complete.
  • Break down the tasks to a pretty fine level of granularity. When scheduling a large project, it's common to keep tasks under three days each.
  • You’re committing to doing your very best to meet the schedule, doing whatever effort it takes to hit the dates or beat them.
  • The schedule kind of takes the role of a person; someone telling you what is expected of you, beating the drum.
  • You can adapt the schedule if really needed, but you need the will power to not just stretch it out because you’re being lazy.

Sunday, June 10, 2007

Getting Stuff Done - Committing

Now that you’ve broken your goal down, are you really serious about doing the work required to get it done? Are you ready to commit to getting it done, regardless of how you’re often not going to enjoy it?
It will mean regular sacrifice (of either time, money or both). There will be times when:

  • You regret committing to it.
  • You feel you are wasting your time.
  • The amount of remaining work suddenly grows greatly.
  • The work is too tedious, and you’re surrounded by far more interesting things.

At these points, you’re going to have to keep on doing it regardless.

Take your time, and think carefully about your answer. If you consider the question and quickly get a strong ‘yes’, then you’re likely not thinking it through fully. Once you’re in, you’re promising to yourself that you’re going to do it. It’s like getting a dog, or getting married, or getting a tattoo. You’re committing to something which will bring please and pain, not just getting the upside.

Let me make something clear. If you decide to not commit, then that’s OK. You’ve just saved yourself from a lot of headaches, wasted time and pointless day dreaming. It also leaves you free to commit to something else.

If instead, you don’t make the decision, then you stay in a cycle of pipe dreaming and half baked attempts at chipping away at the task. You can delude yourself that you're getting something done, and brag about it to your friends, but over time your enthusiasm will likely fade and you'll stop doing it - because you're not committed to it.

So, take your time, perhaps a week or two if it's big, and then decide whether you're ready to commit.

Monday, June 04, 2007

Getting Stuff Done – Break down your goal

Let’s say that there’s something that you need to get done. Something challenging which will take up some time, like learning a new programming language, writing a game demo, starting a company, invading Poland, etc.

First, what is it that you’re wanting to do? Try and be as specific as you can. Write it down as if you were writing an email to ask someone else to do it. Break the high level goal down into some of the main stages.

Basic Goals

  • Learn CG.
  • Make a game, sell it and retire laughing.
  • Sort out my savings.

Better Goals

Learn CG

  • Download Ogre, run the samples, and find one to hack.
  • Read up on Ogre materials, and read some CG samples.
  • Make a cell shader effect and demo it by modifying the sample.
  • Write a cloth simulation and put the cell shader on it.
  • Test it out on a couple of friends’ machines.
  • Record a video of the output and put it on my resume site for employers to see.

Make a Pac man clone

  • Use my existing knowledge of Ogre and C++ to write a clone.
  • Use Blender to make the models/animations.
  • Get free sounds off the web, and play them with OpenAL.
  • Pay for some music off the web.
  • Polish and debug the game, including beta testing with friends.
  • Make a website, including forum and purchase page.
  • Get a friend to do the art for the website.
  • Release the game.
  • Make patches to fix issues.
  • Do lots of marketing work.
  • Retire rich.
  • Start laughing.

Sort out my savings

  • Talk to my family about how they save and what types of accounts they have.
  • Ask at work about how the pension scheme works, and decide whether I want to join.
  • Read the book on investing that I was given for my birthday.
  • Start an automated monthly deposit to my savings account.

Having a better idea of what’s involved with the task will help you work out whether the scope of work is appropriate, and let you see what you’re getting yourself into. If you’re starting to learn C and your overall goal is to ship a World of Warcraft killer, then you might want to think of some smaller goals to get you started.