3 ms·
My most important lesson in working with clients as a programmer, is that asking them how they want their program to work is like asking a native speaker to tel
by rossdavidh 7y ago
My most important lesson in working with clients as a programmer, is that asking them how they want their program to work is like asking a native speaker to tell you the rules of grammar in their language. They have often lived with the rules of how their business process works for so long, it is intuitive, and no longer available to their conscious understanding, if it ever was.
Show them a scenario, though ("X, Y, and Z happen, so the program does A and B") and they can usually immediately tell you if that's the wrong or right thing for the program to do.
I have the impression that programmers, as a group, are mostly not great at understanding this, and it is a source of frustration for many of us when we program exactly what they told us to, and then it's "wrong". It is wrong. Like a linguist talking to a native speaker of another language, you often have to ask them about scenarios and piece together the actual business rules yourself.
The worst part is when the customer _thinks_ they know the rules, and then don't (consciously), and you have to help them through that cognitive dissonance of realizing that the business rules they "know" aren't actually the same as the ones they know.
- stcredzero 7y agoThe worst part is when the customer _thinks_ they know the rules, and then don't (consciously), and you have to help them through that cognitive dissonance of realizing that the business rules they "know" aren't actually the same as the ones they know. A coworker of mine used to term this, "Applied Philosophy." There was a post on HN a few years ago, where a game developer had a game where all of the users were asking for an Undo key. This would have completely broken the game! So he looked into his data, and figured out that what people were mad about was moving into a stream tile and taking damage or dying. So instead, he made it impossible to move onto a stream tile, and the problem was solved.
- rossdavidh 7y agoThey knew _that_ there was a problem, but not necessarily what the problem really was, or how it should be (programmatically) solved. Sounds similar. The answer bubbles up from the subconscious ('system 1' as some put it).