All categories
Evolving Schema
Problem
The schema originally designed for use in the project is no longer acceptable because the project or the community’s needs have changed.
Context
Needs change over time as people begin to use and contribute to a dataset. Or perhaps through the process of collaborating with a community, you develop a clearer understanding of your collective needs. This may mean changing the types of data that is captured, so the schema might need to evolve.
Solution
Plan to adapt and evolve your schema over time. This might include expanding to collect information about new types of records, or adding and removing fields from existing records. Your plans should involve more than just the technical changes required to update a database or the service that helps to maintain data. You should also communicate and consult with the community about your plans.
By design a collaborative maintenance project involves a community of contributors and users. As a steward of a collaborative project you may have control over what data can be collected in a project. Changes to the scope of your project should involve the community so that you are transparent about when, why and how changes will be made.
Your community may have opinions about how the scope should change – listening to and engaging with them will help to build trust and encourage continued participation.
Changes to data models can involve extra work for the community. For example by changing how data is collected or requiring existing data to be updated. Discarding data means removing work that people have contributed. While this might be necessary to maintain the quality and utility of the data, these changes should be approached in a collaborative way. This will help you demonstrate Transparent Stewardship and will ensure that changes to your data model are part of having Visible Processes.
If you want to put the community in control over managing the data model then your project should be more of a Shared Canvas.
Test your updated data model with users and be prepared to adapt based on feedback and their needs. User testing might suggest you add more fields, change ‘data types’ such as changing single value fields to free text, or free text to a list of options.
Be sure to clearly communicate when any planned changes will be applied.
Depending on how your schema evolves, you may need to make bulk changes to existing data to fix or improve it.
Colouring London
“Age of building” evolved from a simple year to capture more nuance in the definition of “age”
Related patterns
Shared Canvas
How do you empower a community to shape the types of data collected in a project so that it can adapt to a range of needs?
Fixed Schema
The items in my database must all be described in the same way.