“Software developers don’t really like to make schedules. Usually, they try to get away without one. ‘It’ll be done when it’s done!’ they say, expecting that such a brave, funny zinger will reduce their boss to a fit of giggles, and in the ensuing joviality, the schedule will be forgotten.
Most of the schedules you do see are half-hearted attempts. They’re stored on a file share somewhere and then completely forgotten. When these teams ship, two years late, that weird guy with the file cabinet in his office brings the old printout to the post-mortem, and everyone has a good laugh. ‘Hey look! We allowed two weeks for rewriting from scratch in Ruby!’”
Joel points out that there is a need for finding out how much of a return a project would bring, and in order to calculate this you need to first figure out how much time you need to invest in order to get that return.
“Why won’t developers make schedules? Two reasons. One: it’s a pain in the butt. Two: nobody believes the schedule is realistic. Why go to all the trouble of working on a schedule if it’s not going to be right?”
Over the years, FogBugz developed a system that’s so easy that even the grumpiest developers are using it. It’s called Evidence-Based Scheduling or EBS. You gather evidence, mostly from historical timesheet data that you feedback into your schedules.
What you get is not just one ship date: you get a confidence distribution curve, showing the probability that you will ship on any given date.
- Break Them Down: EBS is a believer in breaking each design into steps, and maximum time allowance is 16-hours for each step.
- Track Elapsed Time: EBS encourages you to keep timesheets so you can keep track of how long you spend working on each task. Then you can go back and see how long things actually took relative to the estimate. You can do this for each developer.
- Simulate The Future: Rather than just adding-up estimates to get a single ship date, use the Monte Carlo method to simulate many possible futures. In a Monte Carlo simulation, you can create 100 possible scenarios for the future. Each of these possible futures has a 1% probability so you can make a chart of the probability that you will ship by any given date.
EBS is the future of project management and yet a handful of developers know about this hidden gem. Our goal is to spread the word by providing a smart tool for developers to use to help with the heavy lifting, leading to time savings and increased accuracy for their projects.
Some Feedback on EBS:
Jeff Atwood@Coding Horror: “It’s a tremendous credit to Joel Spolsky that he made this crucial feature the centerpiece of the FogBugz. I’m not aware of any other software lifecycle tools that go to such great lengths to help you produce good estimates.”
Rafe Colburn@RC3.org: “We’re rolling out FogBugz 6.0 at work, and I’m finding that I actually like the time tracking. For one thing, it’s a tool for focus. When you kick off the timer on a task, you don’t want to jump around and multitask because it will just throw off the timer. The timer feature itself is pretty easy to use.”
Scott Rosenberg@Wordyard.com: “What’s most interesting about the FogBugz is what Spolsky and his team are calling ‘Evidence Based Scheduling…’”Reg Braithwaite@Raganwald.com: “I built a prototype that did the exact thing that FogBugz is doing quite some time ago. However, prototypes are not shipping products. FogBugz is a shipping product. My prototype was not. And that makes all the difference.”