This is just a brainstorm, no hard and fast rules being set here. A bunch of the designers here at the GNOME London UX Hackfest got together yesterday to talk about Nautilus, and after talking about Nautilus those of us left had a bit of bigger-picture view discussion (mostly Garrett and I at the whiteboard with hbons & jimmac listening as they worked on awesome icon stuff). Us GNOME designers see each other on pretty much an annual basis for the past few years either at usability hackfests, GUADECs, or GNOME Boston Summits, and we end up having variations on the same ‘big-picture’ vision for GNOME. Somehow, we never end up really fulfilling that vision, and the climate changes slightly every time (for example, microblogging I think is a big difference this go-around that wasn’t as much of a consideration in previous iterations of the discussion).
Why does this keep happening? I think we go back home and work in individual silos again – and when we meet next it’s difficult work I think to resolve the different perspectives behind the progress we’ve made over the past year. It seems we then keep trying to redo the vision, maybe with the notion that this time will be the time we’ll figure out how we can all work together. I think though, not only are the tools for us to work together non-existent (there are some that have cropped up over time that help; e.g., Garrett and jimmac collaborate a lot using Dropbox) – but necessarily we’re working for different organizations that have different focuses and our free time is limited.
So what if we drew out a loose map of the big-picture vision, and as we necessarily work within our silos, pin that work to some piece of that vision map and fill the map in together each time we meet so we have an idea of how we’re progressing? Then it’s easier for our separate pieces coalesce in a more coherent manner when we get together and we can make forward progress together and feel like we are designing together more.
Anyway, here is a snap shot (nice and clean thanks to Garrett’s whiteboard photo Gimp tip) of our whiteboard from a rough stab at laying out some potential components for this vision:
Here are the components:
- Application Launching
- Switching contexts (apps/windows/documents)
- Support flow/focus
- Provide the date/time (maybe not the hugest function, but…)
- Sync & share / collaborate
- Project management / to-do management
- Store my personal database
Some other random ideas generated from this discussion:
- When I use GNOME to create as opposed to consuming, there’s an awful lot of data about me GNOME knows that it should be applying to the things I create. For example, why should I have to fill out the Dublin Core metadata entries for every single Inkscape document I create? Why aren’t I automagically added to the author field? GNOME knows who I am….
- When my file touches another person’s computer, what if a log entry was added to the file. Then it’s emailed to someone else, and when it lands on their computer another entry – so on and so forth until the file has a history so you know where it’s been…
- When someone collaborates on a file I created, their name is added to the list of authors in the metadata…
- Having your desktop be your facebook rather than facebook. E.g., if Seth is in my address book, I can see not only his contact information, but documents and other stuff he’s created that he sent me, my chat logs with him, his blog posts, other output from his online identity…. but gathered automagically, not so I have to gather all these links on my own. E.g., how the Palm Pre grabs your contacts’ facebook avatars to display when they call you – it grabs that data for you.
- Suggesting licenses to reconcile / suggest a license for a work you’ve created when it uses sources of varying licenses (or alerting you when they are incompatible)
- Version control – even on remote servers…. if you have git on your client, make your local project folder a git repo, and then you can sync it to a remote server, along with all of the git metadata so you can even have version control when the remote server you’re synching too doesn’t have version control installed / available to you
- You interact with files differently based on whether or not you created them or consume them (they’re from somewhere else)
- You interact with files differently based on whether or not you are actively working on them / with them vs. you finished with them and they’re archived. (For the former, you kind of want them in your face; the latter you don’t mind searching for them.)
- Have offline-disk access. E.g., store metadata about disks you’ve plugged into your machine in the past but don’t necessarily have connected now
- Synching files to work with other people
- Synching files so that they’re available across the devices you own (laptop, desktop, phone, etc)
- context-sensitive notifications, maybe one-shot notifications. I’m waiting for Ray to come online today, but I don’t want a notification every time he logs on or off. Just this one time. Vs. I always care about when he comes on or offline, but I don’t care to be notified about anyone else’s goings on.
For some of these, there are already pieces in GNOME that will help make them possible. However, they aren’t integrated as a coherent whole yet. This list is not to say that anything that already exists in GNOME today is meant to be thrown out or done over.
Anyway this is just a random brain dump but I wanted to make sure it was captured and shared. Sorry it’s not more polished.
Any ideas on where this should go or how this framework should be constructed?