A friend of mine sent me this picture of a math problem and it’s solution:
I though it was a great (and very funny) example of giving someone what they are asking for instead of what they really want.
Sadly, this happens quite a lot in the technology space. People often ask for something to be added or changed in a device or program with only a superficial understanding of the implications of their request. As engineers or designers, the challenge for us is to not simply come back to them with the “Here it is” solution, but to understand the context of their request and try to give them what they really want.
And that requires real engagement and iteration:
- What problem are they REALLY trying to solve with a given request?
- What will different solutions cost them in terms of complexity and usability?
- How should it work across the different platforms they may want to use it on?
- Is this a unique requirement or something that needs broader feedback?
All of this is as much a part of engineering a solution as any of the technical details needed to implement it. Without having a deep understanding of both their goals and their workflow, delivering a truly successful solution to a client will be nearly impossible. Engineering is ultimately about solving problems without creating too many new ones. And that involves more than just an understanding of technology.
Like doctors who have taken the Hippocratic Oath, our first duty to the people we try to help should be “Do no harm.”