Tuesday, February 16, 2010

Software-Development Career Paths: Organizational Quality

A developer-friend of mine, Tom Wessels, recently asked the computer-age-old question:

I just want to be a programmer. But can I?

He follows up the question with a great quote from the great and still-relevant book Peopleware by DeMarco and Lister, which points the career path encouraged, or at least tolerated, by many organizations: If you're not on your way up, you'd best be on your way out.

To be fair, DeMarco and Lister follow up this description with a contrasting one, "The Mentality of Permanence:"

Over the years, we have been privileged to work and consult for a few companies with extraordinarily low turnover. You won't be surprised to learn that low turnover is not the only good thing about these companies. Indeed, they seem to excel at many or most of the people-conscious qualities discussed in these pages. They are the best…. In the best organizations, the short term is not the only thing that matters. What matters more is being the best. And that's a long-term concept.

DeMarco and Lister go on to describe ways in which these companies invest in their employees, fostering a culture of learning, professional improvement, permanence, and organizational excellence.

To answer the question, I think you need to look at your career along a few different dimensions. One of which is the quality of the organizations at which you will work.

It might be possible, to get a job at one of these "best organizations" and be comfortable for some time with one of the options Tom presents:

You reach a point where you just accept that you're at a good company, you get to write code in a somewhat enjoyable fashion, and you leave it at that.

Hooray! Yes, I think it would be good for everyone to at least have that option for a few years at some point in their careers.

But a couple things stand in the way.

First, it can be hard to get a job at an organization like that, not only because its bar to entry might be pretty high, but also because from the outside, it can be hard even to identify which companies are truly the best. Or maybe you just don't happen to live near the offices of any of those best organizations and aren't able to move.

Second, nothing lasts forever, including "being the best." I'm not sure the great organizations DeMarco and Lister use to demonstrate their "mentality of permanence" are still considered to be the best now that it's 10-20 years later: Reader's Digest, Hewlett-Packard, Pacific Bell? Even the lean software development movement's favourite company, Toyota, has recently shown signs of falling off the "being the best" pedestal.

In short, the mentality of permanence may not be permanent. If you're lucky enough to find yourself working for one of these best organizations, that's super. Enjoy it while it lasts, or for as long as you're comfortable staying. But don't be shocked if it doesn't last forever.

Which brings us to the next dimension. Given that you might find yourself working at lower-quality, "up or out" organizations during your career, should you move up or should you move out?

