jessica peng


Sandbox Artifact Copy

A streamlined solution for transferring sandbox artifacts.


hero

Overview
Transferring artifacts between sandboxes in Adobe Experience Platform is time-consuming and error prone.

Sandbox Artifact Copy aims to simplify and streamline sandbox management.
Goals
  • Allow users to seamlessly transfer artifacts and their dependencies between sandboxes.
  • Allow users to sync artifacts whose sources have been edited.
Role
UX Designer and Developer | Wireframes, Prototyping, UI/UX Research, Front-End Development and API Optimization
Scope
August 2022 - January 2023
Tools
React, TypeScript, React Spectrum (React implementation of Adobe’s design system), Unified Shell (Adobe’s UI framework for internal apps), HTML/CSS


Exploration

Personas
  • Solution architect
  • Consultant
  • Data engineer
Identified pain points
  • Painful and time-consuming to copy complex artifacts between sandboxes
  • Need to easily kickstart new business implementations between environments
  • Need to deploy sandboxes with a baseline configuration, support customers that wish to benefit from faster sandbox deployments that include tested AEP configurations
  • Need a separate set of APIs for AEP versus AJO for migrating development work to higher sandboxes
Functional use cases
  • Copy all foundation artifacts (schemas, datasets, segments, sources, destinations) and first level dependencies from one sandbox to another sandbox
  • Review dependencies before copying
  • Sync artifacts between the source and destination sandboxes
  • Revert artifacts (once) after syncing
  • Log actions for documentation and troubleshooting
Competitive Analysis
competitive analysis


Design Process

user-flow
User flow for copying artifacts


sketches
Initial sketches


Version 1

Image 0
Image 1
Image 2
Image 3
ImprovementBeforeAfter
Problem
Users can only view one artifact's dependencies at a time.
Solution
List all artifacts and their dependencies in a separate window.
Thought Process
Previously, we used a dependency tree (plugin) to view all dependencies for a given artifact. During testing sessions, we learned that this tool ran slow for artifact's with multiple dependencies and users wanted a more holistic view of all artifacts they selected. I decided to create a separate window to display all artifacts and their dependencies in an organized list.
BeforeAfter
Problem
Lack of modularization makes it hard to incorporate new features.
Solution
Separate the artifacts into their own tabs.
Thought Process
We received two additional requests to sync and revert artifacts between sandboxes. Incorporating these features (each requiring multiple UI components) would've been time-consuming and unreliable in our single-page UI. Given that our highest priority was to implement these features for schemas and we already faced issues running asynchronous calls across different artifact types, we decided to move each artifact type to its own tab.
BeforeAfter
Problem
The audit log is too dense and hard to follow for troubleshooting.
Solution
Turn the audit log into a table and put it on another tab.
Thought Process
The audit log outputted asynchronous calls across all copy operations, which made it hard to trace what was actually happening for each copy workflow. Since we already created tabs for each artifact type, we decided to extend this to the audit log and put it on a separate tab. We also narrowed down the information to main actions taken in the app and organized it into a table.
BeforeAfter


Current Design

Image 0
Image 1
Image 2
Image 3
Image 4
Image 5


Conclusion


From the audit log, we've tracked over 100 internal consultants and solution architects using our app. We've also added an additional capability to copy artifacts across IMS orgs. Overall, we've received positive feedback on the usefulness of this tool to facilitate and streamline sandbox management in AEP.