Multiple Desktops to Separate Projects
While multiple monitors can improve efficiency, multiple desktops improve productivity: they allow me to work on more projects than otherwise possible during the workday.
Different projects can be logically separated from one another to eliminate distractions and intensify focus by placing them onto separate desktops. Switching between these desktops allows work to proceed on one specific project while other projects are in abeyance. This approach avoids the common pitfalls of multitasking while still allowing productive work to occur on multiple projects in parallel.
In the course of working on a project, I frequently run into roadblocks. These are situations when I am unsure of how to proceed or solve a problem that is blocking my work on the project. I observe diminishing returns in continuing to attempt to solve such problems if a solution does not become apparent after forty minutes of effort.
When my efforts fail, I will stop work on that project, write a note to my desktop on where I stopped and what I tried to achieve, and turn my attention to another project. Grouping different projects onto different desktops allow me to switch to a different project immediately.
I return to the blocking problem after a few hours. My work remains in the same state as before because the applications remained running and windows remained in the same position. All I do is navigate back to the desktop holding this project.
In this manner, I am able to quickly switch projects whenever I run into a blocking problem and return to that problem at a later time effortlessly.
My projects typically have delays. This can be caused by slow computers such as waiting for the software build, unit test, deploy, regression test process to complete or slow people on whom I am waiting to provide necessary information or complete a blocking task.
When such a delay occurs, I write a note on the desktop listing the project's next steps and then switch desktops to a different project.
One of my desktops is used as a "scratch pad" for miscellaneous work such as when:
- an idea occurs to me while working on a project. I document the idea on the scratch pad desktop using OneNote and create a calendar reminder to review these ideas later in the week. Writing down the idea allows me to continue with my original project without further thinking about this distracting idea or burden or worrying that it will be forgotten. Switching between desktops allows this to occur easily.
- an unplanned call or IM interrupts my work. I clear my desktops by switching to the scratch pad and can now focus attention on the call.
Examples of my Desktop Layouts
This is my typical grouping of projects when I work on SOFIns.
Communication and Web
- Outlook Email
- Outlook Calendar
- Enterprise Architect
IT Systems Development
- Puppet Master and Agent on separate VMWare Workstations
- Text Editors for Puppet Nodes and Roles
- Text Editors for Puppet Manifests
- Puppet Master Samba shares and Subversion client
- "Throw" emails and web pages to this desktop as a reminder to follow up
- Switch to this desktop when interrupted by phone calls or meetings
Projects are set up by navigating to the desired desktop and launching the required applications.
I also programmed the desktop software so that I can "Carry" or "Throw" an application between desktops.
Throwing a Window
Throwing a window is the process of moving the program to a different desktop while still remaining on the original desktop.
Carrying a Window
Carrying a window will move it to another desktop and also enable that desktop.