There are two "hard things" in computer science: cache invalidation, and naming things. After years of experience in software engineering I can vouch for the former, but it's the latter which is truly hard.
In the software world, "naming things" can refer to the challenge of coming up with descriptive-yet-succinct titles for things: a software library, a function name, a variable. It's hard because you need to anticipate how these things may develop in future, and how long they'll persist for. Famously, the HTTP referrer header (which tells websites which previous page you came from) is spelled wrong, and every bit of code since its introduction in 1996 has to handle both the correct and incorrect spelling.
Back in the flesh-and-bone world, though, naming things is equally challenging. I've been responsible for the names of at least four bands, two goldfish, several albums/EPs and, er, a couple of children. All of them were agonising decisions.
The kids are obviously the hardest of all: the weight of responsibility sits heavily as you contemplate all the challenges their name may bring them. Does it rhyme with some insidious playground taunt? Do the initials spell out something rude and embarrassing? Is their future Google ranking dominated by an 18th century serial killer they share a name with? There are plenty of pitfalls to avoid here.