As a nitpicker on the Cattle Drive, I find myself returning to the concept of naming things well.
It's one of the most difficult things in computer science.
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton
And of course, a popular variant: "there are two hard things in computer science: cache invalidation, naming things, and off-by-one errors".
Today I came across a blog post about this subject that speaks to the difference between explaining implementation (a name that explains what it does) and purpose (a name that explains why it is important)
It's a great read, highly recommended: Code That Says Why It Does