Managing Technology, People or Business?
Since graduating from university I’ve worked steadily for 5 years in various programming roles. I’ve come to the conclusion that I’ve reached a crossroad in my programming life. While I have plenty to learn in my current position (more than could possibly fit into my short Homo sapien lifetime), there seems to be some new options presenting themselves to me. It’s the same crossroad that all programmers reach at some stage in their life, and quite a few follow the default path without even realising they have a choice. After investigating the crossroad ahead I see 3 paths leading off into my future. These include managing technology, managing people or managing business.
Managing Technology
This is the default path for programmers to follow. If you haven’t realised you’re at this crossroad (and haven’t been flung along another path by someone else) then chances are you’re on this path. The reason it’s the default path is because it has its roots in the generic path that most programmers take straight out of university/school. We start out by managing bits of technology, from code to databases to websites.
Our main aim is to make technology do our biding. You could possibly look at it in this way: You start out fresh from school and begin ‘managing’ functions. You write little apps that do simple tasks, you then move up to creating classes followed by entire sub-systems and eventually end up writing entires game engines or ‘enterprise applications’ as the business world calls them. This path can ultimately lead to a technical director of a game or company where you make decisions about which tech is best for a particular need/project. If you were coding in your basement since you were 5 then chances are this may be the best role for you. John Carmack is a good example of someone who manages technology.
Managing People
This is the second most likely path that programmers take. The cold hard truth is that a lot of the time, people move into these roles as they aren’t very good at the managing of technology part. This, unfortunately, means that a lot of senior and lead programmers out there are only in the position as they couldn’t hack it as a ‘real programmer’. Thankfully though, there are plenty of people that move up into these roles as they actually have an affinity at dealing with people.
The main aim of this role is bringing the best out of people, making sure that teams work well together and that your programmers can be as productive as possible. I’ve found some great inspiration about how this should be done from books like “Peopleware” and from some of the managers I’ve worked with over the past five years. This role is different to a project manager (who managers an entire project rather than just the people) as it’s more technical. Lead programmers organise who will be best suited to coding what, and in essence make sure the coders below them can do the best job of managing technology possible.
Managing Business
Some people just aren’t happy working for someone else, and they go on to become entrepreneurs and start their own business (or just spend their entire careers complaining about the fact they work for someone else). It’s true that in this position, for a start-up at least, you get to have your hand in both of the other groups. However for most businesses, after a certain point it’s not feasible for the founders to also be in the other two groups. You may be able to choose one group and stave off reality for a few more years, but eventually if you’re successful you’ll need to move away from the micromanagement and start looking at things from a higher-level. Bill gates is a good example of this, he was both Director and Chief Software Architect of Microsoft Software Architect at the same time. However after a while he decided he wanted to spend more time coding and had to give up some of the ‘business managing’ to move into the other group.
You’re main goal in this group is making money. It’s the hardest work, gives you the most options and even has a small chance of making you quite rich.
Conclusion (What About Me?)
So what road will I take? To be honest, I’m unsure at this stage. While I like technology, unfortunately I didn’t start coding when I was 5. Some will say that means I’m not a real programmer, but I’d rather believe that it means I can actually communicate with other humans without the use of I/O devices, other than the acoustic resonance generator and receptors God made us.
During my time as a programmer I’ve been asked to start businesses with a number of people, and so far none have made me want to ‘quit my day job’. That could all change in the future and I’m not ruling it out, however for the time being, I’m going to continue on my current path (managing technology) and see what opportunities come up. The first step I see is acknowledging that the crossroad is there and I that have the choice about which to go along. I’d be interested to hear from others whether they think they’ve reached this, already chosen one, or think I’m full of crap and should spend more time coding and less blogging.