Implement your tools where your users expect them to be
If you want your users to use the tools you are building or onboarding, it’s important to implement them exactly where they expect them to be.
You’re probably expecting a data contracts example, so for variety I’ll use a data governance one instead :)
It’s often a requirement to categorise our data, so we can track what personal data we have, how long we’re keeping it for, how we’ll anonymise/delete it, and so on. Much of that data is owned by product engineering teams, who produce and manage that data through the code they write.
It would be asking a lot of them to categorise the data in a data governance tool through a web UI, or in a spreadsheet, or some other interface they wouldn’t go to otherwise. You might get them to do it once or twice, but sooner or later it’s going to be forgotten about and fall out of sync.
Instead, can you allow them to categorise the data in their code, as close as possible to where they are defining their data models?
If you do that, you could also provide them with continuous integration checks to ensure they are completed and prevent common mistakes.
If you have a requirement to have this presented in your data governance tooling, you could ingest this data into it.
A small example of this is the Anony Ruby library from GoCardless, which allows developers to specify how data is anonymised exactly where they define their data models.
If you want your users to use your tooling, implement them where they expect them to be.