5 types of software developers

The following text describes the possible evolution of the skills and awareness level of a software developer through his career. Instead of thinking in a linear fashion and taking into consideration only years of experience and past roles, I prefer to focus the level of awareness gained and see each step as a little quantum leap forward. First your awareness only reaches to the end of your limbs, then jumps to concepts, then to business, and eventually it jumps entirely outside of you to reality, and then.. I can’t describe the last step you’ll have to read it for yourself.

The steps are

  1. Tool Oriented
  2. Conceptual Mind
  3. The big picture
  4. The realist
  5. The visionary

I encourage everybody to read this text till they reach the level they idenfity with most and read the step after that to get an idea of where they could go next. But don’t read many steps beyond, it would be a waste of time really. Not that you can’t reach it, just that trying to go too fast will sabotage your evolution as a developer. Each step has to be lived through thoroughly so that you are RIPE to move to the next one.

1. tool / language / stack oriented
This is a natural first step into an unknown universe. It doesn’t mean all software developers evolve beyond this state. It is however very common for a human being when he enters into a new universe; because it is easy to compare software programming with a universe; that he identifies temporarily with his first grasp of that universe. In this case, he’ll do his first trials using tools. It is akin of someone who will end up loving a particular brand of shoes after hiking his first mountain. It isn’t so much the shoes that he loves, but the experience of conquering a mountain. Same can be said about programming and the tools you’ll use to get a first grasp upon the techniques necessary to achieve something.

You can easily recognize someone like that by how adamant they are about their particular programming language. PHP is everything! Java is the single best language out there. Whilst it is a necessary step, it is a limited state of consciousness. The person in question in his quest to get recognition might become master at complicated techniques to impress his peers; without much consideration to how valuable they are at achieving a business objective. Developers who dwell here too long become very good technicians who, in certain circumstances can be absolutely invaluable; however that setting isn’t necessarily happening regularly in daily life. I’ve seen some developers who got so good at a language (say javascript) that they used programming tricks a few lines long that took a few hours for other programmers to figure out. Which in the mind of many is very cool; but is it really?

The business goal becomes a supposition in this case, it is supposed that if a programmer is better at using a particular tool, or is using the best tool; he must be the best are reaching business objectives. Do you think it is true?

If we take a more tangible parallel, while relating to the level of consciousness, we can think of a caveman with his rock hammer. He might have made his hammer himself, out of bare rock. And he loves is hammer, and he thinks it is the best hammer in the world. His consciousness therefore only extends one level beyond his own body, to whatever tool his hands manage to touch. It doesn’t travel beyond that point. This is the exact situation that the tool oriented developer expresses; only his tool is less tangible.

They will try to convince you their language / stack / tools are better than yours. They will be very adamant about it. They might snob you over the fact that you do not agree with them; or even better they’ll argue over each other based which tool/stack/language is better.

2. conceptual mind
The conceptual mind is very fascinating; it consists of awareness which has moved beyond the reach of a body’s senses, and tools, almost into the outside world but without taking the final leap. Most concepts are learned from reading books and give ou you a sense of power; a sense of mastery of the world. Conceptual developers will be able to list good practices, design patterns, and also things to avoid: anti patterns. They exist in the world of the righteous, who has mastered something beyond the physical reality and has had meta thoughts. In their ideal world, the conceptuals would never have to deal with dirty reality; because reality often will not bend to concepts, and hence feel more secure arguing about their perception of a problem than they are about discussing it’s actual details.

A good conceptual mind will manage to discuss the solution to a problem without even looking at the problem; but rather by putting the problem into a problem ‘class’. By extracting meta information from the problem’s context. That’s how superior they can be.

Conceptual minded developers carry around virtual books representing the best practices; they can lecture less experienced individuals easily and baffle them with their higher intelligence. Their higher understanding. They will often aspire to become evangelists, and software architects; they will excel at defending how a particular concept isn’t properly implemented by XYZ and how it should be.

3. The big picture
Once an individual’s consciousness ventures beyond concepts, without quite yet truly stepping into the outside world; it will go and look at money. How money flows, what attracts dollars to flow through a company and into their pockets. He will be curious to understand what value a certain piece of software he has written is really bringing; he’ll want to put $$ figures on his produce. And from those figures, start being curious as to how effectively his work is creating value; and start questioning his past choices in consideration. He’ll start questioning his choice of tools, stack, concepts, libraries. He’ll think about the long term viability of his code; what I am doing right now, how long will it last? This is particularly important shift in the programmer’s career; akin to taking the red pill in the matrix. Before this moment, you could associate your conduct, choices, behavior to a piece of technology, or a few concepts and feel valuable. After that, those past reference point loose quite a bit of importance and you start thinking of what your code, your time is producing in terms of value; short and long term for a company. Mind you, it is important not to jump to this point right away, every step in the evolution of a developers consciousness is important and valuable. Each has it’s use, its intrinsic value. You can evolve to become a consultant at any step; or stay an employee. The key diffentiator will be how many intermediaries will be required to support you in your job. As awareness grows, you’ll need less players around you and will be able to be closer to the market.

