An XP Question

I recently finished reading Kent Beck’s Extreme Programming Explained for the first time. It’s really an amazing book, and if you haven’t read it you should do so now.

But I was a bit confused by something, especially thinking about applying XP to a consultancy rather than a team embedded in an organization. Here are two quotes to consider —

“As soon as a story is written, try to estimate the development effort necessary to implement it.”

“XP asks programmers to accept responsibility for estimating and completing their own work.”

The question is this. If you are writing and estimating stories at the same time, and writing them each week, how do you determine a client’s budget and time requirements?

I’m conflicted by this. Writing and estimating stories before work has started—or even before you know who will be working on the project—feels more like “requirements gathering” than something belonging to an agile team. And yet it gives you good ground for estimating time-to-launch and budget for a client: “Historically we deliver an average of x points per week, so unless we reduce the scope you’re looking at an approximate launch date of y.”

How have you solved this?

Reply to me on twitter, or shoot me an email. If I get enough responses I’ll put together a followup post.