http://asawicki.info/ Graphics programming, game programming, C++, games, Windows, Internet and more...
Entries for tag "productivity", ordered from most recent. Entry count: 1.
Simple 2-digit Method of Task Management
Managing some list of tasks to do (or "TODO list") is very important skill that helps in both work and everyday life. I usually use GTD (Getting Things Done) method. But sometimes, like on the recent Hack3city competition, a simpler method is more suitable.
A lot could be said about this subject (maybe some day I write an article or prepare a presentation about it). Generally, tasks to do can be organized based on different criteria, like:
Even after "filtering" only tasks that you can do and you should as soon as possible, they can be sorted in three different "dimensions":
It's obvious that not all the tasks will be done. During a 2-day programmers' competition, just like in everyday life, writing down ideas for doing things is good, but there is never enough time to complete them all. That's why there is a need for some method of deciding what to do next. During Hack3city, I came up with a simple, ad hoc method, which I want to describe here. The goal of developing it was to make the bookkeeping of the list as quick and easy as possible.
During a hackathon like Hack3city, where we created most of our game in just 2 days, the 3rd dimension is not important. Sure sometimes something must be coded quickly because artist or level designer is waiting for it to be able to continue his work. Then I do this first. But otherwise all tasks are equally urgent - they should be done in the short amount of time, during the event. So what I did was I opened the system Notepad and started writing down tasks and all ideas that should be/could be added to our game, one line each. But instead of starting a line with "-" for just a bullet, I started it with two digits, meaning:
Normally I just delete lines with tasks I finished, but since some time during the event, I started to move them to "DONE" section instead to show them later in this post. So here is partial task list from our game:
23 smoke effect when player falls onto the ground
22 flashlight rotates when player dies
23 flashlight rotates following player walking animation
31 spear, shooting from a wall when player pushes a button
12 delay appearance of "game over" text
22 push button
12 door that can be opened
13 red eye of zombie should pulse and blink
13 graphics in the menu instead of text
31 sound effects
33 fix ladder climbing animation
31 fix double-jump bug
22 walking sound effects should be played randomly
12 parallax for moving background
21 bug: player death animation doesn't work
11 playsoft logo
12 zombie: add hysteresis to the decision weather approach the player
21 death from the spikes
12 turning flashlight on and off
22 there are some bugs/spiders walking on the floor
33 a spiked ball on a chain, hanging and swinging from the ceiling
Of course the list of tasks was constantly changing as artist, level designer and me came up with new ideas or decided that something is more or less important, found new bugs during testing etc. But I tried to concentrate on finishing one thing at time. When finished, I picked up next task to do according to following rule: I reviewed whole list to find a task with the smallest sum of its numbers. So the order in which I was doing the tasks was:
This way we managed to accomplish most of the tasks we planned so we were quite satisfied with our game as it looked and worked pretty much as we planned. That's why I believe this simple 2-digit method of managing task list is good for hectic, time-constraint and constantly changing work environment.