CS 501: Software Engineering Business Aspects of Software Engineering Lecture 7

advertisement
CS 501: Software Engineering
Lecture 7
Business Aspects of Software Engineering
1
CS 501 Spring 2002
Submit your student projects by February 18, 2002.
See www.cs.cornell.edu/boom.
2
CS 501 Spring 2002
Administration
Feasibility report
Please submit an email message to cs501@cs.cornell.edu with the
report as an attachment. Possible formats are .doc, .pdf, .html, .ps,
or .txt.
Project teams
If you are not a member of a team with 5 to 7 people, please meet
at the end of the class.
email
Copy email messages to cs501@cs.cornell.edu only if you want a
response from the course team.
3
CS 501 Spring 2002
Administration
Quiz 1
Quiz 1 will be returned at the beginning and end of class
today. If you do not pick up your work now, it can be
collected from Rosemary Adessa in Upson 5147.
The quiz and the solution to Question 2 are posted on the
web site, under Assignments. Question 1 will be
discussed in the lectures.
4
CS 501 Spring 2002
Some Business Models
Bespoke software for customer
software is written by independent contractor
product may be owned by supplier or customer
Package licensed to customer
binary only (Microsoft model)
source code for customer's modifications
Software developed in-house
Software bundled with hardware product
(PalmPilot, digital camera)
5
CS 501 Spring 2002
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 ...
6
CS 501 Spring 2002
Free-Lance Software Development
Salary
Taxes and 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
7
CS 501 Spring 2002
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!
8
CS 501 Spring 2002
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 = $10 million
Variable cost = $20
9
CS 501 Spring 2002
Fixed and Variable Costs: Profit or Loss
$1.5M
Revenue
Costs
$1.0M
$0.5M
2,500
10
5,000
Unit
sales
7,500
CS 501 Spring 2002
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
11
• 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 2002
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.
12
CS 501 Spring 2002
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
13
CS 501 Spring 2002
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/
14
Open source software development and distribution is
particularly suitable for organizations such as universities who
develop software for the public good.
CS 501 Spring 2002
Open Source License
Sample open source license (GNU General Public License):
http://www.opensource.org/licenses/gpl-license.html
•
•
•
•
•
•
•
•
15
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 2002
Discussion of Pfleeger, Chapter 3
Format:
State a question.
Ask a member of the class to answer.
(Sorry if I pronounce your name wrongly.)
Provide opportunity for others to comment.
When answering:
Stand up.
Give your name or NetID. Make sure the TA hears it.
Speak clearly so that all the class can hear.
16
CS 501 Spring 2002
Question 1: Effort Estimation
(a) Give five reasons why estimates of effort are often
wrong.
(b) In algorithmic methods of estimation, what is the
most important factor used to predict effort?
(c) Name two other important factors.
17
CS 501 Spring 2002
Question 2: Risk Management
(a) Personnel shortfalls are a major risk factor. What
can be done to address them?
(b) What is gold plating? What can be done to lower
the risk associated with it?
(c) Why are computer science capabilities considered
a risk factor?
(d) The book defines risk exposure as:
risk impact x risk probability
Do you find this concept useful?
18
CS 501 Spring 2002
Question 3: Project Management
(a) The book is very enthusiastic about the Enrollment
Management model used by the Digital
Equipment Alpha AXP project. What are the
characteristics of this model?
(b) What is a matrix organization? What are the
advantages and disadvantages of such an
organization?
(c) How does matrix organization compare with the
Chief Programmer model of organization.
19
CS 501 Spring 2002
Question 4: The Person-Month
The COCOMO model and other models of effort estimation use
the concept of the person-month, yet the most famous book on
software engineering is called The Mythical Man-Month.
(a) What is a person-month?
(b) When is this a useful concept? Give an example.
(c) When is this a dangerous concept? Give an example.
(d) If 10 software developers can develop System Z in two
years, how long would you expect 20 developers to take?
(e) If System Z has to be completed in a hurry, how would you
decide how many people to assign?
20
CS 501 Spring 2002
Download