Choosing the right terms
Here's a little lesson learned from building Snaptier
Snaptier is a platform that automates repetitive code changes. Let's imagine you want to upgrade your app to CoolFramework v2.0, it can do that, and also automatically fix all the breaking changes the new version might have.
This is achieved by having special classes that contain the required changes. On runtime, it uses the GitHub API to make those changes to your repo without downloading the source.
This classes were initially named Tiers.
I introduced this concept into the codebase in a batch of multiple commits, and the rest of the team just assumed them.
At this point, we had a landing explaining our product, with references to the Tiers.
Then, one day, I got in a call with Matt Stauffer and we had a conversation about Snaptier. He told me he had needed to process our landing for a minute to understand what Snaptier did.
And the issue where our Tiers.
We had become too familiar to the codebase to ask ourselves about the domain and how we were naming it, and then we had "leaked" that quick decision to our landing.
When we changed Tiers to Tasks, everything became much clearer.
Names are important!