SlideShare una empresa de Scribd logo
1 de 6
Software Task Estimation




                                                              Copy Number   _____




Copyright © All Rights Reserved.                                                Page 1
Document Control

Change Record


                                   Date               Author                    Version     Change Reference

                                   7th June 2010      Venkat Alagarsamy         Draft       No previous document




Reviewers


                                   Name                                                   Position




Distribution


                                   Copy No.        Name                                        Location

                                   1               Library Master
                                   2
                                   3
                                   4




Connect


                                   Type                   Location

                                   Linkedin               https://www.linkedin.com/in/venkatalagarsamy
                                   Scribd                 http://www.scribd.com/VenkatAlagarsamy
                                   Slideshare             http://www.slideshare.net/VenkatAlagarsamy
                                   Blog                   http://venkatalagarsamy.blogspot.in/
                                   Facebook               https://www.facebook.com/Venkatachalapathi.alagarsamy




Copyright © All Rights Reserved.                                                                                   Page 2
Contents


                                   Document Control ............................................................................................................. 2
                                   Overview ............................................................................................................................ 4
                                         Traditional Methods ................................................................................................... 4
                                         Estimating Life Cycle.................................................................................................. 4
                                         Estimating Program Volume ..................................................................................... 4
                                               How to estimate the project based on KSLOC? ............................................................... 4
                                               How to calculate KSOLC? ................................................................................................ 5




Copyright © All Rights Reserved.                                                                                                                                         Page 3
Overview
Though everyone has a favourite theory as to why software failures occur. In my view projects are failed because
poor cost and incorrect estimates than by technical, political, or team problems. Software cost estimation is not an
art. It is a science. Only few organizations and individuals understand this science.

It is possible to accurately and consistently predict development life cycle costs and schedules for a wide range of
projects. Using this concept, to estimate the cost, the only tool required is spredsheet.


Traditional Methods
The traditional methods that are used to estimate the size and/or volume of the program/task are:
    Code size in kilo bytes (Program Volume)
    Function points


Estimating Life Cycle
Accuracy of cost estimates varies based on the software development stage. Early uncertainty is largely based on
variances in the input parameters to the estimate. Later uncertainty in the estimate is based on the variance to the
estimating models. Initially, at the concept stage, you may be presented with high-level definition of the project.
Though the requirements may not yet be fully understood, the general purpose of the new software can be
recognized. At this point estimates with an accuracy of plus or minus 50% are typical for an experienced estimator
using informal techniques such as historical comparisons and/or group consensus.

The key to accuracy lies in making periodic reestimates through out the project life cycle, there by identifying the
problems rarely enough to take corrective action.


Estimating Program Volume
The first step in preparing an estimate is to characterize the project volume. One measure is the number of source
lines of code or SLOC. A SLOC is a human return line of code that is not a blank line or commen. Same line
should not be counted more than once, even if the code appears several times in an application. Normally the
workload is estimated in terms of KSLOC.

       How to estimate the project based on KSLOC?
       Person months of effort required for the project is arrived by multiplying estimated quantity of KSLOC and
       the effort required per KSLOC. This is the bease of all estimating models.

       Table: Common Values for linear productivity factor#
       The values in the table below are derived from work by Barry Boehm(COCOMO), Raymond Kyle and the
       U.S. Air Force Cost Analysis Agency’s revised COCOMO (REVIC), and firms or organizations working
       directly with the Cost Xpert Group.

                                                                                     Exponential Size Penalty
                         Project Type               Linear Productivity Factor
                                                                                             Factor
         Default                                  2.94                             1.052
         Embedded Development                     2.58                             1.110
         eCommerce Development                    3.6                              1.030
         Web Enabling                             3.3                              1.030
         Military Development                     2.77                             1.072
         ERP                                      3.96                             1.926
         Enterprise Application Integration       4.08                             2.136

       Man months for the smaller projects are calculated as:
       The Person Man-day = KSLOC * Linear Productivity Factor * 30
       For example,
       To web enable an exsisting application of size 10,000 SOLC it would take, 10 * 3.3 * 30 = 990 Man-day.

