Chapter 2 Evolution of Software Economics 2 1

  • Slides: 22
Download presentation
Chapter 2 – Evolution of Software Economics

Chapter 2 – Evolution of Software Economics

2. 1 Software Economics u Five fundamental parameters that can be abstracted from software

2. 1 Software Economics u Five fundamental parameters that can be abstracted from software costing models: • Size • Process • Personnel • Environment • Required Quality Overviewed in Chapter 2 u Much more detail in Chapter 3. u

Software Economics – Parameters (1 of 4) u u Size: measured in SLOC or

Software Economics – Parameters (1 of 4) u u Size: measured in SLOC or number of Function Points required to realize the desired capabilities. • Function Points – a better metric earlier in project • LOC (SLOC, KLOC…) a better metric later in project • These are not new metrics for measuring size, effort, personnel needs, … Process – used to guide all activities. • Workers (roles), artifacts, activities… • Support heading toward target and eliminate nonessential / less important activities • Process critical in determining software economics Process u Component-based development; application domain…iterative approach, use-case driven…

Software Economics – Parameters (2 of 4) u Personnel – capabilities of the personnel

Software Economics – Parameters (2 of 4) u Personnel – capabilities of the personnel in general and in the application domain in particular • Motherhood: get the right people; good people; Can’t always do this. • Much specialization nowadays. Some are terribly expensive. • Emphasize ‘team’ and team responsibilities…

Software Economics – Parameters (3 of 4) u Environment – the tools / techniques

Software Economics – Parameters (3 of 4) u Environment – the tools / techniques / automated procedures used to support the development effort. • Integrated tools; automated tools for modeling, testing, configuration, etc… u Required Quality – the functionality provided; performance, reliability, modifiability, scalability, ….

