While I like the fact that some changes are starting to happen with our processes at work, I also find my self rather disappointed in some of the changes. They're not happening as fast as I'd like, but that's something I just need to come to terms with. Some of the changes that I was told were going to happen are now seeming like a pipe-dream. That's honestly a little hurtful. But the thing that's bothering me the most, is some of the new 'lingo' I'm hearing in meetings and in general conversation around the office.
What is a 'resource'?
I've heard it in the office before, but very rarely. Lately, however, it has become common among a few co-workers (mainly managers) to refer to the people who 'do' things (in our case it's web developers) as 'resources'.
"I need to schedule my resources."
"We don't have enough resources, we need more bodies."
"Which resources are working on that?"
I'm sad to say that this terminology is becoming the norm. This is incredibly offensive, to say the least. It implies that despite being educated, experienced, and passionate, we are:
- on the same level as 'materials'
- as disposable as a paper clip
- identical in skills, knowledge, and abilities
- boundlessly interchangeable and replaceable
- little more than numbers on a balance sheet
Clearly, this is inaccurate.
There is a lot written about the sociological structure of development teams, and that's far beyond the scope of this post, however it should be apparent to anyone who has worked in a development environment, that the above statements are 100% false. So, why is this so common?
When thinking about why managers use this word, the best reason I can think of is that it makes it easier to change the lives of their coworkers. I mean, it's much nicer to say you're "reallocating a resource" rather than, moving someone off a project. It's hard to fault someone for that. I think it comes from an approach to simplify the development process. It's a broken approach that basically has people trying to think of development like a factory production line. Analysts and Project Managers stuff requirements in one end, developers are in the middle making the 'goods', which are then sent to 'testers', or 'test resources' who allow a production quality product to spit out the other end.
This type of environment means your developers are simply 'resources'; universal units of man-power. It suggests that the more 'resources' you assign to a project, the faster the work will be completed. This may be very true in a factory. If three people (or machines?) packaging frozen pizzas can package 3000 pizzas per hours, it should be reasonable to expect that six people could package 6000 pizzas per hour, right? Probably. So, the same is true of software development, right? Two 'resources' can finish it in two weeks, so let's just stick two more 'resources' on it and get it finished in one week. Problem solved! Not exactly.
Not the same
It might just be something we face where I work, though I doubt it, but none of our developers are the same. Obviously, everyone has different personalities and things, but I mean our skills and abilities are different. What might take one person 2 days might take another person 4 hours. That's probably part of a different issue, but either way, we are not infinitely movable from project to project, we are not equally valuable, and we are equally skilled. We each offer very different things to a project.
The word 'resource' is poisonous in a development environment. Using it only enlarges the gap between shop floor drones (you know, the highly skilled developers) and the 'management'. Behind closed doors, managers shuffle 'resources' and try to make some sense of the scheduling mess they created with their improper outlook on projects. To me, it implies a lack of understanding of software development. It also grossly devalues, and discourages your best performers. Suggesting that all 'resources' are the same means that workers need to somehow be equalized. In reality, this requires pulling the top down, while dragging the bottom up.
Really, it's pretty simple. I am not a stapler, or a paper clip. I am not a shop floor drone, or some sort of machine. I have unique skills and abilities to offer, and as such, I am not interchangeable with my team members. People are not resources.