The Project Lead calls upon a developer and programmer and asks, “I have this problem. Can you solve it? And you have the required resources”. The Lead turns to the Programmer and asks can you see the problem? The Programmer replies, “Yeah! I can see it clearly”. “What else you see?” the Lead continued. The Programmer said, “I see the SDK, APIs, IDE, etc. to solve the problem”. The Lead turns to the Developer, “Do you see the problem?”. The Developer acknowledges, “I do”. “Can you tell me what type of APIs and SDK can be used to solve it?”. The Developer replied, “I can’t. I only see the problem that to be solved”. The Lead yelled, “Start coding”.
The programmer sees the limitations with the available tools and does not see the vision. Whereas, the developer is not limited by the tools and finds the way to approach and solve the problem. A true Engineer focuses on the problem and tries to solve it; does not evade with excuses of tool limitations.
A lighter version of the same story:
The CEO asks the same question to different persons:
CEO : “Do you see the problem?”
Person A: [Thinks: What a stupid question]
Person A: “Of course! I can see everything?”
CEO : “OK. You are eligible as a Tester”.
CEO asks the same to Person B.
Person B: “Yeah! I can see the problem. I can clearly see the tools required to solve”
CEO: “You will be a good programmer”
CEO turns to Person C.
Person C: “I can only see the problem”
CEO : “You are a developer”
CEO: [Formulate this quote in the mind: Developer writes code and Programmer copy-paste it]
CEO finally turns to the Person D.
Person D: “I do not see anything”.
CEO : “Well, you are eligible for the Manager post”