views:

91

answers:

4

Hi,

We're in a fast paced industry (communications) and we build websites and mobile app among the other departments of the company (print, ads, advertising, etc).

We are the only "non-creative" department and our methodologies often clashes with the other departments. They usually go see people directly without any sort of methodologies.

Anyways, my concern today is that our project managers in our department often bypass the tech lead or our director and go see programmers directly. Programmers now have to talk to someone with a completely different perspective than his own. It's hard for them to remain concentrated and there's confusion about the demands they receive (unfiltered, unclear or plain wrong). Sometimes they dare to tell the programmer how to do something by telling them "it's easy, just do what you did last week" or something. Plus, the tech lead/director looses track of who's doing what.

It is true that sometimes a small thing can be asked directly, we don't want to fall into bureaucracy. But where to draw the line to prevent those problems is hard to do. This problem starts with a single little demand, then another and another until it is out of control. We previously tried to do something about it but how can we make something durable?

So, what can we do to prevent this situation without sacrificing our "agility"? How is it at your place?

Thanks

A: 

Have your developers respond that their priorities are set by their lead/supervisor, as they would be in any other department. As such, they should take it up with the lead/supervisor.

Oded
As I said, education is something doable, thanks
Mike Gleason jr Couturier
@Mike - It works both ways - tell the PMs that they are too disruptive with the devs and that they should be going through the leads.
Oded
Oh yes. They would feel that something is going on from one day to another lol.
Mike Gleason jr Couturier
@Mike - a hierarchy is there for a reason. Make sure people follow it, and make sure that the exceptions are known. Imagine an army where hierarchies were not respected ;)
Oded
+1  A: 

I see two options:

  1. Make sure your programmers are assertive enough and comfortable enough to direct project managers to the tech leads if it's not a "no brainer" type thing.
  2. Strictly enforce Project Manager to Tech Lead communication. Tell your programmers to direct them to the Tech lead anytime a PM taps their shoulder.

My vote would be for option 1 and it has worked well for me in the past. When in doubt get the necessary parties involved. Option 2 can lead to too much bureaucracy as you suggest.

Abe Miessler
I guess if the "things we must direct to the tech lead" are well defined it could work, thanks
Mike Gleason jr Couturier
I would suspect that the definition for "things we must direct to the tech lead" would be refined as you go along too. If you really stick with it everyone should eventually figure out what needs to get forwarded and what doesn't. Having a good starting list will definitely help though.
Abe Miessler
A: 

You could realize that you're part of a larger organization whose goals are not to "get the code written". The goal is to solve a problem. In that light the project manager talking to the programmers is perfectly logical. There probably should be some communication with the tech lead as well to allow him to do scheduling, but there's nothing wrong with talking directly to the developer in order to avoid the "telephone" problem.

As to your developers communicating with someone who has a different perspective than them, your developers should be seeing the problems from the perspective of business goals and not just one line of code after the other. You'll never reach the finish line if you don't know where it is.

Jeff Hornby
But getting the problem solved without any structure makes them tired, frustrated and less productive. Without counting the time they must re-do something. Eventually they just go away. I agree that the job must be done, but not at all costs? There must be something in between?
Mike Gleason jr Couturier
I'm not sure what you mean by "the job must be done, but not at all costs". The job is to serve the business. And the best way to serve the business is to ensure that there is good communications with the customer. Remember, the customer is not an impediment to the business; the customer is the business!!
Jeff Hornby
A: 

Assign a "lead designer" for the software. His job is to keep a coherent software product, and to save the project managers time because they don't have to explain things down to the level of individual developers. Sell the position as something that actually helps them save time and results in better realizations of their ideas.

If you do actually save them time and effort, human selfishness will automatically cause the results you want. It's a bit like moving a crossing to where people actually cross the road. It doesn't change their behavior, but it fixes the problem.

As an aside, it's my idea that programmers should also go through the lead designer for their improvement ideas. Otherwise you just get organic feature growth, and you never get really great software designs that way. When they tell their idea, there should be a sort of "yes, but it would be even better if..." reaction.

Joeri Sebrechts
How is your "lead designer" different from the Technical Lead in his question?
Abe Miessler
Perhaps they're not different, it depends on your definition of technical lead. A technical lead for me is someone who translates functional requirements into a technical design. A lead designer for me is someone who is responsible for the user experience (integrating functional requirements into a coherent product), while keeping technical stuff in mind.
Joeri Sebrechts