1 Software Engineering II The Business Aspects of Software Engineering.

22
1 Software Engineering II The Business Aspects of Software Engineering

Transcript of 1 Software Engineering II The Business Aspects of Software Engineering.

Page 1: 1 Software Engineering II The Business Aspects of Software Engineering.

1

Software Engineering II

The Business Aspects of Software Engineering

Page 2: 1 Software Engineering II The Business Aspects of Software Engineering.

2

High Level Decision Making

Big software projects are of strategic importance for organizations

• The senior management has a duty to understand the strategic decisions, the cost options, and the risks.

Senior personnel requirement: individual who is familiar with both the strategic business aspects and the computing aspects of projects,

Page 3: 1 Software Engineering II The Business Aspects of Software Engineering.

3

Chief Information Officer

The senior person in an organization responsible for technology.

• Usually a vice president.

• Other job titles include Chief Technology Officer.

• Background is a combination of technology and management.

• May have worked as a consultant (possibly internal consultant).

Does not require detailed technical expertise.

Page 4: 1 Software Engineering II The Business Aspects of Software Engineering.

4

Product Manager

When software is a product or part of a product, somebody must look at it as a product

Product manager: Sees software as a product with many aspects:

• Function -- What does it do?• Market -- Who is it for?• Sales -- What price, advertising, sales channels?• Packaging -- What media, bundling, packaging,

documentation?• Legal -- What licenses, legal protections, etc.?

Page 5: 1 Software Engineering II The Business Aspects of Software Engineering.

5

In-house Computing Departments

Organization

• Central computing department, reporting through a Chief Information Officer

• Decentralized model with computing distributed across the organization, reporting to operational units

Expertise

• Full in-house design and software development expertise

• Outsourcing with project management in-house

Even if development is contracted to consultants, software houses, etc., organizations need considerable in-house expertise to oversee the work.

Page 6: 1 Software Engineering II The Business Aspects of Software Engineering.

6

Software Houses

A software house is a company that creates software for other organizations, e.g., S.A.P., Computer Associates, Infosys, etc.

Business is a mixture of:

consultingpackages (solutions)custom softwaremaintenanceeducation

Because large sums of money involved, emphasis should be on contracts, visible processes, well-defined deliverables, and acceptance tests.

Page 7: 1 Software Engineering II The Business Aspects of Software Engineering.

7

Business Models

Software is tailored to specific environment

• Very large applications (e.g., air traffic control)

• Small-scale, highly specific applications (e.g., Cornell dormitory keys)

Development options

• Software is written in-house

• Software is written by contractor

Product may be owned by supplier or customer. Maintenance may be in-house or by contractor.

Page 8: 1 Software Engineering II The Business Aspects of Software Engineering.

8

Business Models: Package with Modifications

Software house develops general purpose package

Client

• Licenses package

• Source code is modified for client's specific needs

Business consideration

• Modifications may be by software house or in-house team

• Maintenance may be by software house or in-house team

Legal issues include: access to source code, ownership of modifications, avoiding being locked-in to a supplier

Examples: Corporate pay-roll systems, accounting systems for small businesses, etc.

Page 9: 1 Software Engineering II The Business Aspects of Software Engineering.

9

Business Models: Package Without Modifications

Package Licensed in Binary Form Only

• Package typically has many options, including configuration options

• Package may be a self-contained application or may be designed as a component to incorporate in applications

Legal considerations: usually there is a clear distinction between the package (license from supplier) and application.

Examples: Database systems, mathematical packages, etc.

Page 10: 1 Software Engineering II The Business Aspects of Software Engineering.

10

Business Models: Embedded Systems

Software bundled with hardware product

Product is seen by the user as a hardware product, even if the software development is the major part of the cost

Examples: Global Positioning System, automobile engine control, PalmPilot

Page 11: 1 Software Engineering II The Business Aspects of Software Engineering.

11

Outsourcing

Concept: Contract with software house to develop software for an organization.

Benefits: Software house may be better organized to recruit staff, and manage projects. Clear visibility. No need to build an in-house team for a single project. Small organization cannot have all the expertise to cover a complex project.