At this step of awareness you are preparing yourself to be a PRODUCT OWNER, or if you properly mastered the two previous states; a CTO. In fact at this point you can be a product owner, but not quite yet a CTO.

Big picture oriented people will question many things, and will most likely avoid arguments over concepts and tools/languages used. They will focus on what the end goal is and try to find appropriate paths to reach them, make sure they are never lost; always kept in sight. Am I building value? Am creating software that will be easily maintained? how much will the entire effort cost?

4. The realist
This is a particularly rare state of consciousness in modern times. It requires complete mastery of the three previous states; AND the ability to abandon all the above and sit with a problem and understand it completely. The realist has the ability to take his entire awareness and direct it at a particular situation and watch it closely until the solution is clear; in a completely separate gesture from building the solution and completely isolated from his concepts, programming tools, and business interest. Ideally also from any office politics that can linger. Of all the abilities described above this is by far the most arduous; because it is so easy to want to throw past experiences at a problem before getting the time to really understand it. Each situation is unique, some (because of business importance) require more time and attention. The person who has mastered this skill, and please note that in this entire text this is the first true mastery, will become your most valuable ally in success. However, please also note that he will often need a lot of finess to get his observations approved as less 1% of people will go through the effort of properly recognizing a situation with proper depth. Everybody else will want to throw whatever they master at the situation first. A realist will have to have a thick skin, or a really good sense of humor. The less you know, the easier it is to feel threatened and so people stuck at step 1 or 2, will easily be triggered in their insecurities by a realist. They will even insist on being heard, or they will want the final solution to a problem to have at least one element from their toolbox involved. When you get to this point, it becomes politics and has nothing to do with reality. You can call it respect; it really isn’t.

A realist will often stand alone, will not come to conclusions right away. He will not talk about tools, or concepts, or business objectives until he has first completely understood the situation because during his assessment he knows that even obvious projections can become false and become a waste of time and energy. A realist will also be one of the last to offer a solution AND give the most cost effective solution (once all elements are considered). It is possible that a realist won’t put in the lowest price tag at first, but at the end of the day, his price will be significantly lower than all others. There people, again are extremely rare. They become great CTOs. Powerful allies in the building of successful companies.

5. The visionary
If the past category is extremely rare, this category is, put simply, an exception. They are often mis-understood because nobody can follow their train of thoughts. Their particular ability lies one step further than the realist; it can be described as follows: a complete forgetting of self. In the process of understanding a situation, the visionary will put his ego aside completely and create space for the situation to unfold itself into. You see, there is awareness in everything in existence; from rocks, to trees, to animals, to people, even phenomenons, and mecanisms, and man-made things. Each of these have a desire to evolve, because that is an intrinsic quality of awareness. The visionary has the ability to create space around something, enough space, and pure (devoid of his ego, knowledge, past experiences). In that space the problem or situation will unfold and reveal to the visionary what the next step of evolution should be and the visionary will have the intelligence to pick up on it and carry it through. You cannot be a visionary without being a realist first; it isn’t possible. You also cannot be a visionary without first becoming spiritual (either directly or indirectly) and having an immense love of existence, truth, reality. In the space you create around a situation love will be needed for the unfolding to happen in the direction which best serves both interest.

Honestly, you can’t. Well, you could identify that sometimes they blow your mind away, and sometimes you just can’t follow where they are going. You can recognize them easily years later if you pay great enough attention; a vision only unfolds in due time. They are hard to understand. You can recognize a visionary by his un-employability; by the fact he has 0 interest in office politics, by the fact that he’ll skip 95% of meetings just because, and will show up in your office one day with a solution that solves many problems at once. Generally those solutions aren’t easy to implement. But if you dare, and are able to nurture the result long enough, they care worth it.

End note
So there you have it. There might be more steps to this scale; I can only describe the ones that I know and have understood. This is therefore where I am. Feel free to comment, question, bash. I’m used to people bashing, so do it. I encourage you. But I might delete it if it holds no value for others.

Thanks for reading! šŸ˜‰

[picture credits -> https://cdn.geekwire.com/wp-content/uploads/2012/02/nerd-bigstock_Extreme_Computer_Nerd_1520708.jpg ]

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.