From the age of 11 one thing that was absolutely certain to me was that I was going to be a programmer. That was the age when I got my Commodore 64 and started to program in BASIC. I loved programming so much, that after a while I was programming more than I was playing games. There is something so sweet and pure about programming that nothing else in real life really can match it. Even with the bugs, time constraints and frustrations a modern programmer deals with, programming is still a sweet deal!
I went to engineering college to get my CS degree, and then a couple of years at the local Bergen University to add some deeper understanding to my curriculum. When I got sick of being a student I got a job.
Over the course of my career, I have spent most of it as a programmer. First 2 years being the only technical guy at a web-design company doing everything from running servers to making their publishing system (in Perl) and doing customer support.
Then I started a company with some friends to make an MMO. We spent 9 years making an MMO called Darkfall, learning the hard way what it actually takes to start from scratch and release an MMO. It was bloody hard work, but I learned a lot.
4 years ago I started as a consultant at a pretty big local consulting company, and then last year I was offered the opportunity to build up a new IT consulting company (Sonat Consulting AS) from scratch with some great friends and colleagues.
So now what? I will be turning 40 next year. I have been thinking about what I have accomplished so far and where I should be going from here.
Most programmers peak in their thirties. This is when you still have the drive to keep learning, and are old enough to start getting the experience to give you the intuition for solutions and workarounds that will keep you afloat the rest of your career if you cultivate it.
Some programmers keep that drive into their 40s, either because they still have the passion for programming or they still have disposable free time.
But at some point almost all programmers peak, lose their drive, and start looking at other options. What are the career advancement options for programmers? The traditional school of thought is that programmers can advance to project managers or architects. I believe there is a third option that could supercharge your career.
The third option is adding business process improvement (BPI) skills to your toolbox.
As a programmer you implement new systems and upgrade existing solutions. Part of this involves collaborating with domain experts, product owners and hopefully future users. As you gain experience you find it easier to see your changes in a larger context, and that makes you better at finding good solutions. You learn that having a clue how your part fits into the whole helps a lot.
What I am suggesting is taking the broad picture and zooming out even more. You need to realize that the system you are working on is part of, or is supporting, a business process. Using BPI methodologies like Lean or Six Sigma, you will be able to analyze a business process and see if there is a way to improve it, and then build a system that integrates better with it.
A lot of organizations will hire a BPI expert to optimize and improve manufacturing and/or throughput for the company, and then they get the IT-guys/gals to make or improve systems to support the new processes, but rarely are these two combined.
Adding business process skills to a programmers toolbox isn’t a new or radical idea, but most often when it happens it isn’t a career choice. It just happens, and your employer and customers are all the happier for it. What I want to do is to recognize it as a viable career choice, and one that companies and organizations should be on the lookout for.
IT consultants with this extra set of tools in their toolbox would be very valuable to any company, and could demand a higher salary. Just by having the dynamic of being able to look at a system from different perspectives will make you a better developer wether you get to apply your BPI-skillset directly or not.
Armed with methodologies like Lean, Kanban, Six Sigma, and others, plus an overview of the processes you are working with, and a humble but persistent effort towards improving both processes and systems, you will gain trust and respect. If you are doing it right you will be included in planning meetings where your opinion is highly regarded, and you will be able to effect greater positive changes to the organisation than as a pure developer.
Also, this is a skillset a company would be less likely to outsource, as these would be the kind of people you would want overseeing an outsourced project.
You might be thinking: “Why the heck should I learn business process skills, I just want to code stuff!”. That is fine. I’ll go top up on my BPI knowledge while you peak, become obsolete, and get outsourced 😉