31
Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor [email protected] du.pk Department of Computing Hamdard Institute of Engineering & Technology Hamdard University Lecture # 01 Economics and Fundamental Concepts

Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Embed Size (px)

DESCRIPTION

Software Engineering Economic Definition of Economics  Macro-economics is the study of how people make decisions in resource-limited situations on a national scale.  It deals with the effects of decisions that national leaders make on such issues as..  tax rates, interest rates,  and foreign and trade policy  Micro-economics is the study of how people make decisions in resource-limited situations on a more personal scale.  It deals with the decisions that individuals and organizations make on such issues as..  how much insurance to pay (for a given risk)  which word processor to buy  what prices to charge for their products or services 3 Hamdard Univeristy

Citation preview

Page 1: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Software Engineering Economics

SE(481)

Asad Ur RehmanAssistant Professor

[email protected]

Department of ComputingHamdard Institute of Engineering & Technology

Hamdard University

Lecture # 01

Economics andFundamental Concepts

Page 2: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Definition of Economics

Economics as “a social science concerned chiefly with description and analysis of the production, distribution, and consumption of goods and services.”

Another definition of economics that is more helpful in explaining how economics relates to software engineering.

Economics is the study of how people make decisions in resource limited situation. Ex: We have only 5 developer, take less time if we had 8 developers Ex: In 3 months we have give you 200 features

2

Page 3: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Definition of Economics Macro-economics is the study of how people make decisions

in resource-limited situations on a national scale. It deals with the effects of decisions that national leaders

make on such issues as . . tax rates, interest rates, and foreign and trade policy

Micro-economics is the study of how people make decisions in resource-limited situations on a more personal scale.

It deals with the decisions that individuals and organizations make on such issues as . . how much insurance to pay (for a given risk) which word processor to buy what prices to charge for their products or services

3

Page 4: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics & SW Engg Management

Micro-economics deals with Software Engineering decisions. SW-Engg deals with limited resource

Never have enough time and money to cover all good features in a Software product

Decision situations in which you had to determine some key features to develop

Many decision involving limited resource where SW-Engg Economics techniques will provide useful assistance.

4

Page 5: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics & SW Engg Management

To have an idea what kind of situation you could have at senior management level, example is given below

Feasibility Phase Plans and Requirements Phase Product Design Phase Programming Phase Integration and Test Phase Maintenance Phase

5

Page 6: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics & SW Engg Management

Feasibility Phase How much should we invest in information system analyses (user questionnaires and interviews current-system analysis,

workload characterizations, simulations, scenarios, prototypes) in order to converge on an appropriate definition and concept of

operation for the system we plan to implement?

Plans and Requirements Phase How rigorously should we specify requirements? How much should we invest in requirements validation activities

(completeness, consistency, and traceability checks, analytic models, simulations, prototypes) before proceeding to design and develop a software system?

6

Page 7: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics & SW Engg Management

Product Design Phase Should we organize the software to make it possible to use a

complex piece of existing software that generally but not completely meets our requirements?

Programming Phase Given a choice between three data storage and retrieval

schemes that are primarily . . execution-time efficient storage efficient, and easy to modify

which of these should we choose to implement ?

7

Page 8: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics & SW Engg Management

Integration and Test Phase How much testing and formal verification should we perform

on a product before releasing it to users?

Maintenance Phase Given an extensive list of suggested product improvements,

which ones should we implement first?

Phase-out Given an aging, hard-to-modify software product, should we

replace it with a new product, restructure it, or leave it alone?

8

Page 9: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard Univeristy

9 SW Engg & Economics

Page 10: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

SW Engineering & Economics

Software engineering economics is about making decisions related to software engineering in a business context (biz justification).

Success of a software product, service, and solution depends on good business management.

In many organizations, software business relationships to software development and engineering remain vague.

10

Page 11: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

SW Engineering & Economics

Economics is the study of value, costs, resources, and their relationship in a given context or situation related to financial benefits (Biz).

In the discipline of software engineering, activities have costs, but the resulting software itself has economic attributes as well.

Software engineering economics provides a way to study the attributes of software and software processes in a systematic way that relates them to economic measures.

11

Page 12: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

SW Engineering & Economics

Economic measures can be weighed and analyzed when making decisions that are within the scope of a software house and those within the integrated scope of an entire production or acquiring business.

Software engineering economics is concerned with aligning software technical decisions with the business goals of the organization.

12

Page 13: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

SW Engineering & Economics Decisions like “Should we use a specific component?” may look

easy from a technical perspective, but can have serious implications on the business viability of a software project and the resulting product.

Often engineers wonder whether such concerns apply at all, as they are “only engineers.”

Economic analysis and decision-making are important engineering considerations because engineers are capable of evaluating decisions both technically and from a business perspective.

Page 14: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard Univeristy

14 Fundamental Concepts

Page 15: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental Concepts Finance

Finance is the branch of economics concerned with issues such as allocation, management, acquisition, and investment of resources. Finance is an element of every organization, including software houses.

