The most important lesson I ever learned in this business…
Be cautious or even suspicious when a specification/question is provided in the form of a request for a specific technical solution.
When someone presents a request in this form, the first thing you should do is obtain an understanding of the problem that the solution is supposed to solve.
Anyone that can ask for a specific technical solution should be able to provide that solution themselves. If they have to ask for help in building the solution, then they are most likely simply not equipped to identify it as the solution in the first place, and so they should be guided back to the problem itself.
[Of course, it may be that even with complete understanding the same technical solution is, after all, arrived at – never rule out blind luck!]
An example might be someone asking for help in building a flotilla of reed boats.
- Option 1: Show them how/Help them to build a boat out of reeds
- Option 2: Ask them why they need such a seemingly odd flotilla of boats …
Take option 2 and imagine you receive the reply:-
Because I need to get a few hundred people across a river, and where we are there are no trees nearby so I have no wood with which to build regular boats. There are plenty of reeds though, and I heard about this guy that built a boat of reeds and so I figured I’d do that but I need someone to tell me how to do it.
Then ask them where this river is and where they are. Then imagine that when you learn that where they are, you know that there is already a foot-bridge across the river, just around a bend that they apparently didn’t know about. TA DA!
They presented a request for a solution to a problem without fully understanding their own problem domain. With a proper understanding of the problem domain, the asked for solution is readily identified as misguided – at best – and a cheaper, faster, more appropriate solution identified.
In my experience, when a request comes in the form of a specific solution, 9 times out of 10 there is a better, more appropriate solution. Indeed, quite often it becomes apparent that the asked for solution would not actually have even been a solution at all.
The species of reed at hand may not be suitable for building boats out of, so your flotilla would simply have sunk and your user still would not have made it across the river.
To add insult to injury, you would most likely have been blamed for not building the boats properly!
Understand the problem – only then can you provide the solution.