Many engineers will tell you that one of the most complicated responsibilities of our job is naming things. Variables, classes, functions, everything we write requires conscious thought.
A special case among these are interfaces. This is because we not only have to name an interface, but we need to decide how to name the implementations as well.