Copyright © All Rights Reserved.                                                                                       Page 4
The above equation could be used only for smaller projects. Productivity varies with project size. In fact,
       large projects are significantly less productive than small projects- probably because they require increased
       coordination and communication time, plus more rework due to misunderstandings. This would lead to
       penalize large projects for decreased efficiency. The exponential size penalty factor column in above table
       helps with penalty adjustments.

       Man months for the larger projects are calculated as:
       The Person Man-Day = KSLOC * Linear Productivity FactorExponential Sise Penalty Factor * 30
       For the same above example (Web enabling an exsisting application) and the project is big,
       The new estimated time would be, 10 * 3.31.030 * 30 = 1,026 Man-days.

       The above examples are applicable only when the number of KSLOC is known.

       How to calculate KSOLC?
       There are two approaches to this. They are:

                Direct Estimation
                Function points with backfiring

       For both approaches the fundamental input variables are the experts and developers opinion.

       Direct Estimation:

       Normally, the first step in estimating the number of lines of code is the break the project down into modules
       or some other logical grouping.

       For example, a very high-level breakdown might be front-end process, middle-tier process, Database code
       and Reports. Then the developers use their experience in building similar systems to estimate the number of
       source lines of code required.

       It is suggested to get three different types of estimate from every input resource. They are:

                Best case estimate (BEST)
                Worst case estimate (WORST)
                Expected case estimate (EXPECTED)

       Based on these estimates calculate the Mean and Standard Deviation as,

              Mean = (BEST + WORST + (4 * EXPECTED)) / 6
              Standard Deviation = (WORST – BEST) / 6

       Standard Deviation is a measure of how much deviation can be expected in the final number. For example,
       the mean plus three times the Standard Deviation will ensure that there is a 99% probability that the project
       would be completed as estimated.

       Function point estimation with backfiring:

       An alternative to direct SLOC estimating is to start with function points, and then use a process called
       backfiring to convert them to SLOC.

       To determine the number of function points, start by estimating the number of external inputs, external
       interface files, external outputs, external queries and logical internal tables.

                External inputs are largely data entry screens. If a screen contains a tabbed notebook or similar
                 metaphor, each tab counted as a separate external input.
                External interface files are file-based inputs or outputs. Each record format within the file, or, in the
                 case of XML, each data object type, would count as a separate interface file even if residing in the
                 same physical file.
                External outputs are reports.

Copyright © All Rights Reserved.                                                                                         Page 5
    External queries are message or external function-based communication “into” or ”out” of
                 application.
                Logical internal tables are the number of tables in the database, assuming the database was third
                 normal form or better.

       Table: Factors for coverting raw values into factor points

          Raw Type                                                 Function Point Conversion Factor
          External Inputs                                          4
          External Interface Files                                 7
          External Outputs                                         5
          External Queries                                         4
          Logical Internal Tables                                  10

       To convert from these raw values into an actual count of function points, the raw numbers must be
       multiplied by a conversion factor from above table.

       For example, if there is a eCommerce system consisting of ten data entry screens, five interface files, thirty
       reports, twenty queries and ten logical internal tables, then the total function points are:

       (10 * 4) + (5 * 7) + (30 * 5) + (20 * 4) + (10 * 10) = 405 Function Points

       By converting this function points into SOLC using the following table rule.

       Table: Lines of code per function point by programming language

          Language                                                 SLOC per fun ction point
          C++                                                      53
          COBOL                                                    107
          Oracle                                                   25
          SQL                                                      13
          VB                                                       24
          Java                                                     43
          .NET Framework                                           70
          J2EE Framework                                           70
          HTML                                                     14

       For example,
       To implement 405 Function Points using J2EE frame work,
                     it requires 405 * 70 = 30,375 SLOC.
       To implement a eCommerce systems using J2EE frame work,
                     it takes about 30,375 * 3.31.030 * 30 = 3,316 Man-days.




Copyright © All Rights Reserved.                                                                                        Page 6

Más contenido relacionado

Similar a Software Task Estimation

Source Code vs. Binary Code Analysis
Source Code vs. Binary Code AnalysisSource Code vs. Binary Code Analysis
Source Code vs. Binary Code AnalysisCheckmarx
 
Software architecture for developers
Software architecture for developersSoftware architecture for developers
Software architecture for developersChinh Ngo Nguyen
 
Record matching over query results
Record matching over query resultsRecord matching over query results
Record matching over query resultsambitlick
 
