How To Keep Your Job

OK, so this was posted some time ago, but it's still got to be on every serious coder's reading list (together with a load of other stuff I summarise further down):

The Pragmatic Programmers: How To Keep Your Job

I find the current employment situation for developers slightly more encouraging than, say, a year ago, but it still isn't good. And I don't buy this "it's the economy" crap either. Pants to that. OK, so some organisations are cutting right back on their IT spends (more fool them: IT is not a luxury), but for the most part, I'd say companies are just thinking short-term as per usual. I'm talking about those who kick out IT staff in favour of the odd contractor or farming out whole projects to bureaux overseas. In the scenarios I've witnessed or heard about, such steps always smack of false economy. OK, so maybe there's some cheap labour out there, but is it in your timezone? Can you get through on the 'phone??

Sigh. I suppose I would say all this eh?

Anyway, a round-up of on-line essays and wot-not that I've found personally enlightening / inspiring and uplifting as a would-be propeller-head (most linked from this site before):


  1. oh this is great. seems like there has been a lot of synchronicity lately, lots of people blogging about what is on other people's minds. perhaps we are moving toward a Hive Mind.


    anyway, i was just thinking (really i was) about the fact that you had posted some stuff before about various programming-related reading material, and was actually thinking about emailing you for the "round-up". and wa la, here it is!

    amazing… and some things here i don't think i've heard of. very cool.jonvon#
  2. "Hive minds?" Oooh don't. I watched Alien Resurrection the other night… *shiver*Ben Poole#
  3. Ben, I wonder why this topic has been popular as of late (foreign outsourcing)? As of late I have been thinking about the foreign outsourcing by corporations. As an American, I feel it is anti american to outsource to some foreign nation that doesn't have my countrys best interest at heart. Is it really cheaper in the long run? I think not! Apart from breaking the language barrier, having to time conference calls accordingly and training, you also have the crappy work that some of these developers accomplish. Most of the work that was done overseas - India - for AMEX had to be reworked and fixed when sent back over to the states. What a waste of time.

    Sorry for the rant


    Tony Kelleran#
  4. Heh heh, can o' worms!

    I'd venture to suggest that the issue is more complex: the quality of work from overseas is like the quality of work back home – some coders are good, others aren't, regardless of location. Dave Thomas' presentation looks at this.

    I think the bigger issue is the whole timezone / communications thing. Large complex projects really benefit from everyone being in the same room, especially towards delivery time. It must be really hard dealing with people on the other side of the globe.

    Of course, such "on-going costs" simply get buried in the P&L as BAU. The main thing for companies nowadays seems to be ensuring the initial up-front development cost is as low as possible.Ben Poole#
  5. Thanks for those links. My assessment is that globalization of services is a very real change in the shape of our industry, and it is here for the long term. Time zone differences aren't particularly hurtful. In some cases, they are helpful, in that the requirement settled in today's meeting can be prototyped by coders in Moscow and Hyderabad tonight, and reviewed by the users the next morning. The offshore outsourcing firms have gone to great lengths to solve the communication problems. I'm not saying this because I'm a fan of this trend. I'm just trying to be brutally realistic.

    So, where does that leave us? What is it that can't be exported? Or at least, has not to date been successfully exported? I say that the answer is innovation. There is now a much greater need, IMHO, for the individual programmer to be on the leading edge of technology, and even more important -- on the leading edge of ideas. I believe that in the services area, solving problems doesn't cut it any more. Finding, and perfecting new approaches to problems and bringing the new approaches to customers is the way to go in services. The other area tht I believe we domestic programmers still have a solid hold on is product development. Having noticed that the majority of the services I have provided to clients in the past two years have been oriented at helping them to build better products to sell, I am asking myself "Why am I helping them to develop their products, when I can equally well be developing products of my own?"

    Anyhow, that's my thinking. I've already read the Paul Graham piece. I'll have to bookmark the other pieces that you linked, however, because I'm a little busy right now getting ready to fly to Arizona tomorrow.Richard Schwartz#
  6. Interesting post, Richard. I have to say that my experience of overseas outsourcing has been the opposite of yours. The quality of the work has fallen short of expectations on every occasion, and the 'phone response from Delhi (if you manage to catch them at an appropriate hour) seems to depend on who is near the phone when it rings.

    In fact, I am reminded of a story that my colleague often tells - that he agreed to outsource to a company based on a call with an Indian outfit, only to later realise that he had spoken to the only English speaker in the whole organisation.

    I have to admit though, I really like the idea of having coders working through the night, during our 'dead-time' and everything being ready by the following morning.. Does that really happen?

    Having said that, I've had fewer problems interating with programmers in Australia, despite the more awkward time difference, so maybe "language barrier" is Captain Cock-up's middle name.Spikey#
  7. Great discussion. All I would add is this with regard the added value of so-called "domestic" developers and their innovation: most companies couldn't give a toss about innovation. They just want the latest website developed. Once done, they move on to the next website. It's all marketing. Well, marketing and personnel.

    Sorry, "HR".

    Sorry, "Human capital". After all, for most service companies, their people are their main asset. Oh yes.

    (sarcasm OFF)

    Damn I'm bitter sometimes…Ben Poole#
  8. Well, I'm sure that much does depend on which of the many outsourcing companies you work with. My first experience with this goes back more than a dozen years. I hate to say it, but I was a bit of a pioneer in the off-shore outsourcing arena. (Not by choice, by the way. I had a project that was in danger of being cut, and management told me that the only way it was going to keep going was if we did the outsourcing deal.)

    I won't pretend that everything went perfectly, but we did get a lot of good work done. Knowing that we were going into unknown territory, we paid a lot of attention to management issues throughout the whole process. We benefitted from the fact that our company had development shops in Belgium and Taiwan, so we were able to draw on the experience that had been built up coordinating projects that involved our own company's domestic and off-shore resources.

    There was no Internet connection to our Indian outsourcer at the time, so we built our own point-to-point link (and let me tell you, getting a compatible modem shipped and installed there was an exercise in customs and union beaurocracy that I never want to go through again!), and then eventually upgraded to an X.25 link via satellite. Daily email messages kept us in touch, and we minimized the phone calls. I played an email correspondence chess game with one of the Indian project managers to assure that at least one email in each direction would go across every day -- our own home-brew network monitoring solution! (I lost very badly, by the way…)

    Our project involved 20 consultants. Two project leaders came and worked with us on specs for a month, then 10 developers came over. The two project leaders worked with us for another month completing the specs, getting the other 10 up to speed, and helping them to fit into groups managed by our own project leaders. Then the two Indian project leaders returned home and put together another team of 10 over there. Of the twelve who came over, only two had communication problems -- one due to a stutter (in English only, not in his native language), and one due to a very heavy accent that was difficult to understand. All had excellent written English -- better, frankly, than some of our domestic employees. The two who had spoken communication problems relied more heavily on email than the rest, and that was fine. All but two had technical skills that rivaled any recent US graduate in computer science with a year or two of experience. Two were sub-par, and if the project had gone on longer I probably would have sent them back. On the other hand, two of the developers had what I would consider top-tier skills -- the sort you'd get from a graduate of a top 10 US computer science program.

    I'm sure that the staff of the group in India was not quite up to the level of the consultants they sent to work with us directly. It's very competitive over there, and only the best will get the privilege of going on-site to the client. But we didn't have to worry about communicating with or managing the off-shore developers. We dealt only with the two project leaders who had spent a couple of months with us. If I had to get involved with a major outsourcing effort again now, this is pretty much the model of the way I'd want to do it: on-site project managers actually helpint to prepare the specs, and handling the interface to the off-shore resources. My understanding is that many of the Indian outsourcing shops will use this model.

    Richard Schwartz#
  9. Insightful post Richard, thanks. Have fun in Arizona!

    The batey, rancorous oneBen Poole#
  10. As soon as we discuss this, some other site jumps on the bandwagon ;-) :

    The Register: Let's all move to India (China, Vietnam, Eastern Europe etc.) Poole#
  11. Another link whilst I think of it:

    James Noble and Robert Biddle: Notes on Postmodern Programming Poole#
  12. I think the time zone issues are not as significant as the language issues, but I think the really big problem with outsourcing is the same problem as using a body shop here in the US or in the UK. The first few projects are done with strong project leadership and control by local or well respected partners, and then the company sponsoring the projects thinks they can save even more by letting the body shop (whether in New Delhi or New Jersey) handle that as well, and the project goes sour immediately. Supervision is key when using cheap labor, and I have watched a couple of companies handle this very badly using Indian body shops, and a couple of others handle it very well using the same, or same sort, of body shops. Don't let grunts do the thinking just because you don't want to pay your thinkers to do grunt work.

    As for what all this means for us high falooting thinkers, we need to sell our value proposition as still being just as important or more so because the grunts are doing the easy stuff. It is not just about innovation - it is also about being the brains rather than the brawn. Be the brain!Ben Langhinrichs#

Comments on this post are now closed.


I’m a software architect / developer / general IT wrangler specialising in web, mobile web and middleware using things like node.js, Java, C#, PHP, HTML5 and more.

Best described as a simpleton, but kindly. You can read more here.