The Programming Identity Crisis
Are Programmers Professionals or Tradesmen?
Joel Spolsky wrote an article complaining that people who study computers at school aren’t taught “practical” skills like using source control or bug tracking tools. His solution is that universities should create a class where they teach students to use his FogBugz product. If that sounds self‐serving to you, you’re not alone. Mark Dennehy thinks that Spolsky has become a snake-oil salesman.
Setting aside Spoksly’s product marketing, I think his attitude about skills and tooling is very common among managers in our industry. Several times in my career I’ve seen communications from management calling me a “Python Resource” or a “PHP Resource.” Ignoring the completely dehumanizing concept of people as “resources” (which is par for the course in Corporate America) the fact that managers seem so absorbed with skills with particular tools belies a refusal to treat us like professionals and a preference towards viewing us as skilled labor.
A graduating structural engineer has no idea how to marshal a design through the building inspector’s approval process. A graduating lawyer has no idea how to actually engage in litigation. Yet those fields aren’t dominated by managers whining that students should be learning "real world skills" instead of "theoretical stuff" like high physics or constitutional law.
They understand that a professional isn’t an automation that gets precision machined by a training program to slide frictionlessly into their workflow. They know that when they hire a graduate, he isn’t trained in the mechanics of his job (nor is he even licensed yet), and that the hire represents a commitment on the firm’s part to take the theoretical knowledge he got in school show him how to leverage it for the real‐world practice of his profession. They are fine with that because they have a culture – as professions and as firms – of respecting and investing in their practitioners.
The computing industry doesn’t operate that way. All the lip service it gives about ’professionalism’ is, as far as I can tell, entirely driven by a desire to ensure that programmers remain exempt. Why is it that the manager class at development firms is dominated by non‐technical MBAs? Why are development firms not set up so that programmers are partner‐tracked associates? I can’t think of any real profession where that’s not the default configuration for a firm. And most apropos here: why do they expect their supposedly professional workforce to receive trade skills from their university education programs?
I think people like Spolsky need to quit attacking universities until they can get some consistency in their own views of their employees. Either programmers are the skilled tradesmen we’re currently treated as. In which case, the exempt status should be removed and the industry should come up with a tradesman’s curriculum. Or they should accept us as professionals, and start treating us that way.