Types of Software Developers, What Are You?
What kind of software developer are you? There are many types of developers out there, they serve different functions in the development lifecycle, have different skillsets, and have different job titles. Here’s a list of non-job-title types of software developers. What are you and where do you want to be?
Architects – Architects have a difficult job, they are the ones that resolve the creative, application, business, and technology needs. Architects take thethe problem and deconstruct it to the most optimum pieces. Architects provide plans for the other developers. They are able cross disciplines and vision the code.
Implementers – Implementers are developers with less creative or algorithm development skill. These developers take the components, APIs, and pre-written modules from the Architects and create the final product. Implementers put the pieces of the puzzle together. Implementers work best working with specification manuals and third party development APIs.
Discoverers – Discoverers are developers that test and experiment with things to come up with ideas. These are the developers that hunt and find. They are the ones that have lesser capabilities of developing quality solutions, especially to complex problems. For example they will see an API call and come up with a niche idea to implement that call. These developers solve small puzzles and can be related to a more “procedural” programmer.
Thinker – The thinker is a little bit of a discoverer and an implementer. The thinker creates algorithms but not to the level of the Inventor. Thinkers create algorithms that are simpler… to solve simpler problems. Thinkers work best at optimizing and streamlining code. Thinkers are similar to implementers; the exception being they do not require as much definition in the pieces of the puzzle. Thinkers are capable of developing pieces when the components given to him do not fit optimally (if at all).
Inventors – Inventors are developers that think outside the context of APIs. They think about concepts and ideas, they think in theory, they are computer scientists. They are the ones that come up with encryption, compression, image processing, and other interesting algorithms that enable the discoverers to find the niche applications.
What is the benefit of knowing these different contributors and more importantly how does knowing this benefit an individual? Is there a test to determine who you are in the “cycle”? What if you like all parts of the development, how to best narrow your focus or is there a way to have it all?
I am very interested in your “development lifecycle” and I hope you will go into it more as you continue to blog.
Sorry for all the questions I just asked, I find your blogs very thought provoking : )
This post is to give some insight to people who are software developers that may not have before categorized the types of people they work with.
It is also an effort to let developers on the lower skill levels know that there are things that exist outside of their bubble. Unfortunately, in technology there is a god-complex and arrogance that a lot of young developers have.
For developers at higher levels it is an attempt to help them know their coworkers or employees to better manage the team.
If you can’t tell where you fit then you better find a great developer to ask, maybe I’ll post a developer skill test at some point. That would be interesting.
[...] Love has written a nice overview of different types of developers. Do you recognize one of the types to describe [...]