Digital Content Retrieval Final Report
Digital Content Retrieval Final ReportDigital Content Retrieval Final Report
Digital Content Retrieval Final ReportKourosh Sajjadi
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownAvisi B.V.
 
Aws development test_environments
Aws development test_environmentsAws development test_environments
Aws development test_environmentssaifam
 
Basic-Project-Estimation-1999
Basic-Project-Estimation-1999Basic-Project-Estimation-1999
Basic-Project-Estimation-1999Michael Wigley
 
GenRays Project Scope Document
GenRays Project Scope DocumentGenRays Project Scope Document
GenRays Project Scope DocumentApril Drake
 
Browser core red bus presentation
Browser core red bus presentation Browser core red bus presentation
Browser core red bus presentation redBusTech
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak
 
Design Patterns in Electronic Data Management
Design Patterns in Electronic Data ManagementDesign Patterns in Electronic Data Management
Design Patterns in Electronic Data ManagementGlen Alleman
 
PROJECT FAST INVENTORY Delivere.docx
PROJECT FAST INVENTORY  Delivere.docxPROJECT FAST INVENTORY  Delivere.docx
PROJECT FAST INVENTORY Delivere.docxwoodruffeloisa
 
Single Page Application Best practices
Single Page Application Best practicesSingle Page Application Best practices
Single Page Application Best practicesTarence DSouza
 
Trevo project management documentation
Trevo project management documentationTrevo project management documentation
Trevo project management documentationTuononenP
 
Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Owen Muzi
 

Similar a Software Task Estimation (20)

Source Code vs. Binary Code Analysis
Source Code vs. Binary Code AnalysisSource Code vs. Binary Code Analysis
Source Code vs. Binary Code Analysis
 
Software architecture for developers
Software architecture for developersSoftware architecture for developers
Software architecture for developers
 
Record matching over query results
Record matching over query resultsRecord matching over query results
Record matching over query results
 
Digital Content Retrieval Final Report
Digital Content Retrieval Final ReportDigital Content Retrieval Final Report
Digital Content Retrieval Final Report
 
ASAS 2014 - Simon Brown
ASAS 2014 - Simon BrownASAS 2014 - Simon Brown
ASAS 2014 - Simon Brown
 
Aws development test_environments
Aws development test_environmentsAws development test_environments
Aws development test_environments
 
Performance testing wreaking balls
Performance testing wreaking ballsPerformance testing wreaking balls
Performance testing wreaking balls
 
Basic-Project-Estimation-1999
Basic-Project-Estimation-1999Basic-Project-Estimation-1999
Basic-Project-Estimation-1999
 
GenRays Project Scope Document
GenRays Project Scope DocumentGenRays Project Scope Document
GenRays Project Scope Document
 
Browser core red bus presentation
Browser core red bus presentation Browser core red bus presentation
Browser core red bus presentation
 
Lotus
LotusLotus
Lotus
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud ManagementSukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak-Agile-DevOps-Cloud Management
 
Design Patterns in Electronic Data Management
Design Patterns in Electronic Data ManagementDesign Patterns in Electronic Data Management
Design Patterns in Electronic Data Management
 
PROJECT FAST INVENTORY Delivere.docx
PROJECT FAST INVENTORY  Delivere.docxPROJECT FAST INVENTORY  Delivere.docx
PROJECT FAST INVENTORY Delivere.docx
 
NEW BACKEND.pdf
NEW BACKEND.pdfNEW BACKEND.pdf
NEW BACKEND.pdf
 
sada_shopping
sada_shoppingsada_shopping
sada_shopping
 
Guide to Software Estimation
Guide to Software EstimationGuide to Software Estimation
Guide to Software Estimation
 
Single Page Application Best practices
Single Page Application Best practicesSingle Page Application Best practices
Single Page Application Best practices
 
Trevo project management documentation
Trevo project management documentationTrevo project management documentation
Trevo project management documentation
 
Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314Cw comp1640 211453_mo233_20131120_214054_1314
Cw comp1640 211453_mo233_20131120_214054_1314
 

Más de Venkat Alagarsamy

Wearable Tech - What is Next?
Wearable Tech - What is Next?Wearable Tech - What is Next?
Wearable Tech - What is Next?Venkat Alagarsamy
 
