If you have ever seen the film Office Space, you are familiar with the scene where the Bob's are interviewing Peter trying to find out how he contributes at work. In that scene he says, "I'd probably, say, in a given week, I probably do about fifteen minutes of real, actual work."
Did you laugh when he said that? I know I did, but it begged the question, how much work do I actually do in a day? If I do not know how long it took me to do something then am I really providing honest estimates?
Our team uses a simple formula to determine how much work we could do in a week:
one_week_capacity = (total_number_of_developers/2) * total_days * hours_per_day
total_number_of_developers/2? We practice pair programming. If your team doesn't then there is not one there to prevent you from slacking. You really are 50% productive.
total_days? Normally you have about 5 days in a week but you should not assume you will have 100% of your time available for working on production code or that your estimates where accurate. Calculate capacity using 70% of your work week (3.5 days instead of 5), that will allow plenty of room for incorrect estimates.
hours_per_day? Paring is usually maxes out at about 6 hours a day. The other 2 hours should be allotted to take breaks, respond to e-mails, attend meetings, etc...
Compare your estimates to your actual completed work every iteration. Once you are able to determine how much work you are doing, what you can do is easier to calculate. This computation has been pretty accurate for me over the past few years. Give this a try and let me know how it works for you!