Continued in Software Development Career Paths: Up or Out?


  1. My favorite technology companies are the ones led by engineers, like Google or early Hewlett Packard. Most of the time, though, the environment you describe may be in an isolated division even though it isn't prevalent throughout the company - like with Microsoft Research.

    So it's not just about finding the right company, it's also about finding the right division and the right team.

    I personally believe that at technology companies, business executives should work for engineers - not the other way around.

    I think it's been proven a number of times that following a simple childlike engineering dream such as "let's make the very best product" or "let's try to seamlessly connect everyone in the world" can have the fortunate byproduct of being hugely profitable. When your goal is as near-sighted as "let's just make a stockpile of cash" you'll probably find that your financial performance and your employee morale will be lackluster. I really believe that business executives should rally behind an engineering goal, instead of engineers trying to push a financial goal.

    Let's say you're an olympic sponsor for the winter games. Is it wise to take up the grand majority of an athlete's training time to make them do commercials for you for small short term gains? Or is it smarter to go for the gold medal which comes with even more money, higher morale, a sense of accomplishment, and an actual legacy?

    Technology business executives need to learn how to sponsor, in my opinion. There's so much to gain, so little to lose. And what they have now isn't sustainable without growth anyway, and you can't grow a technology company by ignoring the fact that you're a technology company.

  2. Eric,

    I agree, that's a good point about it not just being the company, but also the team.

    As you say, "it's been proven a number of times that following a simple childlike engineering dream... can have the fortunate byproduct of being hugely profitable."

    That sounds a lot like basic research.

    And it makes me wonder, especially with your mention of Microsoft Research above, if the right place to be right now, at least if you're going to a large company, is in the R&D team, if there is one.

    And only if you're really lucky to make it to an innovative place like Google, that thinks all software developers should get some of their own R&D time, or maybe in a smaller company, is the "right place to be" likely to be on a "normal" team.

  3. I don't just believe in good company but on also what you gets or gain from there as a knowledge point of view. Obviously the inner factor does matter too as Eric said, good team and right division can make you handle the things in a proper manner.

  4. How we can get amazon gift codes? SO many people are finding answers of this question. They will visit this page and then they generate amazon gift cards free from here.

    1. A IEEE project is an interrelated arrangement of exercises, having a positive beginning and end point and bringing about an interesting result in Engineering Colleges for a particular asset assignment working under a triple limitation - time, cost and execution. Final Year Project Domains for CSE In Engineering Colleges, final year IEEE Project Management requires the utilization of abilities and information to arrange, plan, plan, direct, control, screen, and assess a final year project for cse. The utilization of Project Management to accomplish authoritative objectives has expanded quickly and many engineering colleges have reacted with final year IEEE projects Project Centers in Chennai for CSE to help students in learning these remarkable abilities.

      Spring Framework has already made serious inroads as an integrated technology stack for building user-facing applications. Spring Framework Corporate TRaining the authors explore the idea of using Java in Big Data platforms.
      Specifically, Spring Framework provides various tasks are geared around preparing data for further analysis and visualization. Spring Training in Chennai

  5. Thanks for the quality article. Want to advise you one great Software Development Company http://www.nixsolutions.com/ . There is the best web development company I've ever work with. Try it and they can help you to solve your problems with web development follow all the conditions you need.

  6. DeMarco and Lister go on to describe ways in which these companies invest in their employees, fostering a culture of learning, professional improvement, permanence, and organizational excellence.best virtual assistant program

  7. Please accept our thanks and congratulations on the success of your recent series on young scholars in our community. We see so much of the negative side of life in the media that it is refreshing to have a positive, upbeat report on the good things that are happening. resume writing

  8. These are some great tools that i definitely use for SEO work. This is a great list to use in the future.. resume writing

  9. I wonder what path are you taking? Is your article based on observations or your own experience? The best lesson you can get is the one based on your experience. The best example of virtual experience is live pornchat. Lessons you get there you will remember for life!

  10. Office involves several applications word, go beyond, access, outlook, PowerPoint and publisher. Alcodasoftware Word is utilized for word processing and creating text documents to an excellent00 standard.

  11. Awesome is the most appropriate word to portray this blog.

  12. This comment has been removed by the author.

  13. I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business. typing tutor

  14. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work Workflow Management

  15. We find lots of learning after reading this very useful article .

  16. With a bit of custom software every one of the prerequisites of your organization will be considered, and designers will meet these both in the manner that they build up the software and the after consideration that they give appropriately.Open Source Crowdfunding Software

  17. Hire Flutter Developer is one of the most popular in the cross platforms industry. We build excellent flutter mobile app and also learn how to overcome performance issues. is the best choice for all startups to discuss and get their project quotation. We also enable many startups to do Proof of concept and help them to learn about business decisions.

  18. I like viewing web sites which comprehend the price of delivering the excellent useful resource free of charge. I truly adored reading your posting. Thank you! magento eshop

  19. Just admiring your work and wondering how you managed this blog so well. It’s so remarkable that I can't afford to not go through this valuable information whenever I surf the internet! price monitoring websites

  20. I haven’t any word to appreciate this post.....Really i am impressed from this post....the person who create this post it was a great human..thanks for shared this with us. Kopar at Newton CELH Development

  21. It’s well-known that coding can be stressful.Like most jobs, the stress waxes and wanes. Live pushes are certainly pressurised times. If there are problems, you need to keep a cool head and fix it quickly. You have to be able to work well under pressure.
    software development services

  22. Thanks for sharing with us, truly like your article. A website must have good speed with good interface also. If you have done well then you get better results soon. If you want to know more, Please check out here: web development company sydney

  23. Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!Thanks career choice

  24. This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post. fraud detection

  25. This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information... kiu