Three jobs software developers perform (and one they're qualified for)

Nothing major here, but there's an interesting story in the MIT Tech Review this month about three jobs they must do at the same time, but most developers are only qualified for one of the three. According to the article, the three jobs they must perform are:

  • Understand complex needs of a client.
  • Translate these needs into algorithms.
  • Write perfect code.

I don't know if most developers would agree with these three jobs or not, but I personally think this is an over-simplification of the problem. (There's much more to it than this.) However, I do agree with the basic premise that programmers are usually only trained to do one or two of these things well.

However, like any other team in any other form of doing work, I think it is the responsibility of the team's manager to understand the weakness of the players, and do what is necessary to compensate. Some systems, like Extreme Programming, try to balance these weaknesses, but even it will fail without a good person running the team.

On another note, what a tough day on the market for Gateway, losing 23% of their value this morning.