I was just walking in the hallway to my office when I suddenly stumbled upon remnants of thoughts of the Boston Matrix. As I try to recall what are there in this matrix, I had a bizarre idea to apply it to my skills portfolio, you know, as a software engineer. Skills here can mean anything relevant to your job, e.g. software practices, languages, framework, domain, etc.
Year is coming to an end; so I thought it’ll be good to stock-take where I am and where I want to be.
Just a quick primer to those who aren’t aware of the Boston Matrix, it’s basically a matrix devised by folks in Boston Consulting Group to help their clients manage their product portfolio. It has 2 axes, market share and growth potential. A 2 x 2 matrix is then formed from the low and high combinations from each axis. Something like the below:
Managing your career is akin to managing companies. The trick is, instead of a portfolio of product, you have a portfolio of skills.
So, here’s my attempt of analysing my current skills portfolio:
As you might have guessed, I added a twist to the vanilla matrix; that is, by representing the level of my proficiency (EDIT: self-proclaimed proficiency) by the size of the circle.
Each category in the matrix comes with recommended actions. To sum up:
- Dog: Chances are, these technologies are either dying or niche. If it’s the latter, some people argue investing your time in this will be worth it. This is because though limited, jobs in this area will pay quite well. Nevertheless, I’m on the other camp that it’s better to invest your time on some technologies which are more fungible. So, my suggestion for this area is to retain only if it’s necessary for your current work.
- Question Mark: It’s obvious that you should spend your weekend honing these skills. Some of these might become a hit one day and when they do and you’re prepared, you’ll be better positioned to reap the benefits.
- Cash Cow: The biggest mistake people make is to lose focus on this area. Always remember that skills in this category occupy a giant share of the market. They are still gonna be there in the long run (or at least, quite a while). So, ensure you stay sharp in this area instead of just dropping it totally to pursue the hit-or-miss Question Marks.
- Star: This technology should ideally what you’re using day-in-day-out. Nevertheless, not all of us will have that very luxury. Most often, we’re stuck with Cash Cow technologies for our office work. But fret not! Here’s a challenge, why not try to propose the adoption of these technologies in the organisation you’re working in? It’s a win-win. You develop yourself to become more marketable and the company is using technologies with highest net gain? “No, dude! It’s not simple,” you might counter. “There are budget and timeline constraints. I can’t just do whatever I want.” Oh well, in that case, my only advice is to spend as much of your free time doing pet projects/ contributing to open source in this area.
From the above recommendations, I derive the below “target state” matrix I want to be in:
You might notice that in the above matrix, I don’t have any mention of the likes of Big Data and Native Mobile Development. The reason is simple: I need to decide what I should focus on. As Kathy Sierra mentioned in her book Badass, too many half-assed skills will get you stuck in the “suck zone”.
Finally, one caveat: the assessment of where each item lies in the matrix is purely based on my opinion. The matrix is a snapshot and quite frankly might depend a lot on where you are as well. So, please treat it lightly. That aside, I encourage you to do the same evaluation/ reflection for your own personal use or even to share with others. Regardless of which purpose, I hope the exercise will be beneficial.
Keep learning! :+1:
Q & A:
- Why do you think Functional Programming is a Question Mark? Isn’t it Star?
Look buddy, I know you’re an FP fanatic. You dream about monads lifted in the sky everyday, but be honest, the entire source code population is still dominated by OO paradigms. FP is cool. I had reservations in the past. Sometimes I write functional codes which I myself find it hard to understand and when debugging gives you stacks of Anon1.apply, you kinda wish you’re in the old procedural/ OO land. That being said, with more and more pressure on parallelisation and mainstream OO language like Java slowly giving you functional support, I sure hope FP will be a thing in the future.
- Why do you think Agile is a Cash Cow? Isn’t it a Star?
Watch this Erik Meijer video and you will agree with me. It’s still a Cash Cow because if you put the keyword Agile in your resume, lots of companies will still be impressed and willing to hire you. Sooner or later, though, people will realize it’s just a marketing gimmick and all the hype will die down.
- Why is Algorithm a Question Mark? It should be a Dog! Dude, do you support interviews which ask silly algorithm puzzles?? I judged you, man!
Whoa, whoa slow down there. Just like you, I don’t believe that memorising how to implement AVL tree from scratch or implementing the partition method of QuickSort are good indicators of a Software Engineer’s skills. However, face it, big tech companies like Google and Facebook rely heavily on this aspect to determine “smartness”. Moreover, it seems that this method of hiring is serving them quite well. Therefore, unless there’s a revolutionary company which somehow overtakes these tech gorillas and it somehow abolishes the notion asking algorithm problems in interviews, I still feel there’s a merit in investing your time to polish your skills in this area. My two-cents are that since more and more tech startups are going to imitate Google and Facebook’s hiring model, you better be prepared.