have you ever thought about the two fundamental types of developers?? OK, let me introduce my model to you:
Product Group versus Laboratory
Let us start with Lab guys first:
The laboratory developer:
* Short winded, things need to show quick results
* No care about architecture
* No care about security or performance
* Lots of ideas, very creative, thinks out of the box
* Willing to take risks
* Fails often but quick
* Typical work cycle: Idea – Prototype – Evangelize Prototype for broad usage
* Work cycle breaks on any position regularly because product fails
* Language of choice: Ruby, Python, Visual Basic, Expression SketchFlow was made for them
The product group developer:
* Cares a lot about architecture, security, quality, documentation
* Lots of ideas but within the box
* Failure is no option
* Risk avoidance
* Typical Workcycle is defined by a software development process
* If the workcycle breaks something severe has happened
* Language of choice: C#, C++, Java, UML
To bring it down to one word: Product Developers are all about engineering, Laboratory Developers are all about design. I went through my team and found good examples for both groups.
The better developer – product or lab? Both.
The answer is: You need both!! The lab guy helps you to be really creative and innovative but will hardly be able to deliver a profound quality product. While the product guy will struggle down any idea reaching to far beyond what we have today, those guys are able to build, deliver and maintain a quality product. Funny enough the lab guys normally take well build (product group) stuff and build on top. A shaky tower needs a strong basement.
More innovation – product or lab? Both.
Here again the answer is that both are innovative but on different types. While a product group does innovation in baby steps (start from the good that we have and extend a bit – not too risky – in a certain direction), the lab makes huge jumps but does not care on steady increase (I mean over several product releases).
Product and Lab – never mix!
Interestingly enough I heard a guy from a lab within Microsoft telling me that he normally tries not to hire somebody from product teams. In his opinion those guys are poisoned in their thinking (hey, he is a lab guy, ok?). He also told me that lab guys normally cannot switch to product groups because they tend to kill the process.
It is all about the handover. A company that is able to hand over ideas from the labs into the product groups is a killer…