Software Economics – Parameters (4 of 4) Process Effort = (personnel)(environment)(quality)(size ) (Note: effort

Software Economics – Parameters (4 of 4) Process Effort = (personnel)(environment)(quality)(size ) (Note: effort is exponentially related to size…. ) What this means is that a 10, 000 line application will cost less per line than a 100, 000 line application. u These figures – surprising to the uninformed – are true. u Fred Brooks – Mythical Man month – cites over and over that the communications one incurs when adding individuals to a project is very significant. u Tend to have more reviews, meetings, training, biases, getting people up to speed, personal issues…

Notice the Process Trends…. for three generations of software economics u Conventional development (60

Notice the Process Trends…. for three generations of software economics u Conventional development (60 s and 70 s) • Application – custom • Size – 100% custom • Process – ad hoc …(discuss) – laissez faire; SDLC; customization of process to domain / mission u Transition (80 s and 90 s) • Environmental/tools – off the shelf, separate • Size: 30% component-based; 70% custom • Process: repeatable u Modern Practices (2000 and later) • Environment/tools: off-the-shelf; integrated • Size: 70% component-based; 30% custom • Process: managed; measured (refer to CMM – Software)

Notice Performance Trends…. for three generations of software economics u Conventional: Predictably bad: (60

Notice Performance Trends…. for three generations of software economics u Conventional: Predictably bad: (60 s/70 s) • always over budget and schedule • All custom components; primitive languages; • Performance, quality almost always less than great. u Transition: Unpredictable (80 s/90 s) Infrequently on budget or on schedule u Enter software engineering; ‘repeatable process; ’ project management u Some commercial products available – databases, networking, GUIs; But with huge growth in complexity, (especially to distributed systems) existing languages and technologies not enough for desired business performance u u Modern Practices: Predictable (>2000 s) u Usually on budget; on schedule. Managed, measured process. Integrated environments; 70% off-the-shelf components. Component-based applications can be built very rapidly; iterative development; stakeholder emphasis

All Advances Interrelated… Improved ‘process’ requires ‘improved tools’ (environmental support…) u Better ‘economies of

All Advances Interrelated… Improved ‘process’ requires ‘improved tools’ (environmental support…) u Better ‘economies of scale’ because u • Applications living for years; • Similarly-developed applications • First efforts in common architectures, processes, iterative processes, etc. , all have initial high overhead; successive efforts bring out economies of scale…and much better return on investment. (See p. 25) • “All simple systems have been developed!”

2. 2 Pragmatic Software Cost Estimation u Little available on estimating cost for projects

2. 2 Pragmatic Software Cost Estimation u Little available on estimating cost for projects using iterative development. • Difficult to hold all the controls constant Application domain; project size; criticality; etc. Very ‘artsy. ’ u Metrics (SLOC, function points, etc. ) NOT consistently applied EVEN in the same application domain! u Definitions of SLOC and function points are not even consistent! u

Three Issues in Software Cost Estimation: 1. Which cost estimation model should be used?

Three Issues in Software Cost Estimation: 1. Which cost estimation model should be used? u 2. Should software size be measured using SLOC or Function Points? (there are others too…) u 3. What are the determinants of a good estimate? (How do we know our estimate is good? ? ) u

Cost Estimation Models Many available. u Many organization-specific models too based on their own

Cost Estimation Models Many available. u Many organization-specific models too based on their own histories, experiences. . . u COCOMO, developed by Barry Boehm, is the most popular cost estimation model. u Two primary approaches: u • Source lines of code (SLOC) and • Function Points (FP)

Source Lines of Code (SLOC) u u Most people feel comfortable with the ‘notion’

Source Lines of Code (SLOC) u u Most people feel comfortable with the ‘notion’ of LOC. Not true with Function points, classes, use cases, files, subsystems, components or other metrics…. See Appendix D Addresses how to count SLOC where we have reuse, etc. In general, using SLOC is a more u SLOC has great value – especially useful and precise basis of are custom-built. measurement. u u where apps • Easy to measure and instrument – have tools. Today – with use of components, source-code generation tools, and objects have rendered SLOC somewhat ambiguous. We often don’t know the SLOC – but do we care? How do we factor this in?

Source Lines of Code (SLOC) See Appendix D • Addresses how to count SLOC

Source Lines of Code (SLOC) See Appendix D • Addresses how to count SLOC where we have reuse, etc. u In general, using SLOC is a more useful and precise basis of measurement. u More later… u

Function Points u Use of Function Points has many proponents. (International Function Point User’s

Function Points u Use of Function Points has many proponents. (International Function Point User’s Group – 1984) – “is the dominant software measurement association in the industry. ” • Check out their web site • Tremendous amounts of information / references u Major advantage: Measuring with function points is independent of the technology used and is thus better for comparisons among projects.

Function Points measure external user inputs, external outputs, internal data groups, external data interfaces,

Function Points measure external user inputs, external outputs, internal data groups, external data interfaces, external inquiries, etc. u Major disadvantage: Hard to actually measure these things. u • Definitions are primitive and inconsistent • Difficult to measure some of these things from existing architectural (analysis design, …) artifacts.

But: Regardless, cost estimation is a real necessity!!! u All projects require estimation in

But: Regardless, cost estimation is a real necessity!!! u All projects require estimation in the beginning (inception) and adjustments… u No project is arbitrarily started with no cost / schedule / budget / manpower / resource estimates (among other things) u

How good are the models? u u u COCOMO is said to be ‘within

How good are the models? u u u COCOMO is said to be ‘within 20%’ of actual costs ’ 70% of the time. ’ Still kind of uncertain and more scary when one realizes that there is already missed dates, etc. in conventional development. Yet, RFPs on contracts force contractors to estimate the project costs for their survival.

Top down versus bottom up u u Some estimators perform a bottom up (substantiating

Top down versus bottom up u u Some estimators perform a bottom up (substantiating a target cost) rather than approaching it a top down, which would yield a ‘should cost. ’ Some manager create a ‘target cost’ and then play with parameters and sizing until the target cost can be justified… • Attempts to win proposals, convince people, … u This does, of course, force the project manager to assess risk and discuss things with stakeholders…(‘should’ anyway…)

Last ‘Real Brief Look’ u u Only one familiar with many parameters (previously articulated)

Last ‘Real Brief Look’ u u Only one familiar with many parameters (previously articulated) can derive a credible estimate. But the process is long and awkward – fraught with pitfalls and unknowns. • Once done and ‘agreed to, ’ the team must live with the results… u More later in course. But for now

A Good Project Estimate: u u u Is conceived and supported by the project

A Good Project Estimate: u u u Is conceived and supported by the project manager, architecture team, development team, and test team accountable for performing the work. Is accepted by all stakeholders as ambitious but doable Is based on a well-defined software cost model with a credible basis Is based on a database of relevant project experience that includes similar processes, similar technologies, similar environments, similar quality requirements, and similar people, and Is defined in enough detail so that its key risk areas are understood and the probability of success is objectively assessed.

A Good Project Estimate u u Quoting: “An ‘ideal estimate’ would be derived from

A Good Project Estimate u u Quoting: “An ‘ideal estimate’ would be derived from a mature cost model with an experience base that reflects multiple similar projects done by the same team with the same mature processes and tools. Although this situation rarely exists when a project team embarks on a new project, good estimates can be achieved in a straightforward manner in later life-cycle phases of a mature project using a mature process. ”