The 4 Types of Software Developers
09 Oct 2015
A machine learning expert remarked that they are 4 types of software developers and proceeded to describe them all. Here is my fuzzy recollection of the conversation.
Iron Man
The Iron Man developer is the person you want with you when you’re stranded on a desert island. In the middle of the desert Tony Stark was able to fashion a suit of armor. It was functional, but not production worthy. The Iron Man developer can quickly make a proof of concept with resources on hand, but cannot build an organization such as Stark Enterprises without a Pepper Potts. Building huge organizations that scale don’t interest the Iron Man developer. They just want to build and play. When you are starting a company, you need Iron Man developers to quickly build the product and find product-market fit. When the company grows, the Iron Man developer loses their ability to steer the company, because things just happen without any intervention on their part. They only need to exercise their abilities when the situation becomes dire. Iron Man developers fiddle with new toys and toss them aside when they lose interest in them. They explore the realm of possibility. If you want something built from nothing, you get an Iron Man developer.
Captain America
The Captain America developer is the soldier you need to scale your organization. They follow orders and pay attention to details. They have a stick up their butts about sticking to rules and regulations. You don’t see a Captain America developer disobeying orders and striking out on their own. Captain America developers are the cogs in the machine. They do they job well and the machine keeps chugging along. Without the Captain America developers, you wonder why everything is breaking and why the sky is falling. Captain America developers can be leaders of other Captain America developers. If you want to maintain the peace and prevent the other evil corporations from taking over the world, you need Captain America developers.
Michelangelo
Michelangelo is the Ninja Turtle who is always up for some fun. Most companies don’t have a Michelangelo. They inspire new ways of thinking and create beautiful works of art. You leave the Michelangelo developers alone for long periods of time and come back to see masterpieces. Examples of Michelangelo developers would be Jeff Dean, Sanjay Ghemawat, Guido Van Rossum, Stephen Wolfram, Haiping Zhao and Keith Adams. Cogs developers are risk adverse, so they won’t switch over to the newest technology until a Michelangelo developer shows the way, creating a new school of thought. Sometimes it is hard to keep a Michelangelo developer at your company, because they are always looking for new muses.
Vagabond
The vagabond developer wanders from project from project and tries their hand at the other 3 roles, but is never quite successful. They have aspects of each, but not enough strength in each of the areas to cement their role. Most developers fall into this category.
Super Hero Team Growth
In the beginning, your team needs Iron Man developers, but that will transition to having a lot of Captain America developers as your company scales. You need more and more Captain America developers to keep the corporate machine moving smoothly. As the Captain America developers grow in number, your innovation suffers, but every metric associated with the health of the company looks great. You’ll have to deal with vagabonds drifting through, because it is unavoidable. Eventually, the company might have enough money to support the works of your Michelangelo developers.