Once upon a time, in a project planning session far far away, we realised that the balance of skills on the team would need to change in the next phase of the project. A Java integration layer had been built, and the JavaScript application consuming the APIs would need to be finished and styled. The front end developers were busy with another part of the project. One of the non-technical people in the meeting asked if we could get the back end team to do the work - “aren’t they all just developers?” he asked.
I was a little taken aback. Perhaps I was over-reacting. Perhaps he didn’t know any better. It was probably just a sign of his ignorance - after all, he’s the kind of person who gets confused between Java and JavaScript. But I think there was something deeper than that, a sense that he, along with many others, sees developers as basically interchangeable cogs in a machine, a squad of code monkeys at the bottom of the food chain, who crank the handle to churn out story points. In short, he was thinking about developers as “resources”.
The R word offends me. It shows a lack of respect, it dehumanises us, and it fosters a ‘them and us’ culture that disempowers the people who do the so-called ‘real’ work (not that I want to downplay the value of “talkers” or prioritise “doers” over them). It harms team unity and devalues the skills and experience of the people who make up the team. It doesn’t recognise the contributions that developers can make beyond writing code, and discourages the exchange of ideas that is so important in building something better.
A resource is a thing that you use. When we talk about natural resources, we often talk about them being exploited. If you describe a person as “a resource”, it suggests that you see them (perhaps subconsciously) as something to be used and exploited. It suggests that you’re treating them as what Immanuel Kant would call a means to an end, rather than a human being to be respected as an equal.
Unsurprisingly, I don’t like my profession being thought of that way. Yet paradoxically that lack of respect for developers often seems to go along with a view that technical people are somehow different, that they’re magical geeks who understand the voodoo of code. I used to work with a client who would make a reference to the Matrix every time he saw any code on my screen. Those comments were intended as friendly and self-deprecating, but it’s also a kind of othering, a perpetuation of the stereotype of programmers as basement-dwelling oddballs with no social skills, who don’t really need to be treated with respect.
Putting all that aside, it got me thinking about why the back-end developers couldn’t do the job. Given enough time, maybe they could have learned enough to cobble something together, but that doesn’t feel like the ideal way to approach a project. Perhaps this goes against the idea of the mythical full stack developer, but there’s definitely something to be said for specialisation.
If you were accused of a crime in France, you wouldn’t ask a British property solicitor to help you. You’d want a local criminal defence specialist, with experience of the relevant jurisdiction: someone familiar with the language. The idea that “they’re all lawyers” would probably be very far from your mind. Similarly, if you were diagnosed with lung cancer, you wouldn’t want to be seen by a gynaecologist, and you wouldn’t say “they’re all just doctors”.
We need people who know the details of difficult and complex systems, people who aren’t afraid of digging down into the depths of obscure knowledge in their own specialised area. Having said that, much as I think we should value the work of specialists, it’s important to have more than one string to your bow - ideally more people’s skills profiles would be T-shaped. Certainly I can’t claim to be the world’s greatest expert on any of the areas I’ve worked on, but I’d like to think that one of my strengths is being able to know my weaknesses in a relatively wide range of areas.
One of those areas of weakness is project management, but I do know this: if you treat your team with respect, they’re more likely to feel valued, and in turn more likely to go the extra mile for the team and deliver a better result. So please stop using the word “resources” to talk about people.