My primary workstation is a Mac Pro with 12GB of RAM and several TB of disk space. In addition I have two monitors attached (Samsung SyncMaster 204B), which gives me an effective 3200x1200 of desktop real estate. In my opinion you can't have too much RAM, disk space or more importantly screen real estate.
The other thing that I've found extremely helpful for me was using a decent multi-button mouse. In my case I'm using the one from my older Windows XP gaming rig, a Logitech MX 510 Optical Gaming Mouse. The best part of it for me is that I've set the additional button below the mouse wheel to activate Spaces, making it really easy to quickly access the list of windows and select something. Since the Logitech drivers are buggy I purchased a license for Steermouse, which gives me all of the mapping functionality I need to map buttons in OS X.
I use Spaces by breaking my windows up into work areas for specific classes of tasks. In this way when I am in that work area most of what I need is visible. In some cases I want minimal distraction and in others I use the Space as a view into one of many conduits of information.
Spaces can handle a rather large number of virtual desktops but the number I've found that works best for me is 12: 4 rows of 3 spaces each:
Here is how I've broken mine up:
|Web and News||iTunes||Open|
|Communications||Documentation||VMware Win XP|
Since I rarely shut down my Mac (I simply put it to sleep), I have many of these applications available as soon as I need them. This is of course one of the primary advantages of having 12GB of RAM. Here's how each one of these spaces works out:
Web and News
My primary web browser is Firefox and NetNewsWire is my news reader. I'll have multiple tabs open in my browser and use it when I'm doing research or catching up on the day's news. This is one of those distraction zones and I try to be regimented about how much of my time I spend here.
Since I sync up my iPhone frequently and often like to have music playing in the background, iTunes gets it's own Space. I rarely spend any time in this particular space.
I try to keep all of my direct incoming and outgoing communications in one place and that's what this rather crowded Space does for me. I run the standard Mac Mail.app in the left monitor and in the right I have Adium, Skype and TweetDeck active. I also have a small TextEdit window open where I jot down notes and thoughts. I just started using TweetDeck today but have already become quite attached to it. Great way to stay on top of my expanding Twitter feed.
I always seem to be referencing PDF documentation on a regular basis. Today I've got a PayPal API document and an Active Merchant tutorial I am going through. Since these two are going hand in hand for what I'm working on I have them both up. Normally I have a single PDF up in this space; I'll mute the speakers, shut off my Growl notifications and music and focus on reading. It's a bit like entering a library to me.
Though I rarely use it any longer I tend to keep a Windows XP instance up and running in a VMware Fusion virtual machine. My primary need for it now is to load up Internet Explorer and check how the web based application I am building looks on it.
Lately this is where I've been spending most of my time as I get ready to launch my next business. I've been doing the work in Ruby on Rails and as a result keep a couple of different windows up and running in here. On the left monitor I have TextMate up as my editor of choice.
In the right monitor I have a standard OS X Terminal window up with several tabs inside of it. A background tab has my active Mongrel instance running the development version of my application and the foreground tab is ready to accept commands.
I use Safari as my web browser for local application testing and may have several tabs for documentation open in it as well. Since I use MySql as my primary database I keep a MySql Query Browser handy with my development database loaded in case I want to make quick changes to the data set. This is rounded out with a TextEdit window that contains a list of issues and notes for what I am working on.
This Space is reserved for OmniGraffle Pro. Since it has lots of additional windows and pallets I tend to let it take over both monitors. I use OmniGraffle for mocking up wire-frames of my application pages and working through flow charts for application logic.
Though I don't keep it open all the time I do have a dedicated space for iPhoto, mainly because I let it take over one monitor while I have Finder windows open in the other if I am moving pictures to different media for transfer or import. I'll also do my editing with Gimp in that Space.
I've become quite fond of Pages because of it's simplicity and have a Space dedicated to the times when I am in letter writing "mode" or creating marketing materials.
As you can see I also maintain a few open Spaces that I can jump to if I have some application or task that falls outside of my pre-defined areas. The benefit to all of this is that I can jump into a Space and focus on the task at hand. If I have the mouse in hand I'll press the button for Spaces and just click on the area I want to be in. If I'm in keyboard mode I'll usually press Command-Tab and pop to the application I need, which will also switch the Space for me.
I use a similar setup on my MacBook Pro, though since it is a single monitor and used primarily when I travel or am in a meeting I have it set up very differently. The principles however are the same: group applications into Spaces based on the mode of work I want to be in.
As a high-tech entrepreneur I have a tendency to be running at top speed throughout the day. Over the years I have learned how to multi-task well, allowing myself to flow from one task to the other when the situation warrants it but shutting down music, alerts and external distractions when I need to focus on deep tasks. The set up I have created with Spaces works great for me and I feel considerably more productive than I did back in the old days with multiple layered windows competing for my attention.
Do you juggle multiple applications at once or try to keep one application running at a time? Have a better way to keep your applications running smoothly? Please drop a note in the comments.