1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 25 Delivering the System Business Considerations.

Slides:



Advertisements
Similar presentations
1 Software Engineering II The Business Aspects of Software Engineering.
Advertisements

Configuration management
6.Quality, maintenance and documentation l Development cycle l Productisation l Plan for quality l Plan for maintenance; l Plan for documentation:
Chapter 12 Estimate Summaries and Bids. Bid Summaries The format of the summary depends for what the estimate is to be used. –Ordering materials –Calculating.
Financial Management F OR A S MALL B USINESS. FINANCIAL MANAGEMENT 2 Welcome 1. Agenda 2. Ground Rules 3. Introductions.
Preparing the System Proposal Chapter 13 Topics: –Systems proposal –Determining hardware needs –Determining software needs –Decision to rent, lease, or.
CS 5150 Software Engineering
CS CS 5150 Software Engineering Lecture 28 People 3.
CS CS 5150 Software Engineering Lecture 27 People 2.
CS CS 5150 Software Engineering Lecture 19 Acceptance and Delivery.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 23 People 1.
Software Project Transition Planning
CS 501: Software Engineering
CS CS 5150 Software Engineering Lecture 27 People 3.
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Health Informatics Series
Chapter 10 Managing the Delivery of Information Services.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 26 Delivering the System.
Chapter 3 Applications Software: Getting the Work Done.
CS 501: Software Engineering Fall 2000 Lecture 7 Management II Business and Legal Aspects of Software Engineering.
Selection and use of appropriate software: Applications software
Computer Fundamentals
VENDORS, CONSULTANTS AND USERS
COMP 6005 An Introduction To Computing Session Two: Computer Software Acquiring Software.
Open Source for Government Alexander C. Pitzner Sr. Network Engineer Harrisburg University of Science and Technology
Hospitality Services Group COOPERATIVE PURCHASING SINCE 1989.
CS CS 5150 Software Engineering Lecture 26 The Business of Software Development.
CS3500 Software Engineering How does a “program” differ from a “software system”? Program System Tens to hundreds of lines of code Thousands to millions.
Categories of Software
WEB ENGINEERING LECTURE 4 BY Kiramat Rahman. outline  In this Lecture you will learn about:  Term “Software” and its relationship with “Hardware” 
© Pearson Education Copying permitted for purchasing institution only. This material is not copyright free. Functional areas Unit 1: Investigating.
From Research Prototype to Production
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Software – Acquisition & Testing. ICT5 How to acquire software There are several options: The software may be written by the end-user; A specialist department.
Application Software Performs a specific job or task. Helps people use their computers to perform their work more effectively. Categorized in two ways.
ITEC 275 Computer Networks – Switching, Routing, and WANs Week 12 Chapter 14 Robert D’Andrea Some slides provide by Priscilla Oppenheimer and used with.
UEC 01 : Computer Skills & Programming Concepts I 1PUA – Computer Engineering Department – UEC01 – Dr. Mona Abou - Of Lecture 6: Applications Software.
ERP. What is ERP?  ERP stands for: Enterprise Resource Planning systems  This is what it does: attempts to integrate all data and processes of an organization.
Software Engineering Management Lecture 1 The Software Process.
Fundamentals of Information Systems, Third Edition1 Systems Design Answers the question “How will the information system do what it must do to solve a.
CS 501: Software Engineering Fall 1999 Lecture 19 Management II Business and legal aspects of software engineering.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Intuit Canada ULC How to Implement QuickBooks Training in your Practice.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 7 Business Aspects of Software Engineering.
VENDORS, CONSULTANTS AND USERS. WHY CAN’T COMPANIES DEVELOP THEIR OWN ERP PACKAGES? To develop an ERP package is a complex & time consuming activity which.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 24 Delivering the System.
ITGS Application Software, pt. 3. ITGS Business Software Alliance (BSA) and Federation Against Software Theft (FAST) –Represent software companies and.
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
CS CS 5150 Software Engineering Lecture 26 People 2.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
CS 360 Lecture 18.  Acceptance testing  The complete system, including documentation, training materials, installation scripts, etc. is tested against.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 25 People II.
1 Business Aspects of Software Engineering SWE 513.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 26 Delivering the System.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
ITEC 275 Computer Networks – Switching, Routing, and WANs Week 12 Chapter 14 Robert D’Andrea Some slides provide by Priscilla Oppenheimer and used with.
CS 501: Software Engineering Fall 1999 Lecture 22 (a) Managing the Software Process (b) Software Reuse.
Contract management 1. Acquiring software from external supplier This could be: a bespoke system - created specially for the customer off-the-shelf -
Chapter 3 Applications Software: Getting the Work Done.
Fundamental Advantage of SAP Course. When human beings speak about SAP, they commonly suggest the software program system. SAP includes numerous parts,
ITEC 275 Computer Networks – Switching, Routing, and WANs
Managing the Delivery of Information Services
Acceptance and Delivery
CS 5150 Software Engineering
CS 501: Software Engineering
CS 501: Software Engineering
Presentation transcript:

1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 25 Delivering the System Business Considerations

2 CS 501 Spring 2007 Administration Final Presentation Sign up for the presentation. The presentation should include a demonstration of your software in operation. You will need a rehearsal.

3 CS 501 Spring 2007 CS 501: Software Engineering Delivering the System

4 CS 501 Spring 2007 Delivery: Summary A good delivery package results in: happy client happy users less expense in support or maintenance But most projects rush the packaging, help systems, and training materials, give them to the least experienced members of the team, do not test them properly, and generally neglect this part of the software process.

