Build a Demonstration Dataset
Learning Objectives
- Tell your app's story with data.
- List the benefits of demonstration data with your app.
Applications don’t exist in a vacuum. Just as an ice cream shop with empty seats and blank menus would feel bare and empty, an application without any data present can be stark, unfriendly, and difficult to comprehend.
We pick up with the story from the Community Project Development with CumulusCI module of a collaborative community team that is developing an open source app with the potential to benefit thousands of food security organizations. Tasha, the primary advocate for the new Food Bank app, wants to make sure new users, and team members who work with her on the project, get what they need to really understand that application and its purpose. To accomplish this, Tasha decides to flesh out her scratch orgs with realistic data that help tell the story of the application and give new users the context they need to apply the tools she is creating for them.
Build a Thoughtful Demonstration Dataset
Data doesn’t only benefit end users. Everyone involved in the application’s story benefits from understanding and empathizing with the people who will ultimately use the new features. Developers and administrators need to understand their users’ motivations and use cases. Testers need to understand how the features they’re evaluating will be used.
Building a thoughtful dataset that’s loaded into a scratch org is a way for Tasha and her colleagues to tell the story of the application throughout the entire development to deployment lifecycle. Moreover, it’s an opportunity to bring in collaborators who may not have dev experience, but who are able to bring insights and wisdom from working with their constituencies every day. Maddie, one of Tasha’s colleagues on the app development project, is a good example of a collaborator. She brings deep knowledge of her organization, Hunger Northeast, and its clients. Demonstration data will help Maddie understand how the tool will work, so she can suggest improvements.
Adding demonstration data is like the cherry on top; a special garnish that makes your sundae truly memorable.
The Role of Data During Development
During application development, data that tell a story helps Tasha and her colleagues think through how users will experience the features they’re building. It creates a connection all the way through to the users at food banks around the world who’ll someday save time with this feature, and keeps the user at the center of their discussions.
The Role of Data During Testing and Quality Assurance
It’s hard to test an empty application! Starting from a blank slate makes it difficult to envision users, use cases, and workflows. People who want to test the application find it can take a significant amount of time to populate a testing org with information and see the application in action.
Thankfully, there is another way! Create a starting point with an org that’s filled with data that tell a story. This approach makes testing faster and more effective by guiding testers into real workflows that make consequences immediately apparent.
Demonstrating the Solution with Data
It’s so much easier for Tasha to advocate for her application with employees of other food banks when she can spin up a fully-populated org with relatable data in moments. Tasha doesn’t have to spend hours configuring her org and adding example data to reference during her demos.
Instead, every org she creates is automatically populated, and Tasha’s familiarity with the application’s story—demonstrated with realistic data in each feature and object—makes sure she’s always ready to give a compelling, user-centric demo.
What’s Next After Demonstration Data?
So you’ve got a solid demonstration dataset, now what? Consider how to customize.
For example, Tasha has gotten comfortable creating metadata for the application in her scratch orgs. But adding demonstration data isn't quite the same: the CumulusCI commands list_changes
and retrieve_change
are only designed to extract metadata changes and don’t pick up data records.
Fortunately, CumulusCI comes with tools to help retrieve, store, and load data across scratch orgs, making it part of the project itself. Before diving in, Tasha needs to get comfortable customizing how CumulusCI creates her scratch orgs. We’ll pick up there in the next unit.
If you’d like a refresher on nonprofit and education data management best practices before diving into the next unit, turn to the resources listed below.