Estimating software projects is hard, if not impossible. This seems likely to be fundamental to the work, because we’re inventing new things and invention doesn’t happen on a fixed schedule. And yet, many teams still estimate how long their tasks will take to finish. Why should you do this, if you can’t do it accurately? You do it because it can help you reach your real goal of solving a problem as quickly as possible. But when you do it, you need to have really solid processes around estimating, or the estimates will be used and abused and can kill your team.