During my work at IBM, I was tasked with working on an open-source tool called KUI. The product is a command line interface (CLI) that also has graphic user interface (GUI) features. I redesigned the tool's user experience, in order to make it more valuable to people. I also designed a way in which KUI would be integrated into IBM's flagship cloud management tool, IBM Multicloud Manager.
KUI is an open-source tool developed in IBM Research that meant to modernize the Terminal/CLI experience by adding GUI-like features, like charts, tables and and richer interactions. Though the tool had a lot of potential, it was lacking cohesive design and its supported features were not built in a human-centered way. I was tasked with improving the functionality and usability of the product, while keeping its core DNA of being a CLI that includes elements of modern graphic interfaces.
The existing open source KUI had the key functionality to visualize rich text using a terminal. However, it only had basic features that demonstrated the concept. My goal was to apply design thinking, in order to make the tool more useful and easier to use for its target personas.
The target personas for KUI are system administrators and application developers. Both personas use KUI to do their job, but they would use it in different ways. Application developers tend to work with one to a few applications, but need very detailed control, while system administrators typically worry about the health of many systems and apps.
Since I was tasked with integrating KUI into IBM Multicloud Manager (MCM), I mapped out the current journey that users had, while trying to do their work. This highlighted the many times people have to switch between a terminal and the MCM web application. This made an impression on me, as I thought this could be a potential area for improvement.
After assessing the current journey, I worked with the team (offering managers and developers) to define Hills, which are goals defined in a human-centered way. Hills help us align around our objectives and ensure that the team is in sync.
As I continued my work, I came up with a to-be user journey that showcased my target objective. A key property of my design was to reduce the friction that comes with switching back and forth between tools.
Before working on a prototype, I had to align with my development and offering (product) management partners. I wanted to get their buy in early, as that would ensure that I am not spending too much time on an idea that is not well received.
To get a good understanding of how KUI works in detail, I conducted a UX audit. I analyzed the functionality, interaction model, and visual language. My findings indicated that the tool can be quite powerful in combining a terminal and a graphic user interface effectively, but it lacked cohesion and a consistent design language.
I also looked around the web for other tools that try to combine CLI and graphic interfaces. I conducted a competitive analysis and explored potential ideas to draw inspiration from for my design.
Next, I sketched out concepts that I could use for my design. As I was brainstorming ideas, I kept an eye on the user journey that I had created. The sketches aimed to realize that journey, through an intuitive and clean design.
As I moved to higher fidelity in Sketch, I prototyped the key use cases, applied the IBM Carbon design language, and envisioned what integrating KUI inside of IBM Multicloud Manager (MCM) would look like. I built on top of the promise of KUI, but I ended up redesigning much of the interactions and visuals that it offered, in order to make it more consistent and easier to use.
After I finished the mid-fidelity prototype, I partnered with a UX researcher to conduct study, in order to test its usability. Below are some of the high-level insights that we gathered:
After collecting the insights from the study, I made some updates and collaborated with a visual designer to create a high-fidelity prototype. We tweaked the spacing, added colors and made sure that we are aligned to our guidelines around UI components and illustrations.
Our final design was delivered and presented to the team. It was well received and successfully implemented into MCM. As next steps, the team will observe how users are utilizing KUI and will strive to learn and improve the design. I believe that KUI can be further expanded to cover more use cases and provide more value to customers.