When a Project Manager says “To finish this we need more resources” what I picture in my mind is this:
It really sucks to think of people as resources. It’s something that bugs me, and the pure association (developer = resource) brings some intrinsic crazy deductions like “developers are high quality typist”, “developers are just machines that turns requests to features” or, even worse, “we can just trade these resources (aka: developers) for new (and cheaper) ones”. Well, a piece of advise: the developer isn’t the tree, he is a lumberjack.
I think that this association (developer = resource) is the root of one of the main problems in medium and big companies: the “Black Box Efect”. It goes something like this: The products owners, managers and consultants go to a meeting to define some new feature. After some discussion they write down their conclusions and send it to be done by the development team. Then the developers create the features and everyone goes to the bar to congratulate each other.
Há, just kidding. The request will be detached from the current product architecture, it’ll demand much time and effort to be done and it will make everyone miserable: developers because the irreal feature and heads for the delays and problems. Futhermore, any new improvements will be harder to implement, just because of the existence of that “big ol’ fat feature”.
Of course, this is the worst case cenario, but it happens more often than you think.
These are the things that happen when you just include de development team in the final step (“Here, create this!”). The developers should be included from the beginning. This way they can help refine the request to be healthy added to the product. I think that the “old time developer”, that guy that couldn’t talk to people and just received requests and a bowl of food to code, should not be the reality now.
Real developers must be able to, consistently, explain to non technical folks what’s happening and why this request is not such a good idea. And not just the “Tech Leads”, but any developer in the team.