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

25 comments:

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

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.

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

Anonymous 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

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

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

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

Mithun said...

Informative post on cloud technology AWS training in chennai. Thanks cloud is now implemented in SAP HANA module too for SAP Training in Chennai.

subha said...

Link building, simply put, is the process of getting other websites to link back to your website. ... Building links is one of the many tactics used in search engine optimization (SEO) because links are a signal to Google that your site is a quality resource worthy of citation. share more
Ai & Artificial Intelligence Course in Chennai
PHP Training in Chennai
Ethical Hacking Course in Chennai Blue Prism Training in Chennai
UiPath Training in Chennai

surya said...

Such a very useful article. Very interesting to read this article. Thanks for sharing this info,it is very helpful.
Angular JS Training in Chennai | Certification | Online Training Course | Angular JS Training in Bangalore | Certification | Online Training Course | Angular JS Training in Hyderabad | Certification | Online Training Course | Angular JS Training in Coimbatore | Certification | Online Training Course | Angular JS Training | Certification | Angular JS Online Training Course

Ishu Sathya said...



A Great read for me, Well written technically on recent technology

Are you looking for Ethical hacking related job with unexpected Pay, then visit below link


Ethical Hacking Course in Chennai
Ethical Hacking Online Course
Ethical Hacking Course
Hacking Course
Hacking Course in Chennai
Ethical Hacking Training in Chennai
hacking course online
learn ethical hacking online
hacking classes online
best ethical hacking course online
best hacking course online
ethical hacking online training
certified ethical hacker course online

harshni said...

This blog is the general information for the feature. You got a good work for these blog.We have a developing our creative content of this mind.Thank you for this blog. This for very interesting and useful.
Artificial Intelligence Training in Chennai

Ai Training in Chennai

Artificial Intelligence training in Bangalore

Ai Training in Bangalore

Artificial Intelligence Training in Hyderabad | Certification | ai training in hyderabad

Artificial Intelligence Online Training

Ai Online Training

Blue Prism Training in Chennai



lavanya said...

Thanks for sharing an informative blog keep rocking bring more details.I like the helpful info you provide in your articles. I’ll bookmark your weblog and check again here regularly.
Java training in Chennai

Java Online training in Chennai

Java Course in Chennai

Best JAVA Training Institutes in Chennai

Java training in Bangalore

Java training in Hyderabad

Java Training in Coimbatore

Java Training

Java Online Training

surya said...

I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here.
angular js training in chennai

angular training in chennai

angular js online training in chennai

angular js training in bangalore

angular js training in hyderabad

angular js training in coimbatore

angular js training

angular js online training

sudhan said...


very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article. This article resolved my all queries.
Cyber Security Training Course in Chennai | Certification | Cyber Security Online Training Course | Ethical Hacking Training Course in Chennai | Certification | Ethical Hacking Online Training Course | CCNA Training Course in Chennai | Certification | CCNA Online Training Course | RPA Robotic Process Automation Training Course in Chennai | Certification | RPA Training Course Chennai | SEO Training in Chennai | Certification | SEO Online Training Course

Ramya said...

This blog is the general information for the feature. You got a good work for these blog.We have a developing our creative content of this mind.Thank you for this blog. This for very interesting and useful.
DevOps Training in Chennai

DevOps Online Training in Chennai

DevOps Training in Bangalore

DevOps Training in Hyderabad

DevOps Training in Coimbatore

DevOps Training

DevOps Online Training

devi said...

Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work.
Data Science Training In Chennai

Data Science Online Training In Chennai

Data Science Training In Bangalore

Data Science Training In Hyderabad

Data Science Training In Coimbatore

Data Science Training

Data Science Online Training

vivekvedha said...

Wondeful Explanation with lots of useful information in this blog.
acte chennai

acte complaints

acte reviews

acte trainer complaints

acte trainer reviews

acte velachery reviews complaints

acte tambaram reviews complaints

acte anna nagar reviews complaints

acte porur reviews complaints

acte omr reviews complaints

prabhu said...

Nice article i was really impressed by seeing this article, it was very interesting and it is very useful for me.This is incredible,I feel really happy to have seen your webpage.I gained many unknown information, the way you have clearly explained is really fantastic.keep posting such useful information.

IELTS Coaching in chennai

German Classes in Chennai

GRE Coaching Classes in Chennai

TOEFL Coaching in Chennai

spoken english classes in chennai | Communication training

balamarketer said...

Azure job support involves providing assistance to professionals working with Microsoft Azure, addressing challenges, and ensuring the successful implementation of Azure services. Here's an outline for Azure job suppor