Enterprise mobileapplicationsecurity
Enterprise mobileapplicationsecurityEnterprise mobileapplicationsecurity
Enterprise mobileapplicationsecurityVenkat Alagarsamy
 
Application of RFID in Fashion Retail outlet
Application of RFID in Fashion Retail outletApplication of RFID in Fashion Retail outlet
Application of RFID in Fashion Retail outletVenkat Alagarsamy
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testingVenkat Alagarsamy
 
Cross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterpriseCross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterpriseVenkat Alagarsamy
 

Más de Venkat Alagarsamy (8)

Wearable Tech - What is Next?
Wearable Tech - What is Next?Wearable Tech - What is Next?
Wearable Tech - What is Next?
 
IoT in Healthcare
IoT in HealthcareIoT in Healthcare
IoT in Healthcare
 
Introduction to NFC
Introduction to NFCIntroduction to NFC
Introduction to NFC
 
Enterprise mobileapplicationsecurity
Enterprise mobileapplicationsecurityEnterprise mobileapplicationsecurity
Enterprise mobileapplicationsecurity
 
Application of RFID in Fashion Retail outlet
Application of RFID in Fashion Retail outletApplication of RFID in Fashion Retail outlet
Application of RFID in Fashion Retail outlet
 
Introduction to RFID
Introduction to RFIDIntroduction to RFID
Introduction to RFID
 
Introduction to software testing
Introduction to software testingIntroduction to software testing
Introduction to software testing
 
Cross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterpriseCross platform mobile application architecture for enterprise
Cross platform mobile application architecture for enterprise
 

