views:

3605

answers:

11

It's around the time of my annual career review and each year I get asked what position I would like to get: Management? Architecture? Technical Expert?

So the big question here is what is the future for technical oriented people? I mean real engineers that understand 'engineering' as their life occupation.

Are you a 'Dilbert' like nerd? Which career path have you taken and what are the pro and cons of your path?

+1  A: 

I think you're supposed to answer that one, not us ;-). Given an unsound economy I'd expect the most comfortable positions to be maintenance programming and middle management, and people who can apply themselves to a wide variety of tech (after all, your boss might switch everything to Linux/MySQL to "save money" tomorrow). But then, who wants stability if it isn't fun?

Graham Lee
Sure - I have to decide for myself. Just wanted to get some hints from people that have decided for the one or other paths. I have updated my question to be more concise.
Yaba
A: 

I wrote a blog post about exactly this subject a little while ago: http://harriyott.com/2006/02/12-career-moves-for-developers-without.aspx. I identified 12 possibilities of future careers.

harriyott
A: 

I suggest you read "My job went to India" by Chad Fowler.

Nicolai Reuschling
+2  A: 

Sounds like you have to decide if you either put focus on learning everything a little bit to get the bigger picture (Architecture) or put focus on a certain area (Technical Expert).

Either way, the future is working on yourself and get better with the things you do. The future of an engineer is learning how things can get better and how you yourself can get the things better.

Ansgar
+5  A: 

Your choices are really up to you. I work for a big company and we have plenty of experience with these situations. Basically you have two 'paths' you could take without making any changes to your career.

  • You could become a 'manager'. I.e. you start by being a senior developer, then a team leader, then a project manager assistant, picking up the experience along the way. It does not mean that you don't get to be an engineer, but obviously you'll spend more time administrating things. I knew several people who turned down this path because they did not want to quit coding.

  • You could become an 'expert'. You get more and more technological prowess, you know more and more. Ultimately you become a guru who advice others, do code reviews and work on the 'crack teams' of experts if something has to be done really quick and really good. An variation on this is that you become an architect (System Architect or Database Architect) but that requires a certain frame of mind which not every one have. A downside of this path is that you never get that high up in the chain of command. But sometimes it's actually an upside from the personal point of view :)

There are other paths: you could become a resource manager (almost like switching from the field operative to an office paperwork duty).

You could also become a Analyst and start working with the clients to collect, analyse and process their requirements into the specifications for the development team. It is great fun but it requires an inclination to work with people a lot (and talk a lot I would say :).

Ilya Kochetov
+2  A: 

The old what you are good at and what you like to do should come into play here for what position you want. What is the structure where you work? Do they have Software Developer I, SD II, SD III, ... SD X? I imagine some might but it varies.

I can see a future of some technical oriented people being that they become consultants or teach various technical courses, e.g. J.P. Boodhoo does a Nothin' but .Net week long course where he shares his passion for what he does that is a rare sight among software engineers I've seen.

A lot of people would say that I'm a Dilbert nerd and I have seen many times where what is written in those comics is painfully close to the truth.

My career path hasn't been that long though I could go through the highlights and lowlights of it:

1997 - Graduate from University with a Bachelor of Mathematics degree with majors in Computer Science and Combinatorics & Optimization. That name alone usually gets a "What is that?" or the eyes roll as it seems like something hoity-toity.

1998 - Move to Seattle working for a dot-com doing web server development as a Software Design Engineer, under a NAFTA visa that gets switched to a H1-B the following year. The company was founded by some former Microsoft employees so the tools are all MS: MS-SQL Server, Visual Studio 6.0, IIS 3.0, Visual SourceSafe. Introduced to Hungarian notation that seems like a nice way to name some variables.

1999-2004 - Worked at the dot-com through the boom and the bust, where there was a web team formed instead of being just an engineer or two as well as the shrinkage down to being a couple of guys in the founder's basement working with some Russians on the web site code. Server code went from C/C++ ISAPI Extensions using a propietary mark-up language to ASP in VBScript to ASP.Net 1.1 in C#. The company had an IPO in Feb. 2000 and by August 2000 had laid off 2/3 of the staff. Watched the Space Needle fireworks when Y2K occured as the office was a block from the Needle. Also in 2000, got to go to LA for the Spring Internet World which was cool.

