I know Joel isn't particularly enamored of agile, but you'd never know it reading through his latest in Inc. One really good item in the comments: reason 0 ought to be "Don't start off on a dumb idea in the first place". The rest is pretty much Agile/XP gospel, except for mistake 4: Divide tasks equitably. I think you can do it, you just have to expect a schedule hit. One thing from the Scrum bidding process is that you have to account for who's doing the estimating - estimates from people familiar with that part of the system should be lower than everybody else's. If they're not, something's seriously wrong with the story being bid on.
Evidence Based Scheduling looks like an interesting idea. The whole thing hinges on good recordkeeping though. I suppose the alternative is guessing, however. I've always disliked (possibly too weak a term) timesheets when I've had to fill them out. My main issue was in finding a task to fit in the daily activities - tasks were usually too vaguely defined, or way to specifically defined, and didn't really reflect the reality of the development process.