views:

461

answers:

13

Our project manager usually consult developers how many hours they need to implement some functionality asked by client. Is this consistent with the principles of management? Do you or your project managers do the same?

+26  A: 

There's no other way to know how long something will take. You should be thankful, really, that your PM is even consulting you -- too many managers get together with the customer and promise impossible timelines, then expect the devs to live up to their outrageous promises.

womble
indeed, our company doesn't even consult us (well not allways ... ). and then we have to tell them, sorry but that is impossible.
Sem Dendoncker
+13  A: 

Certainly. Without getting estimates for development time no-one has a clue what is going on. You need to be able manage stakeholders expectations, in this case your clients. And better the estimate comes from the horses mouth (in this case the developer) rather than the PM promising impossible time-frames!

Developers sometimes get funny about doing estimates of this nature (I know I do), but it is critical to running a business. The easiest way to approach it is to understand that the PM just wants information. Be open and honest - don't say things will be done when they won't, and explain when and why things might be unknown, or why there might be an element of risk around your estimate.

Andy Hume
+1  A: 

Yes. It is better the manager consults the team on the time required. And the team has to come up with the actual time line taking into considerations all the factors. The onus is on the team to justify the time required for giving quality output. If the Manager is good enough, he/she would appreciate it and agree with the team.

Prabhu. S
+2  A: 

I think it's sounds pretty good. It seems better that he asks for an estimate by the people that are going to do it than just promise something to the client that can turn up to be unrealistic.

Charlie boy
+5  A: 

What is the alternative?

Simon
Open source model, with no time constraint. But this is not very profitable for a company...
mouviciel
It's obvious isn't it? Ask the sales people. They're estimates are always better than the developers.
Mark Nold
presuming this is not an open-ended project then someone is having to balance the development activity against the commercial activity. Sales may well be right if there is a pressing market reason for a deadline. It's nice for devs to presume the salespeople don't understand, but it's rarely true
Simon
+3  A: 

You have obviously never worked for a manager that does not ask for an estimate from you. Otherwise you would know better than to question whether they should do it. :-)

Seriously, very few managers can make realistic estimates on the time needed to provide particular feature, mostly because it's not their job to really undersand all the technical intricacies. A good manager will realize this and will always involve the developers to get good estimates of the work that can be fit in when creating the schedule.

Franci Penov
+6  A: 

Yes, you can't get away from PMs wanting an exact figure of how long something will take.

My approach has been to give estimates with +/- values. I'm 60% sure I'll finish this in a week, there's 30% chance it will be longer, and 10% chance it'll be 2 days. Takes a while for a PM to get used to that idea, but it's the reality of the situation. As someone wise once said, only [insert deity here] can change reality, regardless of how much the PM would like it to be different.

We know that Dev is an in-exact science, the tension of traditional project management, meeting creativity and best guess estimation is probably the single biggest headache of professional development. A really good learning from Agile is just how bad we are at estimating, most Dev's will underestimate 80% of time - that's my estimate anyway.

MrTelly
+2  A: 

On the condition that he accepts your answer.

If a PM has a number in mind when he asks you the question he shouldn't be surprised by his results.

annakata
+2  A: 

A project manager should always ask developers how long something will take. What the project manager does with those estimates will vary considerably depending on their own experience and skill.

If the PM has lots of development experience, they should be able to assist more junior developers in determining whether or not the developers estimate is valid - and hopefully point out why they think there estimate is wrong. Also, a PM should be able to add in other factors that the developers tend to forget - meeting time, sickness, time on SO etc, that all impact on their time.

If the PM has little development experience then the most accurate estimate will come from the developers.

Miles D
+1  A: 

Its a fair question, just don't ever reply with an off the cuff estimate. Always derive estimates from some sort of specification, that way your both on level ground, thats my advice anyway.

Karl
+5  A: 

Yes, it's his job, because time = money

If you consider the fact that

  1. you are part of a business
  2. that the purpose of the business is to make money
  3. Time = money

Then it is makes perfect sense that your manager asks you "How much time will this take" because it translates perfecty into "How much will this cost".

Someone must pay that cost, it will either be a customer, or your company. The PM will use your estimates to ensure the project comes in on time and with in budget. If you say something will take 10 days, and thats 5 days more than he'd like, then it's up to him to either a) cut some other functionality to get this in or b) extend the deadline.

So thats the PMs job, to get estimates from you, and juggle the balance between deliver times and functionality delivered.

YOUR JOB is to provide the best, most honest estimates you can. Like someone else said, always give a confidence prcentage. "2 days, 30% confident" "Possibly 1 day, could be 3 worst case" etc.

It can be annoying to be constantly asked, but it's his job.

P.S. Sometimes the answer "I don't know" is perfectly acceptable, however you should phrase it as "I don't know, I need to look at it a little more and I'll have a better idea then".

Hope this helps.

Binary Worrier
+2  A: 

One of the main advantages of this is that it helps you to find out early in the game that you are overwhelmed by a task: If you can't time it, you probably don't know how to tackle it.

Also, if your estimate more than a week, then it is probably off by 100-1'000'000% (a.k.a "pure speculation"). If you come up with "several weeks", I suggest that start breaking up the task and estimate the pieces. This will help you notice danger zones (where you really have no idea how long it is going to take).

This process will allow your manager to get you the help/tools you need to complete your assignments in time (instead of noticing something important missing two days before the deadline).

If you're interested more in these things, I suggest the book "Death March" and the Extreme Programming site (especially this page). Take XP with a grain of salt: Rules are never going to solve your problems; they just tell you what worked for other people. You will always use them judiciously.

Aaron Digulla
+1  A: 

Asking is much better than assuming.

We had a business manager recently mention in a all-hands staff meeting that a bunch of new features were on the way and they shouldn't take too much effort to implement. This was news to the development team!!

Neal