Sessions

Timeframe:
Summer 2019
3 Weeks
Sessions is a tool that allows you to save and access different digital workspaces, which are collections of apps, files, and websites that are related to a single task.

This tool facilitates greater focus by reframing the way we use our computers to be more task-oriented, and less app-oriented.



Problem Space


Many of us use our computers for several different contexts—projects, work, studying—and with each of these contexts comes a unique digital workspace filled with apps, files, tabs, and more. However, when switching from one task to another, we don’t want to lose those precious tabs and that perfected window layout. This results in digital clutter—remnants of other projects that might distract us. 

My friends Cameron and Marisa capture the essense of this project clearly—modeling computer spaces closer to thinking spaces.
In this project, I make a tool that allows you to save these digital spaces and access them later, greatly reducing the mental cost of switching tasks, and facilitating greater focus through cleaner workspaces.
Example Sessions

Research


To truly understand the barriers to doing focused work, I observed how people set up and navigate their physical and digital spaces. I also looked into psychology studies relating to the transition between different tasks, and the costs of multitasking.
My friends grew used to me asking “hey what does your computer look like right now”
When establishing new desktop metaphors, it’s helpful to clarify the words you use.
Language
Process: An app, file, note, song, or any computational method. Stored in a Session.
Task: An action that one is trying to accomplish.(ie.edit a photo series).
Workspace: The digital layout of many different processes.
Session: A conceptual collection of Processes in their Workspace layout.

If I want to complete the task of finishing my programming homework, I need to run several processes, such as my text editor and web browser—all layed out as a workspace. If I want to access it later, I will save the workspace of processes as a session.
Understanding the Problem
I started to understand that most distractions come from the digital remnants of different, unrelated tasks. Things like unopened emails. Unrelated reminders or notes. Website tabs that contain articles and projects that you don’t want to forget.

All these things contain value, but they spend most of their time bothering us instead of being useful when they need to be, and they make it harder to find the content that really matters. If they were to remain accessible even after closing them, we would have far cleaner workspaces populated only with the processes related to the task at hand.
Related Projects / Inspirations
IA Writer — a writing tool that seeks to facilitate focus by eliminating all extraneous features that could distract.
Ryan Campbell’s personal project — a developer’s project that allows him to open up a singular workspace when he restarts his computer.

Process


I started by creating mockups of how this tool might work and integrate into one’s workflow, but a functional prototype was needed to measure success.

One interesting thing about this project was that I was using it while making it, greatly shortening the feedback loop for improvements.
Initial Design
I wanted this tool to be a primarily invisible interface, with selective moments of interaction. I started off by brainstorming the user flow, and detailing what should happen at each step, both from a technological and user point of view.
Initial storyboard of part of the use case
Some early sketches of potential UI and architecture




Prototype

I could not fulfill all the goals that I listed out in the user flow, but I was able to make a working prototype that fulfilled the main functions. This would allow me understand the user experience and receive feedback from other people I beta tested with. This is the stage where I did most of my iterations—here are some of the choices I made.
For the main prototype, I decided to focus on the core functions: creating, saving, opening, and closing. These are the four core functions of any authoring tool, and I thought they would afford a fluid onboarding process and intuitive user experience.
Two versions of the three options: Create, Open, and Close. For those who don’t have a touchbar, there is a desktop version available!

Because system dialogs don’t have 4 button options, I opted for a save option on close.

One of the easier decisions I made on the programming side was to save the sessions as JSON files so they could be easily parsed and meaningful information could be extracted. I had to have a loose data structure that could be universal for most apps, since they all save and display information differently. Made possible through JSONHelper.

Example JSON file for a Session. The saved information includes app name, path, window layouts, and window information.

It is important to have clear visual affordances that allow you to quickly understand essential information. For these workspaces, I thought the icon ought to remind the user of the various apps contained within. I started with Sketch, but I eventually automated the icon creation process too through Command Line tools like imagemagick and fileicon.

Examples of some programmatically generated icons!


Custom icon in action


Final Refinement
There are some things I couldn’t do quickly enough in my prototyping stage, so in my last step I refined and added some details that I would have liked to add using Sketch.
Example of a proposed save state.
Sketch process



Measuring Success


Unfortunately, there isn’t a universal focus quotient metric over time, but I wanted to know if my project ultimately affected the way people thought about work. I open sourced the project on GitHub, and have been hearing positive and constructive feedback.
Check out my tweet to see some of the feedback I’m getting!

Final Thoughts


Throughout this project, I kept thinking that this could be expanded to an entire operating system. I felt restricted by the app-based paradigm that macOS currently exists in, but I wanted to ultimately make something functional that could potentially help many people now!
email     linkedin     instagram      vimeo     resume      inspirations     things