These articles always frustrate me, because they clearly come from people in (comparatively) bad companies who think idiotic things about estimates, and as a result the authors need to write arguments against that idiotic thinking.This is an attempt to write an article about producing more accurate estimates, here is to you ghostfacedcoder.
But personally I've escaped those bad companies, and I could care less about reading more whining about estimates (NOT blaming OP: again people write about what's relevant to them ... it's just that that isn't relevant to me).
I'd like to see more articles about getting estimates more accurate, or organizing projects better around inaccurate estimates. You know, the stuff that's a lot harder to do than complain (although, again, I'm not faulting anyone for complaining, just saying what I'd like to read). But in my experience such articles are far more rare, and I guess that says something about the state of our industry.
Project Management Triangle
In project management and I'm not just referring to IT projects, there is a well known concept called the project management triangle, aka Scope Triangle, aka Triple Constraint. I was introduced to it at the local cobblers, who had a humorous sign on the wall which read the following (rough translation from the original):
A quick job well done won't be cheap
A cheap job well done won't be quick
So how can we do better? The answer is to spend more resources (time and/or people) on coming up with the estimates.
A cheap job quickly done won't be good.
Producing an estimate is no different and thus the quality of the estimate depends on the amount of resources spent on it.
It is true that there will always be spanners in the works, but this intuitively makes sense, after all if the project manager asks a developer for an estimate and hovers around waiting for said estimate, this gives little or no time to the developer to think about the potential issues that might arise from an off the top of his/her head design for a feature, which is likely to result in missed issues or an estimation for an approach that will not actually work.
So how can we do better? The answer is to spend more resources (time and/or people) on coming up with the estimates.
Caveat emptor
Firstly, I will put my hand up and say that this method that I am proposing is entirely theoretical as the three times I used it to come up with an estimate, the feature ended up never being developed so actual real world data is needed.
Secondly, coming up with the estimate took around 20% of the estimated time to generate said estimate, but as discussed later, some of this time would be saved from the development phase. This was for features that were estimated at around one person week.
Secondly, coming up with the estimate took around 20% of the estimated time to generate said estimate, but as discussed later, some of this time would be saved from the development phase. This was for features that were estimated at around one person week.
Thirdly, for any feature of reasonable complexity it simply isn't possible to be 100% accurate with an estimate all the time. Not even doing the feature and then re-doing it will give you an 100% accurate estimate all the time as on the second time around you'd probably apply what you've learnt the first time around and do it differently, which would likely lead to a different duration.
Fourthly, I realise that the resource expenditure might not always warrant the increase in accuracy but I think it can be useful in situations where there is a high risk to the business or trust needs to be repaired to give but some examples.
Finally, I think that the more familiar the team becomes with a codebase and the domain, the less time consuming this method will be.
There are various sources that contribute to uncertainty in an estimate but they can all be distilled down to one thing: Assumptions. What this method does is minimises the assumptions by spending time doing some coding.
This is not doing the work to then tell the PM how long it will take to do (having already done the work) but it is doing some coding to ensure that the assumptions that we make in our estimate are reasonable.
While I think that this methodology works for estimating a feature to a great degree of accuracy it would not work very well for a bid. The upfront cost of this methodology is so high that I would be surprised that anybody would go along with it.
Fourthly, I realise that the resource expenditure might not always warrant the increase in accuracy but I think it can be useful in situations where there is a high risk to the business or trust needs to be repaired to give but some examples.
Finally, I think that the more familiar the team becomes with a codebase and the domain, the less time consuming this method will be.
There is Method in the Madness
This is not doing the work to then tell the PM how long it will take to do (having already done the work) but it is doing some coding to ensure that the assumptions that we make in our estimate are reasonable.
- Create a feature branch.
- Add failing unit tests.
- Add Interfaces/Classes with empty methods that have the right signatures (models included) so that your project compiles successfully.
- Estimate how long it will take to write each method, writing down each and every assumption you make as a comment on each method and/or class/interface.
- Submit PR to enable somebody to validate your assumptions.
- PR Reviewer validates assumption and also estimates development time
The idea is to have a separate branch to enable pseudo development.
If you don't use TDD you can ignore this step.
The whole idea is predicated on this step as it forces the developer to think about the design of the feature.
It is very important that the data models are added here as getting the data needed might be half battle.
Make sure that your actual time estimate for each method is not written down in the code to avoid any possible anchoring effect.
This step is not necessary but it's another gate in the process to increase accuracy as a second pair of eyes might see different things, e.g. missing methods, unnecessary methods, entirely wrong approach etc..
A average or even a weighted average is taken of both estimates and this then becomes the team's official estimate. Let the PM have the bad news.
Hi....your post is amazing, thank you for providing all IT related information. Keep posting more and more blog like this VIT
ReplyDeleteExcellent blog information and understandable
ReplyDeletePressure Vessel Design Course is one of the courses offered by Sanjary Academy in Hyderabad. We have offer professional Engineering Course like Piping Design Course,QA/QC Course,document Controller course,pressure Vessel Design Course,Welding Inspector Course, Quality Management Course, Safety officer course.
best welding inspector course in India
best safety officer course
best quality management course in India
best welding inspector course in India
best welding inspector course near me
best safety officer course near me
best safety officer coursein hyderabad
best safety officer course in India
best quality management course
Very useful and informative blog. Thank you so much for these kinds of informative blogs.
ReplyDeletewho provides seo services and e-commerce development services.
website designer in noida
website designers delhi
website designers in delhi
website designing agency in delhi
website designing and development
website designing companies in delhi
website designing company delhi
website designing company in delhi ncr
website designing company in gurgaon
website designing company in new delhi
website designing company in noida
website designing company list
website designing company noida
website designing cost in delhi
website designing cost in india
website designing delhi
website designing firms in delhi
website designing in delhi
website designing in delhi ncr
website designing in gurgaon
website designing in noida
website designing services
website designing services delhi
website designing services in delhi
web design development company
web design development services
web design in delhi
web design service
web design services company
web design services in delhi
web designer company
web designer delhi
web designer in delhi
web designers delhi
web designers in delhi
web designing & development
web designing advertisement
web designing and development
web designing and development company
web designing and development services
ReplyDeleteHey Nice Blog!!! Thank you for sharing IT related information. Wonderful blog & good post. Its really helpful for me, waiting for a more new post. Keep Blogging! For more details visit us at Bachelor Of Information Technology Melbourne
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeletethank you for making this blog like musings on information technology see more articles about getting estimates more accurate, or organizing projects better around inaccurate estimates this is so useful. if you want to know about server hosting or interested in best USA VPS Hosting you can ask us for more details and services.
ReplyDeleteYour Information Very Use full…thank you for share…
ReplyDeleteWhen I gone thorough it "Musings on Information Technology - A view from the trenches" Good explanation in your article your article is explaining point to point this is good for every who visit on this article get the full information.USA VPS i would like to thnaks again for this article and i surely share information to my friends...
finally today i got a blog on musings on information technology see more articles about getting estimates more accurate, or organizing projects better around inaccurate estimates this is so useful. If you want to start your online business with fast hosting service, or interested to know about the best Greece VPS Hosting you can ask us for more details.
ReplyDeleteGreat Article… I love to read your articles because your writing style is too good, You are so clearly explained, "Improving the Accuracy of Software Development Estimates" I share such information especially about Norway VPS Hosting you can ask us for more details and services.
ReplyDeleteThank you so much!
ReplyDeleteAttractive Blog and very helpful! you providing all IT-related nice info I achieve this most helpful information from you. I would like the most important information shared with you. do you know how Hong Kong VPS Hosting is important for the business website? If anyone wants this type of info. Then can ask me.
Very fascinating and amazing blog. this is a very informative and nice blog. thanks for the post it. And, also If you are interested in knowing about hosting and want to buy hosting then I suggested you buy a Malaysia VPS Hosting from Onlive Server they provide the best hosting services at a very low-cost.
ReplyDeleteIt's really a great and helpful piece of info. I am glad that you shared this musings on information technology see more articles about getting estimates more accurate. If you want to start your online business with fast hosting service. If you are interested in best Australia VPS Hosting you can choose your plans as your requirement.
ReplyDeleteExcellent blog,
ReplyDeleteThe information you put in this blog is very understandable and written very well, now I can improve the Accuracy of Software Development Estimates. By the way, I appreciate your blog, if you want to know about server and hosting, then I would like to give you information about Dubai VPS Server. I will be glad to help you.
Great post. I was checking continuously this blog and I am impressed! Here I also want to share some information on the best Canada VPS Hosting services for your business website at a very affordable price.
ReplyDeleteWow! Amazing blog, I mean this blog is just informative. I personally love this informative article… Keep posting always such information with us. Thank you very much. Are you want to know about Brazil VPS Server
ReplyDelete? then contact me. you can any queries ask to me, and I will help you.
Hi, Great Blog- All the necessary information is provided in a very systematic way that is easy to read Thanks for sharing the information. ere I also want to share some of the best UK VPS Hosting services for your website at a very affordable price.
ReplyDelete“Amazing write-up!” and share always informative blog tnx for sharing this musings on information technology see more articles about getting estimates more accurate. If you are looking for fastest and cheapest Germany VPS Hosting you can ask us for more details and services.
ReplyDeleteAmazing blog! I read this and I am glad that It's a very informative blog. You always share informative content with us and your blog writing is so simple to understand. If you have interested in the best USA VPS Hosting, then you can query us for more details and services. I will full information you.
ReplyDeleteGreat Article… I love to read your articles because your writing style is too good, You are so clearly explained, "Improving the Accuracy of Software Development Estimates" I share such information especially about Turkey VPS Hosting you can ask us for more details and services.
ReplyDeleteThis is an excellent post I seen thanks to share it. It is really what I wanted to see hope in future you will continue for sharing such a excellent post.
ReplyDeleteYou always have good humor in your blogs tnx for make ablog on musings on information technology see more articles about getting estimates more accurate. If you are looking for fastest and Best Cheap VPS you can ask us for more details and services.
ReplyDeletePerfect Blog for Accuracy of Software.
ReplyDeleteThe information you give in this blog is very understandable, now I can improve my Accuracy of Software Development Estimates. By the way, if you want to know about server and hosting, then I would like to give you information about VPS Cloud Hosting Services. I will be glad to help you.
Your information is very useful, thank u for share. The blog was too good and the way of explanation is best. I share such information about Swiss Cloud VPS services.
ReplyDeleteSuch an Impressive blog it is very nice and it is very helpful for me and other people. And are you want to know that what is Instant Domain Search? then I can help you and I will provide you the good information.
ReplyDelete
ReplyDeletefinally today i got a blog on musings on information technology see more articles about getting estimates more accurate, or organizing projects better around inaccurate estimates this is so useful. If you want to start your online business with fast Fastest WordPress Hosting
service, or interested to know about the best you can ask us for more details.
Wow! very informative and amazing blog posting by you. Nicely explained in this blog by you thank you very much for this helpful info (Project Management Triangle). If you are interested to know about VPS Windows 10 then you can ask any queries related to VPS Server.
ReplyDeleteThanks for ones this excellent posting, I actually enjoyed reading it, you are a great author. And, also if you want to take a VPS Hosting then I suggest you buy a Cheap Linux VPS from Onlive Server which is available at a very low cost.
ReplyDeletethank you for starting this blog like musings on information technology see more articles about making views more accurate, or organizing projects better around inaccurate estimates this is so useful. If you are looking for the perfect domain name Domain name availability you can ask us for more details and services.
ReplyDeleteA good article on blog commenting, really I was searching for this kind of information for some days What is the function of a VPS Hosting for WordPress If you want to know about VPS Hosting for WordPress or are interested in the best you can ask us for more details and services
ReplyDeleteYou always make a very informative and useful for everyone this time you make a great blog on Improving the Accuracy of Software Development Estimates. At last, I want to thank you for this wonderful post. If you want to take knowledge about Cloud VPS Hosting , you must ask about it.
ReplyDeleteI am regularly reading your content, glad that I came across such an informative post. I really like your information. If you want to grow your online business then you must choose Cloud VPS Hosting
ReplyDeleteI am regularly reading your content, glad that I came across such an informative post. I really like your information. If you want to grow your online business then you must choose Best Cheap VPS
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteExceptionally helpful and awesome article! I just got started with it, but I'm learning more about it every day! Thank you and keep doing fantastic! Australia VPS Server
ReplyDeleteAtaÅŸehir eskort
ReplyDeleteKadıköy eskort
Bostancı eskort
Anadolu Yakası eskort
EP7K