Finance deals with what was the budgeted money and how much is actually spent. Finance is concerned with providing the funds for an organization’s activities.

This involves balancing risk and profitability, while attempting to maximize an organization’s wealth and the value of its stock.

15

Page 16: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsAccounting

The primary role of accounting is to measure the organization’s actual financial performance .

Also to communicate financial information about a business entity to stakeholders, such as Shareholders Financial auditors Investors

Accounting is part of finance. It allows people whose money is being used to run an organization to know the results of their investment.

16

Page 17: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsControlling

Controlling is an element of finance and accounting.

Controlling involves measuring and correcting the performance of finance and accounting.

It ensures that an organization’s objectives and plans are accomplished.

Controlling cost is to detect variances of actual costs from planned costs.

17

Page 18: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsCash Flow

Cash flow is the movement of money into or out of a business, project, or financial product over a given period.

The concepts of cash flow instances and cash flow streams are used to describe the business perspective of a proposal.

To make a meaningful business decision about any specific proposal, that proposal will need to be evaluated from a business perspective.

18

Page 19: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics FundamentalsCash Flow

The term cash flow stream refers to the set of cash flow instances over time that is caused by carrying out some given proposal.

The cash flow stream is, in effect, the complete financial picture of that proposal. How much money goes out? When does it go out? How much money comes in? When does it come in?

19

Page 20: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Economics FundamentalsDecision-Making Process

If we assume that candidate solution solve a given technical problem equally well, why should the organization care which one is chosen?

The answer is that there is usually a large difference in the costs and incomes from the different solutions.

Commercial, off-the-shelf , object request broker product might cost a few thousand dollars, but the effort to develop a homegrown service that gives the same functionality could easily cost several hundred times that amount (build or buy).

20

Page 21: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsDecision-Making Process

If the candidate solutions all adequately solve the problem from a technical perspective, then the selection of the most appropriate alternative should be based on commercial factors such as Optimizing total cost of ownership (TCO) Maximizing the short-term return on investment (ROI)

A systematic process for making decisions will achieve transparency and allow later justification.

Governance criteria in many organizations demand selection from at least two alternatives.

21

Page 22: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsDecision-Making Process

221) It starts with a business

challenge (problem) at hand

2) Define the steps to identify alternative solutions

3) Define selection criteria

4) Evaluate the solutions

5) implement one selected solution

6) Monitor the performance of that solution

1

2

3

4

5 6

Page 23: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsValuation

A financial basis for value-based comparison is comparing two or more cash flows.

Several bases of comparison are available, including . . Present worth Future worth Internal rate of return Payback period

23

Page 24: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsValuation

The decision-making process— be it financial decision making or other— is about maximizing value.

The alternative that maximizes total value should always be chosen.

Note that value can’t always be expressed in terms of money. For example, whether an item is a brand name or not can significantly affect its perceived value.

Relevant values that can’t be expressed in terms of money still need to be expressed in similar terms so that they can be evaluated objectively.

24

Page 25: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsInflation and Depreciation

Inflation describes long-term trends in prices. Inflation means that the same things cost more than they did before.

If the planning horizon of a business decision is longer than a few years, or if the inflation rate is over a couple of percentage points annually, it can cause noticeable changes in the value of a proposal.

The present time value therefore needs to be adjusted for inflation rates and also for exchange rate fluctuations.

25

Page 26: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsTime-Value of Money

One of the most fundamental concepts in finance—and therefore, in business decisions— is that money has time-value: its value changes over time.

A specific amount of money right now almost always has a different value than the same amount of money at some other time.

This concept has been around since the earliest recorded human history and is commonly known as time-value.

26

Page 27: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsTime-Value of Money

In order to compare proposals or portfolio elements, they should be normalized in cost, value, and risk to the net present value.

Currency exchange variations over time need to be taken into account based on historical data.

This is particularly important in cross-border developments of all kinds.

27

Page 28: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsEfficiency

Efficiency means “doing things right.” Economic efficiency of a process, activity, or task is the ratio of resources actually consumed to resources expected to be consumed in accomplishing the process, activity, or task.

An efficient behavior, like an effective behavior, delivers results—but keeps the necessary effort to a minimum.

Factors that may affect efficiency in software engineering include product complexity, quality requirements time pressure, process capability team distribution, interrupts feature churn, tools and programming language

28

Page 29: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Fundamental ConceptsProductivity

Productivity is the ratio of output over input from an economic perspective.

Output is the value delivered. Input covers all resources (e.g., effort) spent to

generate the output.

Productivity combines efficiency and effectiveness from a value oriented perspective: maximizing productivity is about generating highest value with lowest resource consumption.

29

Page 30: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard UniveristySoftware Engineering Economic

Factors affecting productivity

Application domain experience Quality development process

have matured process in the organization Project Size

Large size need bigger team and proper communication is required

Technology Support SCM tool, MS-Project, Visio etc

Working Environment

30

Page 31: Software Engineering Economics SE(481) Asad Ur Rehman Assistant Professor Department of Computing Hamdard Institute of Engineering

Hamdard University