One day I was checking up on my software engineer’s work. My instructions to the team had been: ‘make it so my mother can use it, she is 80 years old’. I asked to see it; I ran it and it crashed with no error message. I asked him what happened. He said: ‘You did not set the environment variables’.
I asked him how my mother was supposed to know to set the environment variables (or even what they are). Documentation? – None, Prompt? – None, Verbal instructions? – None, Error message? – none.
He brought it to me later and it worked automatically with no need for user intervention, the way it was supposed to work.
To be truly successful as a software engineer and perhaps technical person in general you need to have a real sense of compassion for the end user. It is that ease of use that makes the difference between good software and software no one wants to use. People don’t want to have to learn how to use technology; they want it to work like magic. They do not want to expend effort trying to figure out what it is you were thinking when you wrote it. If you want your software product to be successful, make it work like magic. Make it work so even anyone can use your software instantly.