Evolving from a software engineer to ... Part II. Counting options.
I the previous blog I wrote what questions and concerns came to my mind when I was lost in thoughts about future career plans, appealing positions, and challenging professional adventures. In this blog I'll try to list some options I've found beyond the pure coding positions. I count here what directions we can trace when coding is not enough. Confession: I don't say that such a phase is in a higher level on professional evolution but when it's happened (for a variety of reasons) you can't analyze how you "sank" into a situation when coding is boring, instead you're looking for options to get further. For those who want to remain in the coding area and go the path I mentioned in the last blog (developer-architect-CTO) I hope every position on the right to his current is known. So the only uncertainty for beginning developers can hide behind a question what a CTO does. These folks I point to a great blog on that by Skip.
Back to the list of options for others who's thinking of leaving the comfort zone of coding. The list is far from being complete, of course, but without a list it's impossible to prioritize, exclude, and project. So let's start (worth or reminding: we're off the purely technical thread here already).
- Project manager - a guy who manages. Shocked? Well, he manages a project (not people, or a budget, or a product). Checks that resources that given him in charge are sufficient, alerts higher management to shortages of the former ones or sliding on the schedule, removes roadblocks on the team's way, leads, motivates, cares about, and controls the team.
Challenges: regardless of the project or the team size projects (in the software industry) rather fail than succeed. Planning and successfully compelling a project on time is not an easy task.
Advantages: marching in step with project success and complexity one can gain and polish organizational and managerial skills. It's a management position and a bright experience may spring-board a good project manager to next levels on the career ladder.
Disadvantages: the duties are confined by management only (no professional growth), the subject of managing is projects (and hence project's resources, not people that have their own boss), often an always-under-pressure working mode.
- Product manager/Product definition*. Obviously, somebody who manages a product. The best description of the duties and requirements I've seen is written by Ken Norton. The range of duties and responsibilities may vary depending on company size and structure but this time your baby is a product (not people or a program). Regardless of the company size the position implies high responsibility and influence.
*In my experience product definition team members were subordinates of a product (or solution) manager. I'd say product definition team's member is a journeyman of his product manager. Usually they did more focused work for the product manager where relationships between them were akin ones between developers and a team lead in R&D.
Challenges: More than enough. The product is your baby and you define its fate. For all goods and bads happening with the product you're the address for praises and complains. You'll have to know and believe what the product should be and steer it through attacks of marketing, sales, investors, disappointed customers, happy customers, programmers, and so on.
Advantages: A highly influential position with concrete, tangible results. A mixture of skills and knowledge required to take such a position and being grown during the job is extensive indeed: business sight, planning, researching, strategic vision, still very technically-minded orientation, negotiation skills, leadership.
Disadvantages: Since the role is very influential it comes with lots of responsibility and hence potentially stressful. For "generals" willing to command all the branches of army (read: marketing, sales, operations, R&D, etc.) a product manager may look too "shallow" . For these guys the only way is one level up - to the CEO.
- Consulting. You work for a company that "sells" you to teams either developing custom projects or customizing and configuring integration and application solutions. Typically involves customer interactions and traveling.
Challenges. Even though you work for the company you have to be competitive to cope with the tasks. At the same time you're a solder of the army conquering billable hours (although there are some exceptions) of the client and you'll be lacking time for studying and preparation.
Advantages: Shifting from development to consulting is like changing profession. You'll get exposure to customers, most likely will get many opportunities to grow soft skills, and, of course, you're supposed to earn much more money.
Disadvantages: Risk to be outdated with the knowledge, possibly exorbitant travels, if technically speaking the topic is not challenging you may miss your development time very soon.
- Independent consultant/freelancer. Quite similar to the last one but not fully. Independent positions always get paid better and various risks involved with the independence are higher too. The shift from an in-staff position to a freelancer always leaves what you're doing for living the same - otherwise who will pay you for something where you're not an expert?
Challenges: Be on the edge - whatever you're paid for today may not bring the same income tomorrow. Now it's up to you to invest in new things and take care of your learning plan. Customer relationships may be another challenge (depending on whether you did it in the past or not) - you have to hunt for new projects and customers.
Advantages: You own you! With all ensuing consequences from here: higher income (even if not via a higher wage but absolutely via less taxes), flexible working mode, flexible locations, selectivity in choosing deals if you break out the mediocre zone.
Disadvantages: You own you! Sitting on bench now eats money from your pocket. Lacking time for studying new things may have a very detrimental effect in the future for new projects or high rate. Living in an always-hunting-mode can be stressful.
- Business development/marketing/sales. That's quite a radical shift from the R&D branch. Positions here deal with building value propositions, planning partner alliances, positioning products or services from a business perspective, and to pave the way for successful sales.
Challenges. You hardly have a clue on the matter if you've been coding all your life. I deliberately put this position to the list simply to identify the business direction and meant to unite here the "fluffy" group of marketing, bizdev, and sales roles (as they look from behind a debugger) to show that this leap is possible although a very long one.
Advantages. If you hate coding that much that a role of a CEO, a CIO, or a business consultant keeps coming to your dream you should start meeting the business area from one of these roles. If your technical background overweights the lack of experience in business then you may find a path to jump on this train.
Disadvantages. Even with 10 years of coding experience and taking positions of chief architects you start this way from scratch. You learn and earn your experience from level zero. Also your dreams may turn out to be illusions and from inside the business tasks can be worse than the used to seem from outside.
I tried to highlight major directions for career change. My experience doesn't allow me to claim any finality on the options but I hope the list is sufficient to brainstorm various trajectories for transcending the technical land. You're welcome to throw other destination points on the map and in the next blog I'll write about building a route minimizing risks.
Update: Building the path is the third blog in the series.

Roman,
I had to make this decision for myself about 8 years ago. For me, I went from software engineer/lead architect/development manager/project manager/CTO. I chose this path because I was fascinated with people/projects/processes as much as technology and wanted to get more involved in understanding how to manage those areas. Because I had the technology background, I believe it gave me the edge to talk to other engineers in their language as well as hold them better accountable because I knew what they were talking about.
I moved to Executive Management because I wanted to take the next step beyond engineering projects and that was to focus on the longer-term technical strategy for the organization. Though I sometimes miss the days of being in the daily operational trenches in both management and technical roles, I find that I can use the knowledge and skills that I gained and apply them to a broader audience across the entire organization.
I would recommend to anybody thinking about their next career move to ask themselves this question: "If I never wrote another line of code, would that be ok?" If the answer is "no", I would choose the technical path (software engineer/architect/consulting). Otherwise, the other options would be open to you. Once you pick them, there's no turning back usually as you won't have time to stay current on coding skills (unless you do it outside of work).
Posted by: Skip | September 06, 2006 at 12:23 PM
I can say a few words from my experience - I moved from R&D engineer to marketing/Sales/Account Manager. There is big change in the roles when one shifts from developer to a salesman. As a salesman or as a marketer, one has to learn from basics - and thats the challenge. Also its exciting to know from the business point of view - which projects are worth investing in.
If you like exploring new businesses, or like meeting people and building relationships, then go the Sales/Marketing/BDM path.
My wife on the otherhand did her MBA and moved to Project Management/program management. Here again one loses touch with coding & hardcore technology - but one knows how to ensure that a project is successful.
I always say - People remember the architect but not the worker - Look at all Iconic buildings, people remember the archtect who built it, but people don't remember or care about who financed it or who laid the bricks. The glory belongs to the acrhitect. But money belongs to the investor or promoter.
The same goes to Film stars who gets all the glory. But most of the money is made by the producers or the corporates & not the actors.
So if you want glory more than money - be in the technial line. But if you want money - shift to the "dark side" of management :)
Posted by: Arun Kottolli | September 13, 2006 at 12:55 PM
Hey,
Just discovered your blog through the comment you left over Innovation Zen. Plenty of interesting material, keep it up.
By the way I saw you are planning to take an MBA. Since we were discussing how to invest one's time into learning activities I would like to say that in my opinion a MBA is not worth it, unless you meet some pre-requisities. I will send you an email about it and we can further discuss the matter.
Posted by: Innovation Zen | September 16, 2006 at 03:36 PM
Would be happy to continue the discussion on how to invest into yourself. I believe there is no right and wrong answer, each one's circumstances are different and even in quite the same situation there is a factor of personal preferences. I published my thouhts on why I decided to go for a formal way of education of business here: http://roman-rytov.typepad.com/miles/2006/08/im_starting_mba.html
Posted by: Roman Rytov | September 19, 2006 at 07:22 PM