5 CS 501 Spring 2007 Delivering the System: Themes Different categories of software product need different packaging and delivery procedures. Packaging, support, maintenance and major failures are expensive. Trade-offs must be made. Pressures to get products to market and in operation often lead to bad decisions. (In my experience, the pain of being late is often less than the pain of putting a bad system into operation.) Services, such as installation, training, configuration, etc. may be paid for separately.

6 CS 501 Spring 2007 Delivery of Software: Categories of Product Shrink-Wrapped Package Installation scripts -- automatic -- varieties of hardware and operating systems -- uninstall, reinstall, etc. Support (very expensive when it requires staff) -- staff training -- documentation (user, system administrator, expert user) Maintenance -- client does not have source code -- no bug fixing except with new release

7 CS 501 Spring 2007 Delivery of Software: Categories of Product Data Processing System Acceptance -- acceptance period may cover several months -- client should be comfortable with complete system Support -- client should be self-sufficient -- documentation and training for system administrators and operators -- well organized source code for maintenance -- maintenance and support contracts

8 CS 501 Spring 2007 Delivery of Software: Categories of Product Embedded System Acceptance -- hardware and software developed together -- acceptance tests combination Maintenance -- bug fixes require servicing the hardware -- errors may be expensive or dangerous Support -- training for support personnel -- documentation and training for users

9 CS 501 Spring 2007 Training Time and money spent on training is usually well spent: one-on-one in-house training training courses distance education online tutorials Development team needs to provide training materials: users (perhaps several categories) system administrators system maintainers trainers

10 CS 501 Spring 2007 Training and Usability A well-designed system needs less training good conceptual model intuitive interfaces Different skill levels need different types of training skilled users work from the conceptual model less-skilled users prefer cookbook sets of instructions occasional users will forget complex details, but remember general structure

11 CS 501 Spring 2007 Help Systems Resources A good help system is a major sub-project (time-consuming, expensive) A good help system saves user time and support staff (time- saving, cost-saving) Help system design Users need many routes to find information (index by many terms, examples, mini-tutorials, etc.) Help systems need to be tested with real users

12 CS 501 Spring 2007 Documentation Online documentation Much cheaper than print Fewer restrictions on numbers of pages, colors, etc. Easy to update (e.g., over the Internet) but... Cannot be used if the user's system is down

13 CS 501 Spring 2007 Categories of Documentation Software development Requirements, design Source code, test plans and results User Introductory (various audiences) User manual Web site of known problems, FAQ, etc. System administrator and operator System manuals Business License, contract, etc.

14 CS 501 Spring 2007 Installation Tools Creating installation scripts may be a major sub-project Different scripts, tools and procedures for different categories of software Testing must be extensive with real users in their own environment

15 CS 501 Spring 2007 Delivery: Check List for CS 501 Projects Documentation Requirements, updated to reflect delivered system System and program design, updated to reflect delivered system Instructions for: users, administrators, operators Presentation slides, updated to reflect delivered system Business documentation, e.g., copyright license System Source code and matching binary for all programs Installation scripts, etc. Test scripts, test data, and test reports Different projects will have different deliverables

16 CS 501 Spring 2007 Final Presentation: What do You want to Achieve? Personal and team satisfaction in handing over a good piece of work to the client Complete the course in good style with good grade A clean handover without loose ends Perhaps: a good basis for future involvement with the client, team, or this project

17 CS 501 Spring 2007 Final Presentation: Who is the Audience? What do they Want? Clients The clients have invested effort in this project: Is it ready for production? Should they invest more effort to bring it into production? Should they abandon the project? Course team What has been accomplished? What has been learned? Is the client satisfied? Are you handing over a maintainable system?

18 CS 501 Spring 2007 How much Time do You Have? How much can You Cover? Plan for 45 minutes total. You should cover: Presentation: Brief review of goals Honest summary of achievements and gaps Summary of what is being delivered Demonstration of operational system: Show the system in operation Be honest about gaps, weaknesses, etc. Time for discussion

19 CS 501 Spring 2007 What Materials should you Deliver? When you leave, all that the client has is your documentation and your software. Imagine that you work for the client and are asked to take over this system. What would you want? Materials can be in any format, need not be huge, but must be current. Place your materials on your GForge or other project site.

20 CS 501 Spring 2007 CS 501: Software Engineering Business Considerations in Software Development

21 CS 501 Spring 2007 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.

22 CS 501 Spring 2007 Software Houses A software house is a company that creates software for other organizations, e.g., S.A.P., Infosys, etc. Business is a mixture of: consulting packages (solutions) custom software maintenance education Because large sums of money involved, emphasis should be on contracts, visible processes, well-defined deliverables, and acceptance tests.

23 CS 501 Spring 2007 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.

24 CS 501 Spring 2007 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.

25 CS 501 Spring 2007 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.

26 CS 501 Spring 2007 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.

27 CS 501 Spring 2007 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

28 CS 501 Spring 2007 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...

29 CS 501 Spring 2007 Free-Lance Software Development Salary$50,000 Benefits$15,000 Rent, 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

30 CS 501 Spring 2007 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?

31 CS 501 Spring 2007 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

32 CS 501 Spring 2007 Fixed and Variable Costs: Profit or Loss $1.5M $1.0M $0.5M Unit sales 2,5005,0007,500 Revenue Costs

33 CS 501 Spring 2007 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?

34 CS 501 Spring 2007 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.

35 CS 501 Spring 2007 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

36 CS 501 Spring 2007 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: Many open source software projects are managed on the SourceForge system: Open source software development and distribution is particularly suitable for organizations such as universities who develop software for the public good.

37 CS 501 Spring 2007 Open Source License Sample open source license (GNU General Public License): 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 *