Search this blog

11 January, 2010

How do you do your work?

How do you do your work? I would like to know.

Personally I don't think I really have a process. Or I never noticed one, I change my ways a lot. Sometimes I prototype straight away, sometimes I plan a lot ahead, I have very strong opinions on how things should be done, but in practice I follow more my experience than any set of formal rules. The only common trend is that I end up doing a lot of research on anything, and I tend to iterate a lot, interleaving my work with the artist's, trying to communicate a lot. But the details of how this is done vary a lot.

I'm messy, and I have a really bad memory. So, even if I like being messy, finding inspiration from many sources, I have to keep track in some way of what I'm doing and thinking, otherwise I'll forget everything after a while.

There are various aspects of this, it's almost a fight between trying to be creative, and trying to find an order among all the ideas and stuff I use. I don't have many rules, but in the end my workplace always ends up in a given shape.

The workspace. Every time I have to setup a new workspace, first of all I do plan for my computer.

Ergonomy is important, I plan the placement of the monitors first, as it's the most constrained due to the lighting conditions, that often are fixed in an office. Then I lay out all the things I like to have near me, because I access those often, and all the things I want to have far from me, because they are disturbing or noisy. Then I lay the cables.

I use a lot the space on the walls. I always have them full of prints, from reference images and stuff from my current project.
Also I have lots of unrelated stuff, comics, neat images, everything that I find interesting. There is some sort of order tho, I have a wall for game related stuff and one for research papers and stuff more directly linked to my current work. All the other spaces are more random.

Note taking is fundamental to me. I have two big whiteboards, and a lot of post-it blocks, notes, and a lot of different writing instruments. Same thing at home really. But I've found that that's not too good to keep track of things, just to play with ideas, doodle and tinker.
As an idea tracking device I currently use some needles to stack small post-its. While we have agile software and so, I still like to have something physical for my own ideas, everything that's not a task, yet.

Tinkering is important. I have lego bricks, scissors and knifes, and even small objects just to play with them, to have a tactile feedback. A colleague of mine once showed me this movie, that I find extremely good: Pollinate 2005, the common desk. Lifehacker also offers plenty of inspiration.

The computer. I like to keep my computer tidy, in some way, organized. First of all I care about the monitors. After I've found the best possible placement, in terms of light reflection on them, I adjust them to a comfortable height and angle, considering that I sit very low on my chair, having my arms all resting on the desk, and my keyboard and mouse, as far as possible, just under them, so I can work with my arms well stretched.

I currently have three monitors, one for the consoles, and two for the PC. I keep one horizontal and another in vertical (note: rotating the monitor does screw cleartype. It's still good enough on my setup, but you should know that. Also the VGA input is usually more blurry than DVI, a good idea is to calibrate your monitor if you're using it, using a fine bw checkerboard).
Then I adjust the monitors to the same brightness and white balance, trying to find something comfortable considering the ambient lighting, usually with an hardware calibrator but you can do the same by eye, using some reference charts.

On the software side, there are a few things I always do with a new PC. For readability I enable and tune cleartype, and I customize my colour schemes. There is much debate over those, I won't argue between light versus dark, there is a nice stackoverflow thread about that if you're interested (update: this is cool and this one is nice too)
There are a few utilities that I also always use. I try to be orthogonal in my choices and not to bloat my pc. Currently my must-haves are Launchy, Rockscroll (Metalscroll), Unlocker, 7Zip, Irfanview, Notepad++, Firefox with a few plugins, VLC and CCleaner. Some other nifty utils are Local History, Everything, GridMove, DropCloth, Ultramon and Beyond Compare.

Music is another fundamental part of my day. I use youtube a lot, for that some other coworkers of mine treasure groove salad.

Don't work. Actually, most of my work related ideas come when I'm not working. Go for a walk! Also explaining your idea to other people works a lot. Even if they won't provide any feedback and that's rare, nine times out of ten you'll gain more insight in the process. Write a presentation, talk. Even to yourself. Write a blog, even if it's messy like mine (even if I can't really talk about anything related to what I'm doing at work... so this is really a repository for future or personal or in other ways lame, ideas)


Unknown said...

We write highly complex real-time signal acquisition, processing and visualization software with over 3,5 billion lines of C++ code and we have...a table in an open plan office.
If we need to have something extra, like a whiteboard, we need to scrounge.
Sometimes we put things up on a wall, but that's not really encouraged.
If you want to introduce something ( like making and storing photo's of whiteboards ) it's hard to convince management, because usually it starts from just a few individuals doing it. As such they don't find it a priority to budget for this. Convincing everyone of a new idea is hard, because there is no general technical platform to discuss it.
Handy things which our team does, like putting a whiteboard in table like configuration and sitting around it, so everyone can participate, is not picked up by anyone else. Even though they everyone enjoys the experience.
Some people sit in a bend of a nice desk, or in a very narrow space, or they put their monitor 4 feet away ( no kidding ) so it's impossible to pair up.
Nobody cares about any of this.
Thanks for letting me vent :)
You have an awesome workspace. If workspaces were basketball leagues, yours is the NBA.

DEADC0DE said...

Unfortunately many times openspaces are used to cram more people in a room, and not really to facilitate communication. They're very tricky, and often abused.

I use the table-whiteboard idea too, it's neat even if I use just on one of my desks as another mean of sketching ideas.

I won't stress myself over convincing everyone about an idea tho.

Even if a given practice is really neat, not everyone will use it, just because there is a given cost in learning and adopting any new technique, and simply some people are willing to change only if they really need to.

For example, I'm pretty convinced that VIM is a great editor, but I still can't care about learning how to use it effectively. Some programmers are even upset by that, thinking that a clearly superior solution should be surely adopted by anyone. In practice it's nothing like that.

sebh said...

Hi CODE517E,

I am a PhD student in Virtual Reality.

- I like to think a lot about my rendering ideas (in the bus, during break). When I have one I really like, I write it on a piece of paper or if I can't, in my phone. In the end, I have this kind of todo list of things I would like to implement. My PhD is not really about graphics so I implement those things at home during night or week-end.

- I also read a lot of scientific paper (all Siggraph, Eurographics, I3D, etc) and put the articles I want to implement in my todo list. Also, reading papers is a good way to keep myself up-to-date with lastest algorithm.

- On my desk, it becomes full of papers with time(but no high stack). Once a month, I classify all these papers.

- On my computer, I have visual studio for C++ and Maya to create the 3D models I will use in my applications. (I have my own 3D format and exporter but I would like to get the Turtle plugin from Illuminate Labs). And I use SVN for code versioning.

- When I develop, if I need to write, I use paper (I don't have a whiteboard).

gpakosz said...

You mind be interested in MetaScroll as well.