Disadvantages: Software house may not have the same goals as the organization (e.g., incentive to prolong project, to build software that can be used in other projects).

Organizations need considerable in-house expertise to oversee the work. Must not over-estimate the expertise of the software house.

Page 12: 1 Software Engineering II The Business Aspects of Software Engineering.

12

Free-Lance Software Development

You and a few friends create a company to develop software. You are offered a contract to write bespoke software.

How much should you charge per hour?

You plan to work 40 hours a week for 50 weeks of the year and want to earn $50,000.

Hourly rate = $50,000 / (40 x 50) = $25

But ...

Page 13: 1 Software Engineering II The Business Aspects of Software Engineering.

13

Free-Lance Software Development

Salary $50,000Benefits $15,000Rent, equipment, etc. $10,000Fees, services, etc. $15,000Travel and misc. $10,000 TOTAL EXPENSE $100,000

Hours worked 2,000less administration 400less marketing 350 BILLABLE HOURS 1,250

Hourly rate = $100,000 /1,250 = $80

Page 14: 1 Software Engineering II The Business Aspects of Software Engineering.

14

Free-Lance Software Development

You MUST have a contract with the customer. It may be a simple letter or a complex agreement.

What should it contain?

Are you being paid by the hour? Or by completion of the task?

What acceptance tests will be done? Who decides when the job is done?

Who owns the software? What licenses does the other party have?

Who provides hardware, software that is required, supplies, etc.?

WHEN WILL YOU GET YOUR MONEY!

Page 15: 1 Software Engineering II The Business Aspects of Software Engineering.

15

Fixed and Variable Cost: Packaged Software

Example:

• The initial development cost of a software product is $1 million.

• The cost of packaging and distribution of each copy is $5.

• Technical support costs average $15 per copy.

• The package sells for $200 per copy.

Fixed cost = $1 million

Variable cost = $20

Page 16: 1 Software Engineering II The Business Aspects of Software Engineering.

16

Fixed and Variable Costs: Profit or Loss

$1.5M

$1.0M

$0.5M

Unit sales2,500 5,000 7,500

Revenue

Costs

Page 17: 1 Software Engineering II The Business Aspects of Software Engineering.

17

Profit or Loss?

If you sell 7,500 copies do you make a profit of $350K?

• Did you borrow money to cover the start-up period? How much interest did you pay?

• What about taxes?

Cash flow

• When will you be paid (always late)?

• When do you have to pay your bills?

Risk

• What extra costs do you have if the product is a year late?

• What if you only sell 5,000 copies?

• If you increase the price, does your revenue go up or down?

Page 18: 1 Software Engineering II The Business Aspects of Software Engineering.

18

Unorthodox Business Models: Shareware

Shareware

• Producer writes a software package.

• Distribution is open, but requests a fee, e.g., $50.

• Users who pay the fee may get a small benefit, e.g., no message when they start up the software.

• Some people have received substantial revenue this way.

Page 19: 1 Software Engineering II The Business Aspects of Software Engineering.

19

Unorthodox Business Models: Open Source

Examples: Linux, Apache, Perl

• Market leaders

• High quality

General model

• Shared development

• A central developer provides overall coordination

• Distribution of source code is completely open

Personal examples:

• TCP/IP for Vax/VMS

• Python

Page 20: 1 Software Engineering II The Business Aspects of Software Engineering.

20

Notes on Open Source

Software may be open source, but packaging and services can be profitable businesses (e.g., Red Hat, IBM Linux).

For more information about open source software, see:

http://www.opensource.org/

Many open source software projects are managed on the SourceForge system:

http://sourceforge.net/

Open source software development and distribution is particularly suitable for organizations such as universities who develop software for the public good.

Page 21: 1 Software Engineering II The Business Aspects of Software Engineering.

21

Open Source License

Sample open source license (GNU General Public License):

http://www.opensource.org/licenses/gpl-license.html

• Free redistribution

• Source code available

• Derived works permitted

• Integrity of the author's source code

• No discrimination against persons or groups

• Protection against unscrupulous patents

• No discrimination against fields of endeavor

• License must not be specific to a product

*

Page 22: 1 Software Engineering II The Business Aspects of Software Engineering.

22

End of Lecture 2