Link: Talk description and video
The easy way to write an API is to use your current implementation, but then you expose implementation details which makes it harder to change or improve the implementation in the future.
In software development, you shouldn't think up a big design upfront, except for 2 things: security, and API.
Forget about your implementation: think up 2 or 3 different ways you could have implemented your project, and keep only the common parts, the "substance" for the API.
To motivate people to migrate to your new API: don't add new features to the old one.
Make choices.
Also, don't be in an environment where making mistakes is punished, rather than fixed :)