7 mental types of software developer

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
– Producer
– Code nazi
– Servant
– Pragmatic
– Celebrity

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.

Beta tester

New NuGet package released? New fancy NoSQL database? New javascript framework? It’s already in PRODUCTION environment. “Beta Tester” type handles that with perfection. In seconds whole solution is updated with pre-releases 🙂 Good type for prototype programming. Bad for maintenance 🙂

Special forces

“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.

Producer

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.

Code nazi

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.

Servant

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.

Pragmatic

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 🙂

Celebrity

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 😉

Follow me:

3 thoughts on “7 mental types of software developer

  1. Pingback: dotnetomaniak.pl

  2. Zack

    Ha! Great read. Interesting to think about when considering ‘roles’ and balance when building a team.

    Reply
    1. Pawel Post author

      I have in plans more posts about building software teams. Stay tuned 🙂

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *