How much disk space will you need for a million names and addresses?
How long does a 1,000-byte block take to pass through a router?
How many months will it take to deliver your project?
Even though the questions lack information, all these can be answered. Depending on how good are you at estimating, your accuracy increases.
Learning to estimate is an important skill when comes to software development. Estimation helps to reduce surprises, rather than wondering why this happened as in when we encounter it.
All answers are estimates, but some are more accurate compared to the other one. While somebody ask us to give an estimate, we should think about the context first. Do they need high accuracy or just asking for a ballpark figure?
If your grandmother asks when you will arrive, she's probably wondering whether to make you lunch or dinner. On the other hand, a diver trapped underwater and running out of air is probably interested in an answer down to the second.
What's the value of Pi? If you're wondering how much edging to buy to put around a circular flower bed, then "3" is probably good enough. If you're in school, then maybe "22/7" is a good approximation. If you're in NASA, then maybe 12 decimal places will do.
The units we use for estimating are also important. If we say that something will take 180 days to complete, they will be expecting it to come in pretty close. But if you say six months, it will give a feeling ‘Oh! Six months!!’
The author recommend us to scale time estimate as follows:
How long does a 1,000-byte block take to pass through a router?
How many months will it take to deliver your project?
Even though the questions lack information, all these can be answered. Depending on how good are you at estimating, your accuracy increases.
Learning to estimate is an important skill when comes to software development. Estimation helps to reduce surprises, rather than wondering why this happened as in when we encounter it.
All answers are estimates, but some are more accurate compared to the other one. While somebody ask us to give an estimate, we should think about the context first. Do they need high accuracy or just asking for a ballpark figure?
If your grandmother asks when you will arrive, she's probably wondering whether to make you lunch or dinner. On the other hand, a diver trapped underwater and running out of air is probably interested in an answer down to the second.
What's the value of Pi? If you're wondering how much edging to buy to put around a circular flower bed, then "3" is probably good enough. If you're in school, then maybe "22/7" is a good approximation. If you're in NASA, then maybe 12 decimal places will do.
The units we use for estimating are also important. If we say that something will take 180 days to complete, they will be expecting it to come in pretty close. But if you say six months, it will give a feeling ‘Oh! Six months!!’
The author recommend us to scale time estimate as follows:
Duration
|
Quote estimate in
|
1-15 days
|
days
|
3-8 weeks
|
weeks
|
8-30 weeks
|
months
|
30+ weeks
|
think hard before giving an estimate!
|
- summary of Estimating, from The Pragmatic Programmer: From Journeyman to Master
No comments:
Post a Comment