Último

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Software Task Estimation

  • 1. Software Task Estimation Copy Number _____ Copyright © All Rights Reserved. Page 1
  • 2. Document Control Change Record Date Author Version Change Reference 7th June 2010 Venkat Alagarsamy Draft No previous document Reviewers Name Position Distribution Copy No. Name Location 1 Library Master 2 3 4 Connect Type Location Linkedin https://www.linkedin.com/in/venkatalagarsamy Scribd http://www.scribd.com/VenkatAlagarsamy Slideshare http://www.slideshare.net/VenkatAlagarsamy Blog http://venkatalagarsamy.blogspot.in/ Facebook https://www.facebook.com/Venkatachalapathi.alagarsamy Copyright © All Rights Reserved. Page 2
  • 3. Contents Document Control ............................................................................................................. 2 Overview ............................................................................................................................ 4 Traditional Methods ................................................................................................... 4 Estimating Life Cycle.................................................................................................. 4 Estimating Program Volume ..................................................................................... 4 How to estimate the project based on KSLOC? ............................................................... 4 How to calculate KSOLC? ................................................................................................ 5 Copyright © All Rights Reserved. Page 3
  • 4. Overview Though everyone has a favourite theory as to why software failures occur. In my view projects are failed because poor cost and incorrect estimates than by technical, political, or team problems. Software cost estimation is not an art. It is a science. Only few organizations and individuals understand this science. It is possible to accurately and consistently predict development life cycle costs and schedules for a wide range of projects. Using this concept, to estimate the cost, the only tool required is spredsheet. Traditional Methods The traditional methods that are used to estimate the size and/or volume of the program/task are:  Code size in kilo bytes (Program Volume)  Function points Estimating Life Cycle Accuracy of cost estimates varies based on the software development stage. Early uncertainty is largely based on variances in the input parameters to the estimate. Later uncertainty in the estimate is based on the variance to the estimating models. Initially, at the concept stage, you may be presented with high-level definition of the project. Though the requirements may not yet be fully understood, the general purpose of the new software can be recognized. At this point estimates with an accuracy of plus or minus 50% are typical for an experienced estimator using informal techniques such as historical comparisons and/or group consensus. The key to accuracy lies in making periodic reestimates through out the project life cycle, there by identifying the problems rarely enough to take corrective action. Estimating Program Volume The first step in preparing an estimate is to characterize the project volume. One measure is the number of source lines of code or SLOC. A SLOC is a human return line of code that is not a blank line or commen. Same line should not be counted more than once, even if the code appears several times in an application. Normally the workload is estimated in terms of KSLOC. How to estimate the project based on KSLOC? Person months of effort required for the project is arrived by multiplying estimated quantity of KSLOC and the effort required per KSLOC. This is the bease of all estimating models. Table: Common Values for linear productivity factor# The values in the table below are derived from work by Barry Boehm(COCOMO), Raymond Kyle and the U.S. Air Force Cost Analysis Agency’s revised COCOMO (REVIC), and firms or organizations working directly with the Cost Xpert Group. Exponential Size Penalty Project Type Linear Productivity Factor Factor Default 2.94 1.052 Embedded Development 2.58 1.110 eCommerce Development 3.6 1.030 Web Enabling 3.3 1.030 Military Development 2.77 1.072 ERP 3.96 1.926 Enterprise Application Integration 4.08 2.136 Man months for the smaller projects are calculated as: The Person Man-day = KSLOC * Linear Productivity Factor * 30 For example, To web enable an exsisting application of size 10,000 SOLC it would take, 10 * 3.3 * 30 = 990 Man-day. Copyright © All Rights Reserved. Page 4
  • 5. The above equation could be used only for smaller projects. Productivity varies with project size. In fact, large projects are significantly less productive than small projects- probably because they require increased coordination and communication time, plus more rework due to misunderstandings. This would lead to penalize large projects for decreased efficiency. The exponential size penalty factor column in above table helps with penalty adjustments. Man months for the larger projects are calculated as: The Person Man-Day = KSLOC * Linear Productivity FactorExponential Sise Penalty Factor * 30 For the same above example (Web enabling an exsisting application) and the project is big, The new estimated time would be, 10 * 3.31.030 * 30 = 1,026 Man-days. The above examples are applicable only when the number of KSLOC is known. How to calculate KSOLC? There are two approaches to this. They are:  Direct Estimation  Function points with backfiring For both approaches the fundamental input variables are the experts and developers opinion. Direct Estimation: Normally, the first step in estimating the number of lines of code is the break the project down into modules or some other logical grouping. For example, a very high-level breakdown might be front-end process, middle-tier process, Database code and Reports. Then the developers use their experience in building similar systems to estimate the number of source lines of code required. It is suggested to get three different types of estimate from every input resource. They are:  Best case estimate (BEST)  Worst case estimate (WORST)  Expected case estimate (EXPECTED) Based on these estimates calculate the Mean and Standard Deviation as, Mean = (BEST + WORST + (4 * EXPECTED)) / 6 Standard Deviation = (WORST – BEST) / 6 Standard Deviation is a measure of how much deviation can be expected in the final number. For example, the mean plus three times the Standard Deviation will ensure that there is a 99% probability that the project would be completed as estimated. Function point estimation with backfiring: An alternative to direct SLOC estimating is to start with function points, and then use a process called backfiring to convert them to SLOC. To determine the number of function points, start by estimating the number of external inputs, external interface files, external outputs, external queries and logical internal tables.  External inputs are largely data entry screens. If a screen contains a tabbed notebook or similar metaphor, each tab counted as a separate external input.  External interface files are file-based inputs or outputs. Each record format within the file, or, in the case of XML, each data object type, would count as a separate interface file even if residing in the same physical file.  External outputs are reports. Copyright © All Rights Reserved. Page 5
  • 6. External queries are message or external function-based communication “into” or ”out” of application.  Logical internal tables are the number of tables in the database, assuming the database was third normal form or better. Table: Factors for coverting raw values into factor points Raw Type Function Point Conversion Factor External Inputs 4 External Interface Files 7 External Outputs 5 External Queries 4 Logical Internal Tables 10 To convert from these raw values into an actual count of function points, the raw numbers must be multiplied by a conversion factor from above table. For example, if there is a eCommerce system consisting of ten data entry screens, five interface files, thirty reports, twenty queries and ten logical internal tables, then the total function points are: (10 * 4) + (5 * 7) + (30 * 5) + (20 * 4) + (10 * 10) = 405 Function Points By converting this function points into SOLC using the following table rule. Table: Lines of code per function point by programming language Language SLOC per fun ction point C++ 53 COBOL 107 Oracle 25 SQL 13 VB 24 Java 43 .NET Framework 70 J2EE Framework 70 HTML 14 For example, To implement 405 Function Points using J2EE frame work, it requires 405 * 70 = 30,375 SLOC. To implement a eCommerce systems using J2EE frame work, it takes about 30,375 * 3.31.030 * 30 = 3,316 Man-days. Copyright © All Rights Reserved. Page 6