Thursday, February 18, 2010

Software Development Career Paths: Up or Out?

Continued from Software-Development Career Paths: Organizational Quality.

Moving Up
For this option, mostly I can only repeat the traditional oft-heard worries: your tech skills will get rusty and you'll be stuck in middle-management forever.

On the other hand, I don't think developers who like to code should dismiss moving up out of hand. If you get a chance, try it. Who knows, you might like it.

There's a nice discussion about staying technical as a manager over on Rands In Repose: Technicality. If you keep your technical skills sharp, then hopefully if it turns out that you hate being a manager, you can still go back to being a developer.

Moving Out
Lately I have a new perspective on moving out, thanks to the software craftsmanship movement. How many books and articles have you read lately that use the word "journeyman?" There's a reason the word "jouney" is in there.

In parts of Europe… spending time as a journeyman, moving from one town to another to gain experience of different workshops, was an important part of the training of an aspirant master. [Wikipedia, Journeyman]

Although I don't think it's a perfect book, Apprenticeship Patterns by Dave Hoover and Adewale Oshineye is currently the best reference I know for thinking about different ways to approach a career as a software craftsman from the perspective of an individual developer rather than that of a manager.

Another Option: Stay Small, Maybe Even Really Small
Keep in mind that not all organizations force you to choose between coding and managing. Smaller companies often don't have "Eiffel Tower corporate hierarchies." If you're moving around, you might find more satisfaction sticking with smaller companies, especially since that way you're more likely to personally provide value to customers, as described by Cameron Purdy in his great article Eight Theses.

Don't forget that you can go it on your own. Recently at DDD8, Liam Westley gave a talk about owning your own software development company. Of course, the talk assumed that you already "have commercial ideas, clients, or sales leads." I have no idea how to get to that point, but the fact that Liam was there giving the talk is a reminder that people actually do manage it.

Staying Motivated
Whether you literally become a journeyman by moving among companies or you stay for a long time at a single company, if you don't want to move up, you may need to look for non-traditional ways to keep yourself up-to-date technically and otherwise generally motivated, especially if you find yourself occasionally working at places that treat you as an interchangeable coding machine.

Apprenticeship Patterns gives some ideas about how to do this. Obviously, there are always things like learning new languages, participating in either local or virtual developer communities, and in open source projects.

Interestingly, all of those things follow a general leadership-followership pattern that's pointed out in The Art of Followership:

[An] example, which is becoming increasingly common in developed countries, occurs with employees who have extensive professional education. These employees can often perform their work assignments without relying on technical guidance from their hierarchical superiors. Their education often includes a strong socialization component, instilling in them a desire for autonomous, self-controlling behavior and the tendency to look to their professional colleagues for support and recognition. This often occurs with university professors who are highly educated and tenured. These individuals often view their university as a place to practice their teaching and research skills with little interference by administrators. They work with and obtain feedback from colleagues, they read academic journals for up-to-date information on their field, and they derive intrinsic satisfaction from their publications and recognition at academic conferences. Similar tendencies exist in firms that provide consulting and accounting services. In these instances, professional education and socialization can replace or substitute for a leader's direction and supportive behavior. [Chapter 3, Three Perspectives on Followership by Howell and Mendez]

I don't think the software development profession has necessarily quite reached this point yet, but it's an interesting perspective to keep in mind. Ideally, you can get "support and recognition" from your "hierarchical superiors" as well as your peers. Anything else is draining. However, in a pinch, don't forget to look out as well as up to get the sustenance you need to nurture your craft.


  1. Either way, the ceiling--even for a top-notch coder--is pretty low. At best (if you shed a bit of your technicality), a product manager.

    There's only two ways, if you're actually trying to make it to the top:

    1) Learn to do real management, CTO is mostly management, not coding
    2) Start a company

    Lest you grow old and find that you've crash-landed in a middle-management position by your 40s.

  2. I think staying at a single company for longer time makes you a perfect journey man instead of moving from here and there. Definitely if you are not gaining anything from that company then moving to another company will be a good choice.

  3. As a conclusion of your article I want to add some. The best decision for creating and supporting of any IT software will be using some professional software development company. This is the right choice for everyone who want to start some project and don't have enough of resources for creating some software by your own. Here is the great IT outsourcing company try some if you need to create some IT software or make the market research for your startup. Good luck.

  4. If you keep your technical skills sharp, then hopefully if it turns out that you hate being a manager, you can still go back to being a developer.speech recognition program

  5. Great article. I like your blog.Thanks for sharing.

    IELTS classes in Kuwait

  6. The degree of development of software teaches you as a software developer, but also teaches you to be thoroughly professional from both the technical and non-technical skills critical to success in a business environment.
    winzip activation code

  7. I've been struggling with the same problem for some time now. I literally went through tens of casinos to find the one I like the most, with free bonuses of course. So feel free to follow my steps and get a lot of bonuses at at 777 Spin Slot. They do offer a lot of great deals and games to win some money.

  8. All the career options are fluctuating but there is the most risk in the IT sectors. There is a repeated ups and downs here but we need to move uniformly in oredr to stay away from crises. The bigger the company, the risk is the higher. I completely agree with your post. Staying small can be a smart way and this is what maximum companies are following. A small company may not have a huge profite but it will never go on loss. Thanks for sharing.