Something missing from this series on estimation, until now, has been a discussion of how to “break down” a project into a well-defined task list. I’d not previously written about this because, to me, it’s largely intuitive. But it isn’t for everyone, so this post fills the gap, and explains in detail how I break down projects into a task list.
Sometimes, it’s more important to be able to produce a quick estimate than it is to produce a good one. In those cases, reach for the SWAG: the Simple Wild-Ass Guess. To a large degree making a (good) SWAG is an intuitive process, but I’ve tried to unpack what’s happening in that short moment and give some thoughts about when a SWAG is appropriate, and how to give one.
Last time, I explained that, although estimating software project timelines is hard, you should do it anyway. With that background, I want to go into some detail and share the technique I use when I need to develop a project timeline. I don’t believe there’s a single “correct” technique; this is one system that works well for me. However, my system does have one critical characteristic that I believe any effective estimation technique should have: it captures both time and uncertainty.