Their is a story about a German general that declared that there were four kinds of people, only three of which he wanted in his army.
Intelligent lazy people hate having to reinvent a solution to a problem that has already been solved. Moreover they don’t always go for the first solution that comes to mind. They would prefer the best solution; the one that means you don’t have to go through all of the problem solving work all over again when a slight variation turns up. They’re the ones that build a generic library with built-in extensibility. It will probably conform to SOLID principles. Their downside is that they may have a tendency to over engineer things at times.
These people are productive and can come up with working solutions in a short amount of time. They’re great when you need a quick and dirty solution. The downside is that that’s what you may get a lot of the time. A mixture of Intelligent Lazy & Intelligent Active in some proportion may be useful as they will tend to temper each other’s excesses.
Or they may just annoy each other like crazy.
These sort of people aren’t really smart enough to be superstar programmers, but, given clear enough instructions, can be fairly productive. Just don’t ask them to design a new framework. They won’t design one on their own as they don’t tend to take the initiative.
These are the dangerous ones! They don’t really know what they’re doing, but either they think they do or just have a go anyway. These are the ones that make you groan with despair at code review time. They write brittle code, they write complex code with subtle bugs. They leave chaos in the code base they persists for years, if not forever.