# Good examples for teaching software estimation (size, schedule, effort)? [closed]

I'm going to be teaching a class that covers a broad brush of estimation techniques. I intend to cover absolute estimation techniques based on SLOC (e.g. Function Points, COCOMO II etc.) and relativistic ones like T-shirt sizing, story-point estimation etc.

I was wondering what would be some good exercises to conduct in class to help understand the what, why and how of estimation. I hope to pique their interest with actual hands-on examples rather than death by powerpoint.

An example that was suggested by a colleague of mine was to bring a newspaper to class and ask them to estimate the number of words in the paper (for short papers or just a page for long ones). Since they can't absolutely count it, they'll be forced to come up with their own heuristics and they to take the lecture from there to help them gain insights into their own estimation technique.

Although a good example, it doesn't seem to link well with software estimation IMHO. I was wondering what would be some good examples for teaching software estimation w.r.t. size, schedule and effort estimations that they'll encounter in practice. I prefer practical examples that I can actually 'conduct in class' rather than 'just talk about it'.

UPDATE: To throw some more light on the structure of the class - Yes, I'll be covering the aspects of granularity i.e. at the RFP stage what's the best one could do. How can the estimate be refined when more is known about the problem (e.g. FPs after prototyping is done) and how story-points can be useful once you have a list of stories to go by Or how COCOMO like models based on SLOC count can be applied post architecture/design. I.e. narrowing the cone of uncertainty as you progress towards completion of the project. My aim is to elicit examples that the student teams can practice in class to get a better feel for the techniques and understand its ease of use (or difficulty) and the level of accuracy that can be obtained at that level of granularity and knowledge.

PS: If you are downvoting, I'd appreciate a comment highlighting the same. This is not a subjective question and rather non-trivial to teach in a hands-on manner and does have the possibility of selecting the 'best answer'

-

## closed as too broad by Ixrec, Thomas Owens♦May 12 '15 at 1:26

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

@JarrodRoberson - No it's not a duplicate. I'm not talking about techniques to use (that's what the class will be about). I'm talking about what practical examples to conduct 'in-class' to help understand the techniques themselves? – PhD Jul 16 '12 at 19:20
@downvoter: Why the downvote?? – PhD Jul 16 '12 at 19:20
@PhD I am not a downvoter but your question feels quite slippery in that it sounds pretty much like recommendation / list type – gnat Jul 16 '12 at 19:38

Steve McConnell's Software Estimation: Demystifying the Black Art has a number of good examples presented through the book, some tied to a specific estimation methodology as well.

As an example, for presenting "count-compute-judge", he presents the problem of counting the number of people in a large conference hall. I believe it goes something like this, since I don't have the book in front of me right now. The counting technique involves individually counting all of the people in the room. Computing involves determining that each table was designed to hold five people, and many observable tables had about five people sitting at them, and then counting the number of tables in the room. Judgement was to look at the posted maximum capacity of the room and estimate the percentage of the room that was occupied, using that percentage and the maximum capacity.

He presents other examples, from both software and other estimates, to explain other estimation techniques. If you haven't read it, I'd highly recommend reading it before you teach the course. If possible, I'd even suggest it as the course textbook (or a recommended textbook).

Estimation is something that's difficult to teach though. It's one of those things that gets better with experience. However, unlike other things in the "you learn by doing" category, estimation requires you to not only do (as in perform the estimate) but then do what you estimated and track your estimates and actuals and discuss why there are differences.

Although McConnell's book will provide good examples of what it's like to use a number of good estimation techniques, I'd consider using projects in the course. Not only do different estimation techniques provide different levels of accuracy, but some also require a certain amount of historical data with regards to both estimates and actuals. As you progress through more and more projects, you'll gain more historical data while also giving students hands-on experience with using a particular estimation technique.

Depending on the experience level of the student, I might be more inclined to focus on teaching the techniques, when they are appropriate, and their advantages and disadvantages. This would especially be true for undergraduate students or even graduate students with limited professional experience. More experienced students with more large-scale projects under their belts can probably relate to their experiences more and will have a larger historical database of estimates and actuals to draw upon.

-
Yes that IS the course text book :) The class will be structured around it. My concerns were what 'example problems' can I conduct in class to help me teach it better rather than just showing slides and talking about it. – PhD Jul 16 '12 at 19:28
@PhD Since that's the book, and it contains numerous examples, then just use those. Or modify them to be appropriate. It's a really good starting point. – Thomas Owens Jul 16 '12 at 19:31
excellent book. the illustration i like to use is a 5-second video i took of a fish tank at the pet store. in the video you can see a swarm of fish swimming about, but you can't see the whole tank. the question is: how long will it take you to count the fish, and how accurate do you think your count will be? ;) – Steven A. Lowe Jul 17 '12 at 8:08

I suggest, that you start the class by giving them a very simple application that has 4 business processes or so. Ask them to do their estimate before learning any thing about the course, then use this application through the course and show how estimation techniques apply to it and where would someone go wrong. I guess what I am trying to say is have the class based on simple case study and apply the principles as you go and show how various factors and/or estimation techniques could give different results.

-