Developers, like users, have preferences, and developers, like users, have an irresistible desire to configure their workstation according to their preferences, and thanks to desktop metaphor our computer screen, over time, accumulates junk. Kind of like the commas in the preceeding sentence.

In my job I get the opportunity to pair program with other developers and in the process am fortunate enough (sometimes) to see how they (dis)organise their windowing environment. How do you organise yours?

The first time I installed Windows 95 way back when, I have to admit that I spent a good few hours getting everything setup just so. There would have easily been more than twenty icons on the screen - but that's nothing to some of the cesspools that I have seen now that screen real-estate allows for two A4 pages in word to be readable side by side. My desktop of old did have one thing in common with the desktops I am talking about however. They both tend to be glorified launch pads for applications - not the document-based utopia that we were all sold on years ago.

These days I tend to keep a simpiler desktop with just a few folders, the recycle bit, and any documents that I am currently working on (my production source code lives in a source code repository where it should). The apparent order in my life is of course a carefully constructed fabrication. Scracthing beneath the surface of my coarse chronological folder structure it's easy to see the chaos.

Most months I easily generate and download in excess of one gigabyte of documents and source code, and that’s not even including the big ticket items like the Longhorn WinHEC bits. I’m definitely hanging out for WinFS to help me manage this complexity – if it can’t I might need to hire a PA. In the meantime I think I might give this thing that FrankArr found at CeBIT a try.

Brownie points go to the first person that figures out how to provide an integration point between WinFS and tools like VSS, Vault, CVS and SVN. It would be so cool to be able to do a search for “BUG10052” and have it bring back the revision before and after the fix was applied as well as any documents and e-mails that were associated with it. That sort of tight integration with the shell would probably result in much protesting from some quarters, but I think it would be just dandy.