🤓
Isitha's Wiki
  • Isitha's Wiki
  • software_engineering
    • management
      • process_and_management
        • Project Management
        • Agile
        • Projects
        • Waterfall
        • Project Screening
        • Prince2
        • project_manager
        • Project initialisation
      • individuals_and_motivation
        • Teams and teamwork
        • Individuals and Motivation
        • Organisational theory and motivation
        • Project management and leadership
        • Team structures
        • Team advantages/disadvantages
        • How teams form & perform - Tuckman's team development model
      • cost_estimation
        • Function Points
        • Size Estimation
        • Challenges in cost estimation.
        • Cost Estimation
        • Use case points (UCP)
        • Techniques for cost estimation
      • risk_management
        • Risk Management
        • Risk Management Planning
        • Risk management process
    • quality_management
      • Verification vs Validation
      • Quality management
    • languages
      • Erlang
      • C
      • C++
      • JavaScript
      • Lua
      • Go
      • x86 Assembly
      • Racket
      • TypeScript
      • Rust
      • Haskell
      • Java
      • C#
    • frameworks
      • spring
        • Deferred Result
        • Spring
      • react
        • React Basics
      • llvm
        • LLVM Basics
        • SSA form
    • cost_estimation
      • Cocomo
  • computer_science
    • ai
      • Hutter Prize
      • AIXI
    • programming_language_theory
      • types
        • Algebraic Data Type (ADT)
        • Hindler-Milner type system
        • Linear Types
        • Affine types
      • optimisations
        • Data Flow Analysis
        • Basic Blocks
        • Liveness
        • Peephole optimisation
      • codegen
        • Codegen
        • Single Static Assignment (SSA) form
      • parsers
        • Parsing Expression Grammer (PEG) parser
        • LL1 parser
        • Earley parser
        • LR(1) parser
        • LR(0) parser
        • SLR(1) parser
      • semantics
        • Attribute grammars
    • distributed_systems
      • Consistency
      • operating_systems
        • Memory
        • Processes and threads
        • Operating System
      • Challenges of Distributed Systems
      • CAP (or more accurately PACELC) theorem
      • distributed_models
        • Distributed Models
      • distributed_file_systems
        • Distributed File Systems
        • Strong Consistency
        • Google File System
      • CRDT (Conflict-free Replicated Data Types)
      • Computer Networks
      • Distributed Systems
    • data_structures
      • Segment Trees
      • Fibonacci heaps
      • Bloom filter
      • Adaptive Radix Tree
      • Links
      • Judy Arrays
      • Pairing heaps
    • search
      • Inverted Index
    • theoretical
      • Z-order curve
      • Kolmogorov complexity
      • Solomonoff's theory of inductive inference
      • Hilbert Curve
      • Hilbert curve scheduling
    • compression
      • Entropy
      • Compression
  • math
    • set_theory
      • AntiSymmetry
      • Transivity
      • Reflexivity
    • calculus
      • Calculus Basics
    • complex_numbers
      • Complex Numbers
    • linear_algebra
      • Linear Algebra
    • Blogs
  • physics
    • quantum_physics
      • quantum_tunnelling
    • string_theory
      • String Theory
    • relativity
      • Relativity
    • quantum_loop_gravity
      • Quantum Loop Gravity
  • philosophy
    • stoicism
      • Zeno of Citium
      • Epictetus
    • existentialism
      • Simone De Beauvoir
      • Jean-Paul Sartre
      • Albert Camus
      • Soren Kierkegaard
Powered by GitBook
On this page
  1. software_engineering
  2. management
  3. cost_estimation

Techniques for cost estimation

  1. Expert Judgement

    • Several experts on the proposed technique and application estimate project cost. There are discussed and compared until an agreement is reached.

    • Some expert judgement techniques involve polling each expert independently, in some cases for three estimates, pessimistic (p); optimistic (o) and most likely (m).

      Then estimate is computed by e = (p + 4m + o)/6

    • Delphi technique: asks several experts to make an individual judgement of the effort using any method they wish. Then, the average effort is calculated, and presented to all of the experts.

      Each expert is given a chance to revise, discussion maybe involved. This process repeats until a concensus has been reached.

  2. Estimation by analogy

    • The cost of a new project is estimated based on similar projects in the same application domain.

  3. Parkinson's Law

    • This law states the work will fill the time available.

    • The cost is determined by available resources than by objective assessment.

    • For example, if the software is to be delivered in 12 months, and 3 people are available, the effort is 36 person months.

  4. Pricing to win

    • The cost is estimated to be whatever the customer has available to spend on the project. cost depends on budget not functionality.

  5. Algorithmic cost modelling

    • A model is developed using historical cost information based on some software metric (usually its size) to the project cost.

    • When a project effort needs to be estimated, an estimate of the metric is computed.

    • Using the model, effort is predicted.

    • The most general form is := Effort = A Size^B M

      where

      A is a constant factor based on organisational practices.
      Size is the size of the software estimated in a metric of choice.
      B is a value between 1 and 1.5 derived experimentally. 
      M is a multiplier made by combining various attributes (process, stability of reqs, experience, skill).
PreviousUse case points (UCP)Nextrisk_management

Last updated 3 years ago