Naming things
According to Phil Karlton1 there are only two hard things in computer science: Cache invalidation and naming things. I have experienced on multiple occasions how important the latter one is: Finding the right name for something and (perhaps evenly important) sticking to that name.
Read more