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