2010年7月11日 星期日

Software Estimation v.s.Biz Target

之前blog的文章, 2008-04-02

Software Estimation Demystifying The Black Art是code complete 的作者Steve McConnell 2006年大作. 裡面提出如何作好軟體時程預估. 其中有一段Manager 跟工程師的討論, 說明 Estimation, Targets的不同:
————————————————————————————
 One implication of the close and sometimes confusing relationship between estimation and planning is that project stakeholders sometimes miscommunicate about these activities. Here’s an example of a typical miscommunication:

EXECUTIVE: How long do you think this project will take? We need to have this software ready in 3 months for a trade show. I can't give you any more team members, so you'll have to do the work with your current staff. Here's a list of the features we'll need.

PROJECT LEAD: OK, let me crunch some numbers, and get back to you.

Later…

PROJECT LEAD: We've estimated the project will take 5 months.

EXECUTIVE: Five months!? Didn't you hear me? I said we needed to have this software ready in 3 months for a trade show!

 In this interaction, the project lead will probably walk away thinking that the executive is irrational, because he is asking for the team to deliver 5 months' worth of functionality in 3 months. The executive will walk away thinking that the project lead doesn't "get" the business reality, because he doesn't understand how important it is to be ready for the trade show in 3 months.

 Note in this example that the executive was not really asking for an estimate; he was asking the project lead to come up with a plan to hit a target. Most executives don't have the technical background that would allow them to make fine distinctions between estimates, targets, commitments, and plans. So it becomes the technical leader's responsibility to translate the executive's request into more specific technical terms.

 Here's a more productive way that the interaction could go:

EXECUTIVE: How long do you think this project will take? We need to have this software ready in 3 months for a trade show. I can't give you any more team members, so you’ll have to do the work with your current staff. Here's a list of the features we'll need.

PROJECT LEAD: Let me make sure I understand what you're asking for. Is it more important for us to deliver 100% of these features, or is it more important to have something ready for the trade show?

EXECUTIVE: We have to have something ready for the trade show. We'd like to have 100% of those features if possible.

PROJECT LEAD: I want to be sure I follow through on your priorities as best I can. If it turns out that we can't deliver 100% of the features by the trade show, should we be ready to ship what we've got at trade show time, or should we plan to slip the ship date beyond the trade show?

EXECUTIVE: We have to have something for the trade show, so if push comes to shove, we have to ship something, even if it isn't 100% of what we want.

PROJECT LEAD: OK, I'll come up with a plan for delivering as many features as we can in the next 3 months.

Tip #2 When you're asked to provide an estimate, determine whether you're supposed to be estimating or figuring out how to hit a target.
————————————————————————————
 這讓我有了一些反省, 原來我時常要的是 business target, 而工程師卻會想要完整的implementation. 這是兩者的落差. 如何增進溝通是團隊中每個人都應該要常常要思考的.

沒有留言:

張貼留言