Breadth of knowledge vs depth of knowledge
I ended my previous story “Becoming a Software Developer at 50?” with the following:
I may not be the whiz kid that knows the latest technology, but I have more breadth of experience and, I hope, more wisdom.
As I venture back into software development, I ask myself the question: “is it better for this old monkey to be a generalist or a specialist”. I am pretty convinced that I am not the only one asking the question, especially if you are a young Padawan.
Is it better to have breadth of knowledge or depth of knowledge? Tough question with no clear cut answer.
Let’s explore what this means.
Breadth vs depth
There is plenty of literature on this subject and there is one picture that summarizes breadth vs depth. I did not invent this. This picture is inspired by available literature.
Breadth is about the span of topics in which you have some level of knowledge. Depth is about knowing everything there is to know about one specific topic.
The T shape on the right is grossly exaggerated. No one is really only versed in one single topic. Everyone graduates from High School with a basic breadth of knowledge. Wide but somewhat shallow. That could be represented by the back horizontal block in the picture. I personally think that we all are of the shape on the left with some topics much deeper than others.
Depth and breadth are both relative to the specific context in which you evolve. My profile, for one, as a software engineer with an MBA, would look like the figure below:
It’s obvious that a lawyer would have a deeper expertise in law and a physician would have a deep expertise in health sciences.
But if you zoom in on my IT expertise, relative to other people in IT, then my profile would look like this where I am stronger in business analysis then other IT functions.
And, for example, I could zoom in even further into software development and explode my expertise into programming languages, frameworks, operating systems, etc. And then explode programming languages into C++, C#, Javascript, Python, COBOL, etc. (COBOL? Yes, young Padawan, it’s a language. Google it!).
By now, you should understand the gist of breadth and depth.
So should I be a generalist or a specialist? Too early to answer as we need to explore more variables or dimensions.
Introducing verticals
The next variable or dimension to consider is what business people refer to as “verticals”. And, since you are a smart Padawan, you probably already guessed that there are also “horizontals”. Let’s put this into a picture
“Verticals” are markets where an organization’s products and services serve the needs of a specific customer group. “Horizontals” are the broad services/products that can cater to many markets. This add another dimension to being a generalist versus a specialist.
One can work in IT for any verticals even if specialized in one IT area. A good example is being specialized in ERP systems like SAP. ERPs are used in all large companies, regardless of their vertical. Users of ERP systems usually do not understand much about how to configure ERPs but they usually know their business and what it takes to be effective in their verticals. Understanding the vertical in which a business operates can become very useful to an ERP specialist and it will help him/her understand what the user needs and how the user thinks.
My vertical is Power and Gas Utilities. This is where I spent most of my career. I am specialized in the smart power grid technologies, meaning computer systems to help utilities manage the power grid and keep the lights on.
I guess that makes me quite a specialist, in my current consultant job and that’s what created value for my services, as long as there is demand for my expertise.
So, should you be a specialist or a generalist?
No one can be a true generalist. There are just way too many domains of expertise and too many job profiles that one would need to master so you need to specialize into some domains. And that’s normal since everyone has personal interest whether it is art, science, politics, sports and others.
So here’s one key ingredient to answer the above question: personal interest.
In my previous article, I mentioned the importance of being driven by passion. Personal interest will lead you to specialize in the domain for which you will develop a passion for.
I never planned to be the consultant that I am today in the sense that I never sat down at 18 and said “ I will be a Smart Grid Technologies consultant by the time I am 50”. I was interested by computers, so I went into computer engineering. My first career opportunity out of university led me to develop software for the utilities market. Then a management role sparked my interest in management and I did a MBA, only to realize many years later than management was no longer a strong interest for me. A side hustle of developing a web application for one of my hobbies, re-ignited an interest in software development. Were all these changes in interests and, hence, changes in my specialization just wastes of time? Of course not. They just added breadth of knowledge. I will become a software developer with a background in management, business analysis, power utilities, real-time control systems, legal, finance, etc. Maybe my profile will not be of interest to an employer seeking someone with a deep level of knowledge and experience in the latest Angular framework but that’s ok as someone with a strong interest Angular should get the job.
Follow your interests and your passions young Padawan. Do not discount past experiences that are no longer in line with your current interests, they just add breadth to your profile.