In every group of individuals we can recognize pattern. Observing and grouping people can give us more understanding how teams are formed, how they work etc…
I’m in IT industry for 10 years now. Some patters started to appear here and there. I will share my thoughts.
7 mental types (version 1.0)
I was able to recognize 7 mental types of software engineer
– SOLID junkie(replaced by Celebrity)
– Beta tester
– Special forces
– Code nazi
Each of them have different characteristics. Some characteristics are shared between multiple types causing types to overlap.
SOLID junkie This type is very similar to Code nazi so it was merged to it This type will apply SOLID everywhere. He will seek for patterns. CQRS, DDD, Design Patterns.. everything. All code in codebase must conform to at least one pattern. Such type misses balance between perfection and work done.
“Quick and dirty” solution expert. This type has a mission. Objectives are above everything else. Even “cancel mission” command send from headquarter may not work. He is excellent in solving burning problems. Bug on customer’s production environment – he is always ready to fix 🙂 Team member issues are also solved with relevant force. But the mission success factor is 99%. Be careful with this type.
His main goal is to write. He checks git stats on who has the biggest contribution in project. More = better. He does not refactor. He rather throw away and writes from scratch. He can produce tons of code quickly. Often do not understand what he wrote last week. Recommenced type for software houses.
Perfectionist. “Spaces vs. tabs” could be his master thesis. He will argue till you give up. Every file in solution must follow strict rules. Nobody want him do to the code-review. Good type for critical parts in application.
He loves support. Does not produce too much functionality, but without him team velocity drops by 35%. He writes essays in code-review and gives fabulous feedback. He likes to teach and guide adepts in software industry. Recommended for working with novice developers.
Adds functionality by removing code. Boss ask him for permission when updating production environment. Team members sometimes do not understand the uber-abstraction level on which pragmatic resides. Others say “he knows…”. Best fit for defending team against external world 🙂
Proud of what he produces, even if it’s crap. Want to be involved in every decision in project. Describing himself as oracle. Money and prestige drive him most. Is very good in selling what he produces.
Mental types map
Diagram below show an overview how are the types related together. It’s most probably not 100% correct, but it’s a base for further research.
Software engineer type development
Everything changes. Your developer type will evolve. Something obvious and natural last year can became silly tomorrow. You will always have your main type – that will never change, because it’s embedded into your personality. In addition you will adapt some characteristics from other types, because in current context they are best fit.
“Special forces” can be also “pragmatic”, but will always sleep with open eyes 😉