PowerPoint - Cornell University

advertisement
CS 501: Software Engineering
Lecture 7
Business Aspects of Software Engineering
1
CS 501 Spring 2003
Administration
Feasibility report
• Submit an email message to cs501@cs.cornell.edu
with the report as an attachment.
• If you wish to revise your report, resend everything
with a clear message in the body of the email.
• Possible formats are .doc, .pdf, .html, .ps, or .txt.
• Choice of layout, format, etc. are your decision.
How would the client like to see the report?
2
CS 501 Spring 2003
High Level Decision Making
Big software projects are of strategic important for organizations
•
The senior management have 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, e.g.,
Chief Information Officer
Consultant
Does not require detailed technical expertise
3
CS 501 Spring 2003
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:
•
•
•
•
•
4
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.?
CS 501 Spring 2003
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
5
Even if development is contracted to consultants, software
houses, etc., organizations need considerable in-house
expertise to oversee the work.
CS 501 Spring 2003
Business Models: Bespoke Software
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.
6
CS 501 Spring 2003
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
7
Examples: Corporate pay-roll systems, accounting systems
for small businesses, etc.
CS 501 Spring 2003
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.
8
CS 501 Spring 2003
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
9
CS 501 Spring 2003
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 inhouse 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).
10
Organizations need considerable in-house expertise to oversee
the work. Must not over-estimate the expertise of the software
house.
CS 501 Spring 2003
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 ...
11
CS 501 Spring 2003
Free-Lance Software Development
Salary
Benefits
Rent, equipment, etc.
Fees, services, etc.
Travel and misc.
TOTAL EXPENSE
Hours worked
less administration
less marketing
BILLABLE HOURS
$50,000
$15,000
$10,000
$15,000
$10,000
$100,000
2,000
400
350
1,250
Hourly rate = $100,000 /1,250 = $80
12
CS 501 Spring 2003
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!
13
CS 501 Spring 2003
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
14
CS 501 Spring 2003
Fixed and Variable Costs: Profit or Loss
$1.5M
Revenue
Costs
$1.0M
$0.5M
2,500
15
5,000
Unit
sales
7,500
CS 501 Spring 2003
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
16
• 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?
CS 501 Spring 2003
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.
17
CS 501 Spring 2003
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
18
CS 501 Spring 2003
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
SourgeForge system:
http://sourceforge.net/
19
Open source software development and distribution is
particularly suitable for organizations such as universities who
develop software for the public good.
CS 501 Spring 2003
Open Source License
Sample open source license (GNU General Public License):
http://www.opensource.org/licenses/gpl-license.html
•
•
•
•
•
•
•
•
20
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
CS 501 Spring 2003
Download