HPE Ezmeral App SDK

Context

HPE Ezmeral Application SDK formerly known as App Workbench, is a free, stand-alone, Python-based software development kit (SDK) that allows quick development of applications for Kubernetes, and other AI/ML apps, either from scratch or from existing container images. Read more on our PM's blog here

Watch this 3 min video to understand the existing product

My Responsibilities
  • Led the end-to-end designs for the HPE Ezmeral SDK Home page and Kubedirector app creation workflow
  • Collaborated with Product Managers to understand their business need and Engineers to understand the existing architecture
Team
  • UX lead
  • 2 Product Managers
  • 7 Engineers
  • Myself on the Kubedirector app and 2 other designers leading the research for the other two types of apps that can be created with this app development Kit

Cons of the existing product

  • Low customer satisfaction, and adoption rate — as there is no framework for creating custom apps resulting in loss in renewals and new product purchases
  • Less ability to attract new markets and customers due to lack of basic functionalities around K8s app frameworks
  • Decrease in sales revenue, Impact on Independent Software Vendors (ISV) partnerships, and revenue opportunities

STEP 1 — Understanding business needs

In the initial meeting with Product Managers, we laid out the current business pain points and understood the persona of an app developer.

Pain Points
  • Kubedirector is the default type of app onboarding for K8s apps and no framework to deploy/track the helm and operator-based apps.
  • Basic to no capabilities around observability, automation, and other table-stakes features for K8s app lifecycle management.

STEP 2 — Understanding existing product flow

I set up a meeting with an Engineer who worked on the legacy application and jotted down the artifacts that had dependencies and the ones that doesn't. This step helped me to decouple the series of steps into chunks that can work independently. For example, I decoupled the 'Application Details' in the new design. The rest of the app creation flow consists of a series of steps that ensures the required configuration details.

STEP 3 — Defining needs for redesign and enhancements

Based on the conversation with Product Managers and App developers, we sorted out the exact needs of the product.

  • Need a self-service app to offer a common framework to onboard K8s apps across different Ezmeral products and the Green Lake marketplace.
  • Need a way to leverage Independent Software Vendors (ISV) ecosystem partner products with a proper licensing structure in place. Right now, these apps are handled manually.
  • Need a workflow-independent app that can be deployable on other container platforms and across multi-cloud.

STEP 4 — Defining Success metrics

  • More customers adapting to Ezmeral App SDK to create all three types of apps and have the ability to customize apps
  • App developers should have a decoupled experience to import other Independent apps without any confusion
  • Launch a new app creation framework for HPE customers

STEP 5 — Shortlisting Beta Features

In another weekly meeting with Product Managers and App developers, we shortlisted the features that would go into the Beta release to see our customer's initial reactions.

  • Ability to import app schema from Independent Service Vendors (ISV) repo
  • Place to make changes to the code base (a code editor/a workspace) for all the identified app types (Kubedirector, Helm chart, and Operator)
  • Create AI/ML apps and directly deploy them to App catalog (Market Place)
2. Two step wizard for app creation

In the existing product, the application details are part of the workflow, I decoupled it and added it in the wizard as it is a mandatory and primary step in App creation while other configuration steps might be skipped.

Step 1 of Wizard — Provides the user to start apps from scratch and as well as import from the external repo.

Step 2 of Wizard — Captures essential details of the app, and provides a preview of how the app might look in the marketplace.

3. App Workspace

The app workspace lets the app developers customize any code before packaging or deploying it.

  • App Details — This area will show the user, a highlight of what app they are building, the version, and the last modified date to get an overview
  • App Configuration — The rightmost top of the page provides a structure and visibility for the user to fill up the missing configuration or fill up from scratch for new apps
  • Directory Browser — We preferred to leverage the directory browser component that we designed (Which can be seen in my previous project) and added extra functionality to it to provide code editor-like full flexibility to app developers
  • Code Editor — A space to edit the content of the files
3a. Mood board For Code Editor

Before designing the above workspace, I researched different code editors for inspiration and figure out common patterns, and listed nice-to-have features, must-have features.

  • Copy to clipboard (File content)
  • Delete file, folder - Single and Multi
  • Create files and folders
  • Move files and folders
  • Upload and download file
  • Bookmark a file or folder
  • Duplicate a file
  • Highlight content in the file - JSON, YAML, Markdown
  • Tags to show files that are modified, added, deleted
  • Drag and move files, folders

I had set up a meeting with front-end and back-end Engineers to go over the feature list and prioritize what are the must-haves from the App Developer's point of view.

3b. Directory Browser with added functionalities

The directory browsers in code editors seem to have more functionalities that provide more control to developers. Incorporating the features from the research above.

  • Ability to create, add, rename new folders and files
  • Source control — Basic commands to modify, add, delete and commit changes to Git repository
  • Search — to search for files in a lengthy list of folders and files
  • Indicators to show if the file is new, modified, or deleted.
4. Collecting app configurations

The configurations are added or edited based on the app that is created. These configurations are in the global visibility of the workspace because the changes done in this configuration are seen in the .json file

Before landing on the final iteration - I came up with these 3 different navigation versions in Iteration 1

  • A drop list of configuration items
  • Hub and Spoke navigation for configuration items
  • Inlined default button on the top corner of the workspace

We chose the final one 'Inlined default version' for two reasons

  • Better visibility of changes made to configurations are reflected in the workspace
  • Avoids extra clicking to go back and forth
5. Building Apps

As a last step in the app creation workflow, the apps need to be built in order to be downloaded as an independent entity and to be deployed in the Market place. Key feature include

  • Tabs: Build Output and Completed Builds
  • Build Progress Indicator
  • Downloadable image of an app after the successful build completion
6. Publishing to App Catalog

With the intention of integrating the developed apps into the marketplace, we wanted to create a seamless workflow that lets the user deploy the apps directly to the App Catalog.

  • Completed builds can be published to catalog and unpublished from a catalog
  • A build can be deleted permanently

Result

The designs are finalized, approved, alive and received a commendable Customer Satisfaction (CSAT) score. Also, this product was projected to increase the revenue of HPE Ezmeral organization by 14% because of its uniqueness in the market today (based on the Data from our Product Manager). I can explain in brief about the iterations, feedback, and testing in a call because the case study gets longer to explain the 101 iterations we did to finalize the primary flow for the app development kit :) Thanks for scrolling!

Learnings

  • Diverse thinking about filling gaps in the current market and understanding how those small changes could make a huge difference in business
  • Leveraging components and keeping the HPE brand of products consistent
  • Shamelessly following up with Product Managers for feedback on multiple iterations and understanding the success metrics
  • Setting up recurring weekly meetings especially while working on complex workflows
  • Adding the right people in the meeting and asking the right questions by doing homework in advance

Thanks Notes

Huge thanks to our UX Manager, for the critiques throughout and for helping me drive this critical part of the product. I owe a huge Italian cookie to you when we meet next time. Here is our GIF ritual