Tanzu GemFire Developer Guides

Tanzu GemFire is an in-memory data grid powered by Apache Geode. It's a distributed, in-memory, key-value store that performs read and write operations at blazingly fast speeds. It offers highly available parallel message queues, continuous availability, and an event-driven architecture you can scale dynamically, with no downtime.

CONTEXT

Our goal for Tanzu GemFire was to make it easy for Developers to “get started” building apps with Tanzu GemFire and Spring Boot.

We wanted to radiate the understanding of the developer experience with our team both internally (the product team) and externally (e.g. customer support engineers). 

MY ROLE

As the sole Product Designer on this team, it was my job to help the team understand our users, empathize with them, and design solutions that would improve their experience with Tanzu GemFire.

I was responsible for facilitating and organizing User Research, team workshops, experiments, solutions, user tests and final designs/delivery.

CATEGORY

Product Design, UI/UX, Technical Writing, Developer Experience

Overall timeline was about two years.

gemfire-2

PROJECT GOALS

01

Identify existing projects intended to improve the Developer Experience: tools, APIs, docs, examples, Getting Started guides.

02

Radiate understanding of the developer experience with Tanzu GemFire internally (the product team) and externally (e.g. customer support engineers).

03

Understand the current pain points of the Developer experience with Tanzu GemFire.

OUR APPROACH

Screen-Shot-2021-08-04-at-11.49.55-AM

DISCOVERY & FRAMING KICKOFF

Agenda (2 Days):

  • Team introductions
  • Team Vision & Project Scope
  • Explanation of D+F Process (presented by me)
  • Goals & Anti-Goal
    • Relate these to Objectives & Key Results
    • Identify Risks
  • Define Stakeholders & Relationships
  • Define Personas & User Journeys
  • Define our Assumptions
  • Research Planning
  • Communication
    • Define how we will communicate results & milestones
  • Retrospective

Kickoff Results

  • Purpose: 4-6 weeks confidence in what to build for developers, backlog with stories
  • Make it easy to develop apps with Tanzu GemFire (Spring Boot first)
    could be tools, APIs, docs, examples, getting started (examples, docs, guides, etc.)
  • Radiate understanding of the Developer experience internally (our team) & externally (e.g. Platform Architects)

SCOPE

  • Existing Platform (Tanzu Application Service) customers with access to Tanzu GemFire (for VMs)
  • Developers using Spring Boot
  • No previous GemFire experience
  • Application Transformation team (internal consultants)
  • KR: Getting started with Spring Boot and Tanzu GemFire for a look-aside cache on Tanzu Application Service
  • Tanzu GemFire is available to developer as a choice and we are able to demo and help devs get started quickly and easily.

OUT OF SCOPE

  • Session state caching (i.e. SSDG)

OVERALL GOALS

  • Focus on experience of Developer (note other decision factors)
  • Clarity on what to deliver to improve developer experience
  • Define end to end exprience: local machine developer experience up to pushing to PAS and Tanzu GemFire (understanding getting started workflow, may include installing Geode locally)
  • “The experience when you choose to give Tanzu GemFire a try is a good one”
  • Define best practices
  • Identify and call out pain points
  • Focus on TAS customers without GemFire experience (i.e. new Tanzu GemFire users, not customers converting frmo Standalone Gemfire to Tanzu GemFire for VMs).
  • Make ‘Getting Started with Tanzu GemFire’ resources discoverable by developers 

ASSUMPTIONS

  • “I want to stay in my IDE”
  • There is a hard line between Operator and Developer roles & responsibilities
  • Developers understand how much storage they'll need when they start a project
    Developers start with ‘baby steps’ like a ‘Hello World’ app, then apply it to their real world app problems

RISKS

  • API changes will be longer term (not within scope of this project)
  • Differing priorities of different teams (e.g. Spring or API changes)
  • Internal audience needs to understand and find resources
  • Issues other than ease of use impacting customers' decision to use Tanzu GemFire
  • Competing with (main competitor)

INTERVIEWS & OBSERVATIONS

9 Interviews

  • 3 app developers from client company
  • 2 Pivotal Platform Architects (no GemFire experience)
  • 2 Pivotal Platform Architects (GemFire Subject Matter Experts)
  • 2 Data Transformation Developers (Internal)

2 Observations

  • Listened in on a Tanzu GemFire developer workshop at client company via Zoom
  • 1.5 days on-site with client company

PERSONAS

AJ

PRIMARY PERSONA

36
Los Angeles, CA
App Developer 
Snag Ticket Events, LLC

EXPERIENCE
Has been using Spring for more than 2 years
Experienced Java Developer
Familiar with PCF, Cloud Native

BEHAVIORS
Learns new things by Googling for examples
Uses XP practices (TDD, CI/CD, pairing, etc.)

NEEDS & GOALS

  • Having trouble meeting app performance goals
  • Needs a cache and GemFire is available
  • Needs their data to be correct
  • Needs code examples to copy and paste
