R Notebooks

With a free offering launch aimed at analysts well underway and plenty of customer requests, we knew we needed to add support for a third crucial language, R.

Timeline: 3 months

Role: User Research, IA, UX, UI

There were three goals for the R Notebooks project:

  1. add support for R

  2. finish adding support for R before the launch of our new, free product offering

  3. fit in any revelant improvements, especially wins that benefited both R and Python users

  4. read the second goal again 🔥

After spending over a year working on end user exploration (as far from code as I could have possibly been in Mode) my initial reaction to jumping on this project was sheer panic. I was by no means a proficient R writer. I had never even attempted to write in R. I wasn't super familiar with the decisions that went into the original Python designs. So, I started at the beginning.

DataCamp's R tutorials were doable, enjoyable even, and I quickly dug in while blasting Tchaikovsky and simultaneously trying to avoid the temptation to look up articles on imposter syndrome. If there's ever an addictive and invigorating challenge at Mode, it is the constant need to learn and understand a very technical domain. You're a student in the world of data analytics every single day, except you're encouraged to steal answers from all your brilliant classmates.

The MVP design requirements weren't exactly thrilling. There was one. Give users the ability to pick between R and Python in the notebook. Besides that, there wasn't technically any other design update needed to make R work. There was a lot of internal chatter and encouragement to update the look of the notebooks, but nothing super concrete. I'd have to find a sweet spot between one new toggle and an overly ambitious redesign. 

Unlike Python, R users weren't typically confined to a notebook style set up. In fact, R Studio tended to be a go-to tool, which was a powerful but intense IDE. Knowing we had to stick within the notebook architecture, Brian (PM) and I set out to do some user research to get a sense of what made the IDE ideal, and what existing customers wanted most when it came to the request for R support. Even if we couldn't move towards an IDE paradigm, we could do a better job of supporting multi-tasking or consider in-app documentation. After conducting a series of both internal and external user interviews and some brainstorming exercises, we had a sense of where we wanted to invest:

  1. Own the notebook as a presentational format

  2. Provide UX paradigms that were more familiar to traditional notebook tools, and consistent with our new chart editor UI

  3. Offer better on-boarding by providing in-app getting started guides and keyboard shortcuts

  4. Build new in-app documentation 

While we couldn't invest in an IDE or entirely new layout structure, we could double down on everything that made notebooks so successful to make it feel like both a workspace and something you should share with end users. As for features users gravitated towards in R Studio, we learned that documentation was huge. In addition to investing in these new resources and a documentation panel, we increased the contrast between input and output cells, made them easier to scan, redesigned the edit and command modes, and removed the contextual toolbar in favor of a top level sticky one that would allow us to scale and avoid obfuscating any code. 


↑  before + after  ↓


The weeks leading up to the launch were met with lots and lots of QA. We had reports on the usage of our beta customers which made bug fixes easier to move along, and the entire team really pitched in to help. Orchestrating a big feature launch like this alongside a new pricing model and marketing website certainly wasn't easy, but damn was the final product worth it.