Software development is often fundamentally different than the analogies used to describe it. Accordingly, estimating what software will be done and by when can be an exercise in frustration. Yet, some teams seem to just "get it", making accurate predictions of cost or effort. Other teams struggle with excruciatingly detailed planning meetings or with the results of not estimating at all. Explore estimation for software development from several angles including: empirical planning, time-based estimation, relative comparison, and others. Several effective and proven estimation techniques will be explored, expanding your team's capabilities beyond hoping for the best.