quinn

SECONDARY PERSONA

36
Los Angeles, CA
App Developer 
VMware

EXPERIENCE
Helps customers to the PCF Platform.
Frequently travels to customers
 

NEEDS & GOALS

  • Needs a good "recipe" to get started quickly with Tanzu GemFire
    Goal: move clients from the legacy system to PCF.
alex

SECONDARY PERSONA

36
Los Angeles, CA
App Developer 
Snag Ticket Events, LLC

EXPERIENCE
Attended one day workshop on GemFire
Is part of the first team to use GemFire
Comfortable with Spring Boot
Also may use other languages/dev environments - C++ or NodeJS

NEEDS & GOALS

  • Needs a solution to improve performance 
  • Is usually the first team member to try out/evaluate using new tech, so they need training materials
  • Need to put a system in place to prevent future application downtime issues.
Screen-Shot-2021-08-04-at-12.51.20-PM

USER RESEARCH PLAN

Key Goals

Understand what level of familiarity developers have with caching and also with Tanzu GemFire.
Understand how developers expect to learn how to use Tanzu GemFire. 

Participants

3 video conferences
HAVE NOT used standalone GemFire, are new to Tanzu GemFire.
Spring Developers at Stubhub

Schedule

Introduction
Background
Questions

Introduction

We work for VMware and we’re working on [understanding how developers learn about and use GemFire]. 
We’re talking with you today to understand your experience in order to improve the way that developers get started with GemFire.
There are no right or wrong questions or answers  — we’re testing the product, not you! 
Please think out loud and provide honest feedback. 
To make sure we capture everything, we’ll be recording your screen and the conversation. Is that alright with you? 
Any questions before we begin?

Background

Let’s start with introductions (introduce team and user introduces themselves). 
Tell us a bit about yourself. (Assume we know nothing about your role.)
What languages or frameworks have you used in the past? 
Do you practice Test Driven Development?
How long have you been using Spring? 
How did you end up choosing to use Spring?
What kind of Spring projects / parts of Spring have you used? 
What kinds of applications have you used these with?

Question Categories:

  • Caching
    • Examples:
      • What experience do you have with caching?
      • When was the last time you incorporated caching into an app?
  • Getting Started
    • Examples:
      • When tackling a new problem or technology, how do you usually get started?
      • Are there any approvals that are required before you are permitted to use a new service? If yes, what are they? 

Research Insights

Google is the starting point for research.
Searching for ‘Getting Started with X in 15 min’ or ‘in 5 easy steps’. 

Users have a strong preference for samples and use cases, because it is helpful to see how others have solved a similar problem.

App developers live in their IDE and Chrome

Most users are introduced to GemFire, they don’t just “stumble” upon it and decide to use it.

Developer Questions & Pain Points

How do I know the right tools for developing on my local machine?

Can I find examples to work from? (build, run, cut & paste)

How do I debug my app locally? After my app works locally, can I push my app to PCF, and it just works?

How do I visualize and interact with the data?

Screen-Shot-2021-08-04-at-1.05.54-PM

Solution Ideation

Screen-Shot-2021-08-04-at-1.12.40-PM

Solution Prioritization

Screen-Shot-2021-08-04-at-1.10.48-PM

Tanzu GemFire was previously known as Pivotal Cloud Cache or "PCC."

Screen-Shot-2021-08-04-at-1.11.02-PM

Defining User Workflows

Screen-Shot-2021-08-04-at-1.16.32-PM

First Iterations

We tested both the content and the format with somes customer Developers and internal Developers.

Screen-Shot-2021-08-04-at-1.19.13-PM

Feedback

“Oh wow that was easy!”

“As a developer I’m skipping environment setup and going straight to getting started”

“It ran, but I don’t know what it did”

“Running code out of the box is really nice”

We iterated continuously between versions of these guides and the website until we felt we were getting to the outcome we were driving toward: Developers getting started with Tanzu GemFire within 15 minutes.

Today's Solution

We eventually discovered that VMware Tanzu had started a site called the "Tanzu Developer Center," and felt it made sense for our guides to exist there to provide Developers with a single source of truth. We created a proposal for what the Developer Center could become in the future.

You can view the latest Tanzu GemFire guides on the Tanzu Developer Center today. We are consistently adding more guides, speaking with our field teams to collaborate, and collecting feedback as well as Google analytics. We've even helped other Tanzu Data Services add some guides onto the Developer Center!

Through Google analytics we can see that a majority of our customers return to the site time and again, specifically to the Getting Started guides. We have had positive feedback from customers and the field on their increased satisfaction with ease of use and their appreciation for this new example based documentation.

Selected Works

Vodafone 2030Innovation, Next Generation Design

XYLAProject type

EllioProduct Design, Branding

Ford Commercial SolutionsProduct Design, UI/UX

Tanzu GemFire Developer GuidesUI/UX, Product Design, Technical Writing