Friday, 8 April 2011

DDK's Guide to the Estimation of IT Projects

As an Architect and the .NET Principal at Oakton NSW, I have to do my fair share of Estimates and Proposals. I am also often asked to review and revise other peoples estimates - to "Quality Stamp" them so to speak. There are some common things that I pick up on - hence the driver behind this blog post.

Summary Diagram of the DDK Estimation Technique:



Here are some of the important things you should consider when developing estimates:

1. Estimate from the bottom up rather than from the top down. The focus and detail of this approach helps you to substantiate your estimates to others and show you've used due diligence in arriving at your estimate. A detailed function point analysis (FPA) is ideal when trying to minimise risk as much as possible (especially for fixed cost projects).
2. There are 2 critical variables which can make a project take much longer than expected and estimated. If you have these components, you need to increase your estimate to more than you expect:
  a. The larger and more complex the project, the more likely it is to take longer than expected.
  b. The more new technologies or new techniques involved, the more likely it is to take longer than expected

3. Communicate with and update the client regularly – Don’t be afraid to re-estimate your tasks and let the client know if things will take longer or shorter than expected. The earlier they know, the earlier corrective action can be taken.

4. Larger projects are harder to estimate. Only estimate small components of a project if possible – don’t estimate all releases. Deliver and estimate in increments if the client/contracts allow.

