The Command Line Experience

Designing an experience that embeds within a developer's workspace

What is StormForge?

StormForge is platform that combines performance testing and automated resource tuning to deliver Kubernetes application performance at lowest possible cost.

Overview

During the redesign of the entire product, we introduced a new core concept called Application to replace Experiments. The design team was responsible for designing the process for creating an application. The GUI and the command line interface for creating an application had to be designed side by side. I was responsible for the command line interface.

The command line interface hold as much weight as the GUI, and possibly even more important as it allows a developer to stay within their work environment.


Our Users // DevOps & SRE Engineers

Our users are advanced tech savvy developers who don't require a graphic user interface to achieve their goals. From our user interviews, we learned that every thing is mostly done on command lines.

Role

Lead Product Designer. Responsible for the end-to-end user experience and coordinations with relevant stakeholders

Team

Optimization Tool Team

Duration

1 month

Setting the Goal & Desired Outcome

This is may be for a small set of users, but we want to create a utilitarian tool, so that people can stay within one environment to get work done. Based on our users' day to day, success is being able to create an application via command lines. Thus, shortening the time to accomplish a task of optimizing your load tests.

Background

Prior to this project, I worked on designing an experience for creating applications in the StormForge UI. Our user flow is based on the graphic interface design but with some differences.

This project was a different type of UX work. This wasn't a standard visual user interface. Instead, I was challenged to create user experience through words via the terminal.


Application UI in StormForge

General user flow

The Process

First, I wrote a script in Google Docs of the entire process of creating an application. This was based off the UI work that was previously done. This script helped determine the keyboard actions necessary for the design.

Next, I presented the script to the engineer, explaining the necessary keyboard actions. The actions we needed were up, down, select, remove, back, quit, multi-select, etc. They came back to me with a few frameworks for building terminal applications. After evaluating the frameworks, we agreed on using a framework called Bubble Tea.

It is useful to have experience with using the terminal, Vim, or coding when designing terminal applications. I used commonly used keyboard actions for most of the actions, so that users won't have to think much on how to navigate the application (ex. q for quit; x for select/unselect).

The biggest challenge was that some keyboard actions were off-limits because of actions reserved for the terminal. For example, I couldn't use up and down arrows, to move through a list of tests. Instead, I choose to use 'j' and 'k' because these are used in Vim to move from left to right or up and down.

The design was delivered via Google Docs. This included the keyboard actions and carefully proofread prompts for each step.


Command line interface design; mostly content designing

Side Note: Bubble Tea allowed emoticon usage. Using emoticons, was a fun way to create delightful experiences. When it was detected that the user had all the requirement, we can use a happy face to say we have detected it and we're ready to go!

CLI Create Experiment

Future

To improve this design further, we plan write a more detailed version of this script, which can be accessed by appending '-v' to the current command 'stormforge run'. The reason for this is to reinforce more education around the understanding and benefits of optimizing your load tests.