Title: CS 501: Software Engineering
1CS 501 Software Engineering
Lecture 7 Business Aspects of Software
Engineering
2Submit your student projects by February 18,
2002. See www.cs.cornell.edu/boom.
3Administration
Feasibility report Please submit an email message
to cs501_at_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_at_cs.cornell.edu only if you want
a response from the course team.
4Administration
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.
5Some 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)
6Free-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 ...
7Free-Lance Software Development
Salary 50,000 Taxes and benefits 15,000 R
ent, equipment, etc. 10,000 Fees, services,
etc. 15,000 Travel and misc. 10,000
TOTAL EXPENSE 100,000
Hours worked 2,000 less administration
400 less marketing 350 BILLABLE HOURS
1,250 Hourly rate 100,000 /1,250 80
8Free-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!
9Fixed 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
10Fixed and Variable Costs Profit or Loss
1.5M
Revenue
Costs
1.0M
0.5M
Unit sales
2,500
5,000
7,500
11Profit 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?
12Unorthodox 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.
13Unorthodox 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
14Notes 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/ O
pen source software development and distribution
is particularly suitable for organizations such
as universities who develop software for the
public good.
15Open 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
16Discussion 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.
17Question 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.
18Question 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?
19Question 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.
20Question 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?