5. Make sure you consider the following components in your Estimation Checklist before giving it to the client:
  a. End User Documentation
  b. System Documentation
    i. Rollback Plans
    ii. Non Functional Requirements (NFR)
    iii. Technical Design & Specifications
    iv. Functional Design & Specifications
    v. Establishing Metrics (e.g. what performance is expected on what servers and with what data load)
    vi. Test Plans
    vii. Test Scripts
  c. Testing
  d. Training and Change Management (you can't just give someone an application and expect them to start using it effectively!)
  e. User Acceptance Testing
  f. Integration Testing (esp when integrating with Legacy Systems)
  g. Deployment Activities and Productionizing Systems
    i. Especially with complex deployments. These deployment activities are typically ongoing rather than once off.
  h. Meetings Drag Factors such as regular Meetings and Discussions. Team leaders and architects need a drag factor SCRUM meetings and requirement gathering meetings.
    i. Triage Meetings
    ii. Code Reviews
    iii. Level 2 Reviews by Testers e.g. For one of our projects, it took an average of 45 minutes per TFS work item/ticket.
  i. Focus Groups
  j. Licenses
  k. Configuration
    i. Third Party Components
    ii. Firewall Configuration
    iii. Database Configuration
  l. Data Migration
  m. Handovers (Including Warranty Periods)
  n. You need to anticipate who is developing it.
    i. Offshore Models/Engagements – have to spend 2-3 times the effort in non-development activities such as coordination, “hand-holding” and quality assurance when your team is overseas. You also need to spend much more time on specification documents to avoid communication issues.
  o. Temper your Optimism by considering different scenarios
    i. Best Case
    ii. Worst Case
    iii. Likely Case Scenario
  p. If uncertainty on a project is High, add an uncertainty multiplier to your estimate
  q. Don’t estimate more than 8 hours per day.
  r. Budget time for Performance Testing
    i. Time for Load Tests

6. If possible, do a Proof of Concept (PoC) before providing the estimates (or just estimate the PoC) – especially when using new combinations of technologies.

7. Learn from Historical Data. Try to learn from similar projects and how the estimates compared with the actuals. Use your company portal to discover estimates and ask other people in your company for similar estimates that they did.

8. Sanity Check your estimates. i.e. Have your estimates peer-reviewed to help you ensure consistency and coverage in your estimates.

9. Cross-Check your estimates. If you can convince all stakeholders that the estimate is valid and establish buy-in to that estimate, you have the basis of a good estimate.

10. Don’t underestimate Non-Programming/Infrastructure activities.

11. Don’t change estimates if possible if they are based on a solid agreement or understanding. Instead, try and change the commercial arrangements surrounding the estimate. E.g. don’t change the estimates unless they are proven unreasonable – change the rate if possible.

12. All estimates are guesses – try and reduce the uncertainty – but you cannot remove uncertainty completely.

13. Try to make your estimates from a fully informed standpoint - the same as a General shouldn't make strategic decisions in the fog of war. Request and Review as many materials (including scribbled diagrams and requirements documents) as time allows. The more you discuss your understanding of the project and talk to the end users, the more likely you are to make an informed estimate. Again, this allows you to back up your estimates to all stakeholders. If there are factors in the project that are particularly unclear or uncertain, add an "uncertainty" multiplier on the item. Encourage the client to help you clear up this uncertainty if possible.

14. Use the right tools. Microsoft Project is a good start. Learn how to use it properly - plus it can then create and update developer work items for you in Microsoft Team Foundation Server (TFS)  when you are ready to start work.

15. Don't forget that external dependencies (e.g. a 3rd party is creating web services for you, waiting on documentation) will slow the project down. Ideally start the project when work you depend on is complete - otherwise you'll need to factor downtime into your budget, estimates (an expected "downtime" item) and estimate assumptions.

Any thoughts or comments on this guide and checklist are welcome - I will update the list based on feedback.

DDK

44 comments:

durga said...

I actually enjoyed reading through this posting.Many thanks.



Function Point Estimation Training

Bricks in Chennai said...

I actually enjoyed reading through this posting.Many thanks.



Function Point Estimation Training

kosala said...


I actually enjoyed reading through this posting.Many thanks.



Function Point Estimation Training in Chennai

Unknown said...


My cousin recommended this blog and she was totally right keep up the fantastic work!
Function Point Estimation Training

Unknown said...

Testing is the part of software development industry and it creates huge career opportunity for aspiring professionals. Taking software testing training institute in Chennai from reputed IT placement and training institute will ensure huge career opportunity.

VV Dental Hospital said...

Very nice post. Thanks for sharing.

ISO Consultants in Chennai

Anonymous said...

Really awesome blog. Thanks for sharing this informative blog. Suppose if anyone want to learn Software Testing Training in Chennai at a reputed training institutes. If you are looking for best Software Testing Training Institutes in Chennai reach FITA located at Chennai, India. Rated as No.1 placement and training center in Chennai.

Anonymous said...

Hi, I wish to be a regular contributor of your blog. I have read your blog. Your information is really useful for beginner. I did QTP Training in Chennai at Fita training and placement academy which offer best Software Testing Training in Chennai with years of experienced professionals. This is really useful for me to make a bright career.

Unknown said...

Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.
CCNA training in chennai | CCNA training chennai | CCNA course in chennai | CCNA course chennai

Unknown said...

Thanks for sharing informative article on mobile testing. It helped me to understand the future of mobile application development and need of mobile application testing training. Think of joining mobile application testing training in Chennai from reputed IT placement or training academy.

Unknown said...

I have finally found a Worth able content to read. The way you have presented information here is quite impressive. I have bookmarked this page for future use. Thanks for sharing content like this once again. Keep sharing content like this.

Software testing training in chennai | Software testing training | Software testing course chennai

Nandhini said...

The strategy you have posted on this technology helped me to get into the next level and had lot of information in it. The angular js programming language is very popular which are most widely used.
Angularjs Training in Chennai | Angularjs training Chennai

Devi.Angularjs said...

I have read your blog its very attractive and impressive. I like it your blog.

.Net Training in Chennai | .Net Online Training

Dot Net Online Training | LINQ Online Training ASP.NET Online Training

Deepakala said...


Really awesome blog. Your blog is really useful for me. Thanks for sharing this informative blog. Keep update your blog.


ISTQB Training Institute in Chennai

Harish said...

It's an impressive article. Thank you for sharing. Keep updating this kind of useful information.

Manual Testing Training in Chennai | Manual Testing courses in Chennai

Xplore IT Corp said...

Hey Nice Blog!! Thanks For Sharing!!!Wonderful blog & good post.Its really helpful for me, waiting for a more new post. Keep Blogging!
networking training
ccna Training

Anbarasan14 said...

Nice post. Thanks for sharing such recent updates.

Best Spoken English Chennai
Spoken English Chennai
Best English Coaching Center in Chennai
Best English Course in Chennai
Best Spoken English Classes near me
Spoken English Institutes in Chennai
English Spoken Centre Chennai

sultana said...

I am really enjoying reading your well written articles.
It looks like you spend a lot of effort and time on your blog.
I have bookmarked it and I am looking forward to reading new articles. Keep up the good work..
Java Training in Bangalore
Java Training Classes in Bangalore
Java Training Courses in Bangalore
Best Institute For Java Training In Bangalore

Anjali Siva said...

Thanks for taking time to share this valuable information admin. Really informative, keep sharing like this.
UiPath Training in Chennai
UiPath Training Institutes in Chennai
ccna Training in Chennai
ccna course in Chennai
AWS Training in Chennai
RPA Training in Chennai
DevOps Training in Chennai
Angularjs Training in Chennai

Digital Marketing said...

hello sir,
thanks for giving that type of information.
best digital marketing company in delhi
HP PageWide XL 4000 Printer

akash thakur said...

Thanks for giving great kind of information. So useful and practical for me. Thanks for your excellent blog, nice work keep it up thanks for sharing the knowledge.
dining room interior designer in noida

Unknown said...

nice work keep it up thanks for sharing the knowledge.Thanks for sharing this type of information, it is so useful.
Epoxy Grout manufacturer

bestieltscoachingindwarka said...

I feel happy about and learning more about this topic. keep sharing your information regularly for my future reference. This content creates a new hope and inspiration with in me. Thanks for sharing article like this. the information which you have provided is better then other blog.
IELTS Coaching in Dwarka sector 7

Pardeep Mengi said...

Usually I never comment on blogs but your article is so convincing that I never stop myself to say something about it. You’re doing a great job Man,Keep it up.
Study in New Zealand

Indhu said...

Wondeful Explanation with lots of useful information in this blog. Congrats and Keep Rocking.

QTP Training in Chennai | SAP Training in Chennai | SAP ABAP Training in Chennai | SAP FICO Training in Chennai

Sensigo Technologies said...

Software Development Company We specialize in Blockchain development, Artificial Intelligence, DevOps, Mobile App development, Web App development and all your customised online solutions. Get best impression at online by our services, we are familiar for cost effectiveness, quality, delivery and support.
Blockchain Development Company Are you looking for a blockchain developer to meet your organization? Then it makes good sense to hire our expertized blockchain developer. Blockchain has become the most decentralized topic in different organizations.This technology creates a new doorway for payment which is exceedingly secure. It is a magnificent form of Database storage system useful to record information or data. This information can be automatically stored with the help of the cryptography mechanism furnishing more secure data. We will help you to develop and attach to a private blockchain where features that will be track and verify transaction and communication between different departments and stakeholders. The blockchain technology that supports Digital currencies and cryptocurrencies.

gokul said...

Thanks for this informative blog
Top 5 Data science training in chennai
Data science training in chennai
Data science training in velachery
Data science training in OMR
Best Data science training in chennai
Data science training course content
Data science certification in chennai
Data science courses in chennai
Data science training institute in chennai
Data science online course
Data science with python training in chennai
Data science with R training in chennai

Raj said...

Nice information, want to know about Selenium Training In Chennai
Selenium Training In Chennai
Selenium Training
Data Science Training In Chennai
Protractor Training in Chennai
jmeter training in chennai
Rpa Training in Chennai
Rpa Course in Chennai
Selenium Training institute In Chennai
Python Training In Chennai

Raj said...

Rpa Training in Chennai
Rpa Course in Chennai
Blue prism training in Chennai

Raj said...

Data Science Training In Chennai
Data Science Course In Chennai
Data Science Course In Chennai

Chris Hemsworth said...

The article is so informative. This is more helpful for our
best software testing training in chennai
best software testing training institute in chennai with placement
software testing training
courses

software testing training and placement
software testing training online
software testing class
software testing classes in chennai
best software testing courses in chennai
automation testing courses in chennai
Thanks for sharing.

zuan said...

I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly. I am quite sure I will learn much new stuff right here! Good luck for the next!
Web Designing Training Institute in Chennai | web designing and development course | web design and programming courses
Web Designing Course in Chennai | Web Designing Training in Chennai
Web Designing Training Institute in Chennai | Web Designing courses in Chennai with Placement
Mobile Application Development Courses in chennai

Naveen S said...

This is the first & best article to make me satisfied by presenting good content. I feel so happy and delighted. Thank you so much for this article.

Learn Best Digital Marketing Course in Chennai

Digital Marketing Course Training with Placement in Chennai

Best Big Data Course Training with Placement in Chennai

Big Data Analytics and Hadoop Course Training in Chennai

Best Data Science Course Training with Placement in Chennai

Data Science Online Certification Course Training in Chennai

Learn Best Android Development Course Training Institute in Chennai

Android Application Development Programming Course Training in Chennai

Learn Best AngularJS 4 Course Online Training and Placement Institute in Chennai

Learn Digital Marketing Course Training in Chennai

Digital Marketing Training with Placement Institute in Chennai

Learn Seo Course Training Institute in Chennai

Learn Social Media Marketing Training with Placement Institute in Chennai

akalya said...

nice information...
INTERNSHIP PROGRAM FOR BSC STUDENTS
FINAL YEAR PROJECT IDEAS FOR INFORMATION TECHNOLOGY
CCNA COURSE IN CHENNAI
ROBOTICS COURSES IN CHENNAI
INTERNSHIP IN CHENNAI FOR ECE
CCNA TRAINING IN CHENNAI
PYTHON INTERNSHIP IN CHENNAI
INDUSTRIAL VISIT IN CHENNAI
INTERNSHIP FOR CSE STUDENTS IN CHENNAI
ROBOTICS TRAINING IN CHENNAI

akalya said...

nice information...
javascript max int
whatsapp unblock myself software
lady to obtain 10kgs more for rs.100, find the original price per kg?
about bangalore traffic
how to hack whatsapp ethical hacking
the lcm of three different numbers is 1024. which one of the following can never be there hcf?
how to hack tp link wifi
whatsapp unblock hack
sample resume for call center agent for first timers
a merchant sold an article at 10 loss

sugan said...

very nice...and useful
r programming training in chennai
internship in bangalore for ece students
inplant training for mechanical engineering students
summer internships in hyderabad for cse students 2019
final year project ideas for information technology
bba internship certificate
internship in bangalore for ece
internship for cse students in hyderabad
summer training for ece students after second year
robotics courses in chennai


shri said...

very nice.....
internship in chennai for ece students
internships in chennai for cse students 2019
Inplant training in chennai
internship for eee students
free internship in chennai
eee internship in chennai
internship for ece students in chennai
inplant training in bangalore for cse
inplant training in bangalore
ccna training in chennai


arun said...

good
iot training in chennai
internship for mca students in chennai
internships for cse 3rd year students in hyderabad
information technology projects list 2018
ethical hacking course in chennai
ece internships in bangalore
internship for computer science students
internships in chennai for cse students
internship in chennai for cse 2019
internship for ece students in bangalore

iot training in chennai
internship for mca students in chennai
internships for cse 3rd year students in hyderabad
information technology projects list 2018
ethical hacking course in chennai
ece internships in bangalore
internship for computer science students
internships in chennai for cse students
internship in chennai for cse 2019
internship for ece students in bangalore

preethi minion said...

Awesome blogs.....
robotics courses
inplant training in chennai for eee students
paid internships in hyderabad for cse students
list of architectural firms for internship in india
internship for mca students
matlab training in chennai
final year project for it
internship for production engineering students
aeronautical internship
inplant training report for civil engineering

sasi said...

The blog you shared is very good. I expect more information from you like this blog. Thankyou.
Python Training in bangalore
Python Course in Bangalore
Angularjs course Bangalore
Angularjs Training in Bangalore
Web Designing Course in bangalore
Web Development courses in bangalore
Salesforce Course in Bangalore
salesforce training in bangalore
Big Data Training in Bangalore
Hadoop Training in Bangalore

menon said...

Excellent post, From this post i got more detailed informations.
AWS Training in Bangalore
AWS Training in Chennai
AWS Course in Bangalore
Best AWS Training in Bangalore
AWS Training Institutes in Bangalore
AWS Certification Training in Bangalore
Data Science Courses in Bangalore
DevOps Training in Bangalore
PHP Training in Bangalore
DOT NET Training in Bangalore

svrtechnologies said...

This is so elegant and logical and clearly explained. Brilliantly goes through what could be a complex process and makes it obvious.

sap fico training
sap fico videos

SAP Academy said...

SAP Training in Chennai
Java Training in Chennai
CCNA Training in Chennai
Pearson Vue Exam Center in Chennai
QTP Training in Chennai
Selenium Training in Chennai
Hardware and Networking Training in Chennai
SAP ABAP Training in Chennai
SAP FICO Training in Chennai
AWS Training in Chennai

w3webschool said...

Thanks for sharing this valuable information to our vision. You have posted a worthy blog keep sharing.
Digital Marketing Course In Kolkata
Web Design Course In Kolkata
SEO Course In Kolkata