Developers fall into two categories with regard to building solutions:
Envisioners can build complicated code in their head and develop complex proof-of-concept demos. They usually know all about the new technologies and can use them as soon as they are in beta. Envisioners tend to have job titles like “Developer Evangelist”, “Technical Evangelist” or “Architect Evangelist”. They are not usually good at delivering working solutions, but they can produce things that provisioners think is not possible.
Provisioners can follow specifications and meet deadlines. They take their time learning new technologies and do not like using anything first. They are usually very good at delivering working solutions, but not necessarily meeting all the requirements, when the requirements don’t fit the technology.
For a project you probably need at least on Envisioner and one to many provisioners, but not an envisioner on their own. This allows your code to be creative and succinct, groundbreaking and working.
In the realm of the software development industrial revolution, envisioners would build the factories building generic frameworks for many solutions, and provisioners would work on the production line producing usefully solution and providing the business value.
What do you think and which are you?