A very few of us do study computers as computers, and they often are held up as the pinnacle of the field. We would rather discover algorithms or write tools for other programmers. But most of us make tools for people, and we can't do that well if we don't know what they need.
One way this shows up is in the way novice programmers fixate on the fastest language or algorithm, because it's a way they can show off their expertise to other programmers rather than a customer. They should be taught from the beginning that their job is to be useful, and it would be easier if they could be taught to be interested in something other than the computer for its own sake.
So in my world of anecdata you're entirely correct on how amazing domain knowledge is. I could help the psychologist with her research and could anticipate a couple of fun requirements (like an ever changing questionnaire :P).
For the same reason as you describe: Most software is meant to solve a specific application. In my current office we have people who are experts in programming but also in orbital mechanics (the math and physics of it all). That makes them invaluable to the customers (who also have experts in orbital mechanics but not in software).
"Your audience is good at recognizing problems and bad at solving them".
As soon as you presume that you know your customers problems better than you, you're in trouble, but it's totally appropriate to ignore the solutions they suggest to you.
I think that it depends on who your customer is, if it's a domain expert then you should listen to what she asks for, because she likely won't change her processes to fit your product. If it's not a domain expert then there's much more flexibility when it comes to process, you're able to educate.
Indeed. The contradiction of recommending focusing on user needs and missing the reader need for a concise, well written article doesn’t inspire confidence.
I also apply this advice to myself, my girlfriend and my friends/family.
It's worth it in the long run.
Oh, this is meant as business advice! Ah, I guess living life is a business, in a sense ;-)
The main problem in industry is not suboptimal badly designed software. The main problem is amount of outright failed projects. Not delivered or with zero adoption and zero deployment.
Arrogance in ignoring real-world pencil experience of our customers, inability to extract that experience is often the reason why software project fails.