Nov 29, 2011

Two types of developers

I divide all developers into two types: team developers and solo developers. Any developer can be good or bad but these two types are fundamentally different in their thinking and approaches to work. It is important to know with whom you work and adjust accordingly.

Team developers

Team developers work well in a team. They need other players. They can work on their assigned tasks but only if those tasks are a part of a whole. Team developers do not like to assume a complete responsibility on the project.

Typically team developers usually communicate well with others, they like to communicate and socialize. They can do the assigned work of any kind but they generally do not have or strive to leran new stuff. They are not entrepreneurs at heart. However they work great in the team. So they are especially useful in big projects when management needs "resources" to fulfil the task.

Team developers can become good team leaders because they understand the environment they work in.

Solo developers

Solo developers prefer to work alone. They can work in a team but they prefer to get a task, think on its implementation alone, implement it alone, write documentation and present the result to the management as a completed thing. Charles from The Parable of Two Programmers is a typical solo developer.

Solo developers are ready to assume responsibilities. They become good project leaders because they know what to do and how to drive the project to success.

Solo developers can be good at socialising but often they do not see a need in it. Some even hate socialising. They hunt task after task, they get pleasure and enjoyment in solving issues and gaining knowledge. Many of them are “workaholics”. They make successful freelancers. They can start their own business, where they become bosses, who continue to work “solo”.

When solo developers are forced to work in a team, they can perform well as long as nobody doubts their ways to solve the task. As soon as the task is solved, it is done for the solo developer. It is time to move onto another task. Given the fact, that solo developers work alone, they have to learn a lot, think a lot and do a lot. So their solutions are usually good, and solo developers know it. When somebody doubts their ways or competence, it is a mortal insult. Those developers are very touchy about their professional competence. But they are usually unlucky in getting to existing big companies. Sooner or later they start their own.

How to deal with different developer types?

When you have team developers, you have to watch that they continue their education. That's the main issue with them: they rarely like to learn. You have to push them, if you want your business to go on.

If you work with a solo developer, try to give him an individual task and make him work independently from others. If you have no choice but to include such a developer in the team, make sure that the team leader understands that he now has a solo developer and his feelings are different. Solo developers are great assets but they are easy to loose.

What to do if you are a solo developer in the team?

Keep your emotions under control. Listen to what people tell to you. They do not want to hurt you, they want the best for the project. Just listen and see if you can learn something from it. As usual.

Be straight and honest. If somebody wants you to socialize but you do not like it, just say that you rather not. Tell that you do not really like socialising. People might understand that and appreciate your honesty.

When you work with other people, realize that people are different. There are some more educated and some less educated. Be patient and help them to learn if you can. Avoid conflicts.

Conclusion

It is quite important to realize that there are different types of people. I saw many teams and from time to time I see conflicts or misunderstanding happen because people do not realize that they belong to two groups. Watch it next time when you have a new colleague and adapt accordingly.