If you can’t put a name on it, you don’t know what it is
Peer programming with a lead developer on an important iOS project, I discovered a plain English dictionary or a thesaurus is my best friend.
You need it to name your objects, variables, classes, services, folders, …
It’s the best way to see if you understand what you do. Concepts you will implement must have their own special vocabulary.
For example, we were looking at a name for a model object. The object had to be a pre-filling container to build a more complete report. It had to be displayed on an UI to be filled, and to be opened and transferred via an URL. So it was used both as front and backend representation.
Well, we searched a name for 2 hours.
The reason it was so difficult was that :
- the concept was too close from another object, but different
- the concept was vague
- the concept had too many faces or too many responsibilities
We tried :
- ReportExcerpt (hard to pronounce for French speakers)
We finally settled for : ReportSkeleton.
Thank you Mac OS Dictionary App (by the way it’s waaaay faster than the Internet, try it)
And it’s even more important if your are not a native english speaker. Don’t use a translator from your language to English. Search an English dictionary. You’ll win one level of vagueness and indirection of your idea.