2004 - Move to a different company though still a dot-com that isn't profitable yet that is huge with over 60 people in IT alone. Much more formalized process though for the first few weeks, I never met my supervisor. I talked with the director of IT and co-workers for what to work on for that time, but I find it interesting to go so long before meeting a boss. Company restructures their IT and software development so I get moved around though I did like where I ended up. Still at a mostly Microsoft place where here I'm a front-end developer. Visa expired at the end of 2004 so I had to quit that job.... If I knew back in 1999 to start the green card process then, I might still be down in Seattle, but anyway...

2005 - In Calgary start working for an Application Service Provider doing location-based services. Still a small team of developers that I join in helping build their application to do the tracking and change device settings, GIS, etc. Title here was Senior Application Developer. This was all ASP.Net 2.0

2007 - Move on to a technology company where I'm in the IT department now being a web developer for the applications built internally or where we have to do customizations with the off-the-shelf still sometimes called "integration" though some code is VB6, some VBScript, some C#, some Javascript for that nice mix of almost everything is here. Company has been around for 20 years and is profitable for a couple of other differences between here and other workplaces.

Process and communication have been a couple of big things I've watched over my years working and seen some good ways to do things and some scary ways to do things. Gone from ISDN lines and 56K modems to T1 lines to DSL and cable modems for connectivity and browsers from Netscape 4 and IE 4 to IE 7 and Firefox 3. Seen IIS go from being traffic lights for managing to the spiffy MMC for IIS 7.0 now.

Design Patterns are likely the most awesome thing I have found over the years as I tend to be a hand coder for some things so I don't like having a Label1 for the ID on a Label as it is better to give it a more meaningful name.

At least that is the short version of my career as a Web Developer.

JB King
+13  A: 

Hi Yaba,

I went from programmer to technical team lead to project manager to manager (10 people) back to programmer again. There are pros and cons to each of these positions. I think it's worth trying each of the different career paths just to see if you like one more than the other. If nothing else it will give you a better understanding of those with different roles in your team. For example, I learned that managers don't always just make dumb decisions because they are stupid - often they are being forced to make those decisions by their boss in order to keep their job... You can learn a lot about corporations (particularly, how many are strangely dysfunctional) if you climb the ladder a rung or two. In the end I found out that I am happiest when I am building things. It's my passion and it is far more enjoyable for me to do that than any of the other roles that I tried. But I am glad that I tried them.

By the way, in terms of job stability in an uncertain economy, I disagree with the poster who said middle management was one of the most comfortable positions. Those folks are often the first to go. Focus on your hard technical skills if you want a bit of job security and make yourself "indispensable" to your employer. Be the one who is suggesting new and better ways to do things without being asked.

unintentionally left blank
A: 

In my opinion the only way to know what path to take is to 'suck it and see'. You may be a talented artist, for example, by if you're never exposed to Art you'd never discover the potential you have inside.

mrwiki
+1  A: 

This answer would seem unorthodox but, here goes.

After six years of software development, I'm prepping myself to attend to the travel agency biz my wife and I started. I kid you not. It's the sort of dream setup I have: a business where the business is pleasure. It's hard work though, and my wife who runs it by herself (home-based) is starting to feel the crunch.

That doesn't mean I'm going to quit developing software though. I'm going to continue to write software, this time for our business, and if I'm lucky enough I'd be able to sell it to other travel agencies (provided, of course, that the sale won't give them a significant competitive advantage over us... insidious I know!).

The point is I'm choosing to focus on one core business competency as opposed to freelancing wherein you jump from one set of business rules to another every project. Domain expertise in one field would definitely be useful in coming out with quality products that actually meets the needs of that specific domain/industry. Quite different from trying to analyze business processes of totally unrelated industries every now and then.

Another source of income I'm looking at would be teaching OOP, C# and .NET, on a part-time/per project/consultancy basis.

Jon Limjap
+1  A: 

You should try all the possibilities and in the end, chose the one that makes you more "happy".

Some people can be extremly good at programming and extremly bad as project leaders, it all depends on their personality, etc...

João Augusto
A: 

As for the management part, I found an excellent answer on Rands in Repose.

Yaba