22
Software business basics McGill ECSE 428 Software Engineering Practice Radu Negulescu Winter 2004

Software Engineering Practice - Software Business Basics

Embed Size (px)

Citation preview

Page 1: Software Engineering Practice - Software Business Basics

Software business basics

McGill ECSE 428Software Engineering Practice

Radu Negulescu

Winter 2004

Page 2: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 2

About this course module

Software engineering requires awareness of the business infrastructureand the legal and economic context.

Compared to other industries and engineering disciplines,

• Sales, marketing, distribution are more direct

• Software is often custom-made and outsourced

• A software product often supports a business process

Here we briefly survey some of the common issues in software business.

Page 3: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 3

Overview

Software business models

• Shrink-wrap: for consumer market

• Component development/integration: plug-ins, assemblage

• Custom: on a contract

• Research: prove new technology, idea

• Related services

Contracts and proposals

Intellectual property

• Copyrights

• Patents

Organizational structures

Page 4: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 4

Shrink-wrap

Development aimed at direct sales for the consumer market

Technical issues

• Market-driven requirements

• May productize core technologies to be sold or licensed

• Risk-driven testing (commercial and technical)

Financial issues

• User licensesSingle, multiple, concurrent, network, corporatePer use, seat, site

• Seed financing for development

Other issues

• Customer support: updates, bug fixes, training, books

• License fees for third-party components

• Marketing, product management

• Market analysis, competition, competitive barriers

• Warranties, liability, consumer law

Page 5: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 5

Component development/integration

Integrate third-party components, or develop components for this purpose

Technical issues

• Technology influences requirements

• Integration testing

• E.g. management information systems – support business processesIntegrates components: database, web server, networking, security

Financial issues

• Development license – using the componentRoyalties: per unit, volume thresholds

• T&M: integration, customization

Other issues

• License exclusivity

• Technical standards

• Liability spreading or consolidation

• Work with multiple vendors, different commercial models

Page 6: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 6

Custom projects/contract

Develop software for exclusive use requested by a customer

Technical issues

• Contract dictates requirements

• Customer acceptance testing

Financial issues

• Time and materials

• Fixed rate, fixed priceBonus/penalties for early/late deliveryT&M analysis, fixed-price developmentFixed-rate until contract fully negotiated; fixed-price after

• Pay-on-delivery (no-cure-no-pay)+ down payment

Other issues

• Changes to requirements: may be included up to certain amount

• Ownership of reusable code, resulting know-how, metrics, artifacts

Page 7: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 7

Research / new technology

Explore and prove the capabilities of core technology or business idea

Technical issues

• Requirements determined by experimentation, prototyping

• Development aimed at proof of concept, core technology

Financial issues

• Venture capital, in exchange of shares

• Tax credits, investment incentives

• Granting agencies

Other issues

• IP potential and protection

• Follow-up by development project

• Objective to exceed sales threshold after limited timeIf not, business control may be taken by venture capital

Page 8: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 8

Other services

Consulting

Training

Installation, configuration, maintenance

Customer support

Global development

ASP: applications run remotely

...

Page 9: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 9

Customer and vendor interaction

Basic process for entering an agreement [Jalote]

• C or V: Initial contact (ad, sales, procurement)

• C: RFI

• V: Information about vendor: past projects, capabilities

• C: Short-list, visit vendors

• C: RFP – scope of project; sample contract − type of clauses sought

• V: ProposalFixed-price: if requirements are precisely stated (after req analysis)T&M: for stream of small projects, maintenance projects, etc.Two-phase: common

Req. analysis: per-person-month; 1-2 analysts, T&MDevelopment: fixed-priced bid; a different vendor might be sought

• C: Work-order or purchase order

Variation: protracted contract negotiation

• Work go-ahead at fixed rate

Page 10: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 10

Contracts

General terms and conditions for transacting the business

• Scope of services: general scope of work

• Estimates, rates and payment

• Hardware and software

• Generic equipment provided by V, project-specific by C

• Confidentiality, security, rights on dataAll business, personnel, and technical info provided by customerMeasures to ensure the customer’s computer security is not breachedTypical: Vendor has no rights on specific data provided by customerTypical: Vendor has rights on knowledge acquired by executing this project

E.g. baseline data, even reusable components developed

• Non-solicitation: promise not to recruit each other’s staff

• Warranty: defect repair, term limitations, service level, penalties

• Liability: typically limited to the total cost of the software

• Indemnity: neither party is responsible for illegal acts of the other

• Others: jurisdiction, arbitration, termination of contract, payment defaults

Page 11: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 11

Proposals

Specific terms for a particular project

Technical part

• Technical descriptionRequirements of the project; or reference to RFP or SRSMethodology and toolsThe vendor’s experience

• Effort estimate, schedule, milestones, technology, team

• Assumptions: platform, dates and conditions of payment, etc.

• Customer responsibilityData, manualsAccess to site, personnel, deployment platform, contact person

• Risk management: identification, mitigationIncludes customer risks and impact

• Requirements changeAgreement to pay according to future estimate by vendorSome small buffer may be included

• OtherVariants, localizationEscalation mechanisms for problem resolution

Page 12: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 12

Proposals

Commercial part

• Basis for pricingManpower rates depending on seniority levelTravel costsSpecial hardware costsData communication costsConsultancy costs

• Payment schedule and ratesAt milestonesMonthlyPart of payment at the end of warranty periodPenalty for late delivery / reward for early delivery

Preparation

• Project leader (technical) !!!

• Input from sales person, in contact with customer

Page 13: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 13

Intellectual property

A form of ownership

• Different rights, compared to physical property

• Limited duration

Subtypes

• Copyright: cover original creations

• Patent: cover inventions or improvements

• Trademark: symbols to distinguish goods or services

• Industrial design: visual features of finished object

• IC topography

Page 14: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 14

Copyrights

Exclusive “right to copy”

• Original work, significant parts of work, any translationProduce, reproduce, perform, publish

• Automatically belongs to author upon creationOr to employer, if created in course of employment

• Registration not required, but brings advantage in court

• Valid in many countries: Berne Copyright Convention, WTOForeign copyrights valid in Canada too

• Life time of author(s) + 50 years

• Not covered: ideas, facts (E=mc2), public news, …Fair dealing, exceptions

Page 15: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 15

Copyrights

Agreements

• Assignment: transfer all rights for whole or limited termAuthor retains “moral rights”

• License: permission to use under certain conditions and purposesRoyalties: commission for sales or permission to use workTariffs: paid by users for using work

• Policing and legal action are up to ownerCollective societies: CANCOPY/reprography

• Difficult to prove infringementWatermarking

Page 16: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 16

Patents

Monopoly on invention for specific period

• Exclusive right to make, use, sell invention

• Protected in country of filing, 20 years max

Conditions

• Novelty, utility, ingenuity

• Physical embodimentProcess, machine, manufacture, composition of matterTrend: patent algorithms and even business processes

E.g.: RSA public-key encryption, Amazon’s “one-click technology”Theoretically, not patentable!!!

Increasingly important

• A significant competitive advantage / business asset

• A business model in itselfRAMBUS, Shopping carts, Voice over IP

Page 17: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 17

Example

“Software” patents are big business

My favorite search site:

PDF documents of worldwide

patents

Page 18: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 18

Example

Patent number

Related work

Text in “Patentese”Classification –

field of knowledge

Page 19: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 19

Example

Claims in this patent: classical form,

groundbreaking content

Page 20: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 20

Patents

Patent application

• Abstract, specification, drawings

• Describe invention and usefulness

• Claims define the boundaries of protectionEach claim: conjunction of several features

Strategies

• Embedded and overlapping claimsDefend against claiming “prior art”

• Improvement of an existing invention

Page 21: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 21

Patents

Process for obtaining a patent in Canada

• Preliminary search: Canadian Patent Database online; US, Europe

• File an application: Max 1 year after disclosure

• Application lay open for public inspection 18 months: “Patent pending”

• Request examination: Up to 2-3 years

• Patent Office letter of objection: Prior art

• Amendment letter: Update the claims

• Appeals, re-examination, reissue

Patent cooperation treaty

• Patent Cooperation Treaty: application for protection in 100+ countries

• Each country decides separately

• Rights apply in each country separately

Page 22: Software Engineering Practice - Software Business Basics

McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 22

References

Software business

• Rapid Dev. ch. 28 “Outsourcing”

• Jalote ch. 2 “Proposals and contracts”

Intellectual property

• Canadian Intellectual Property Office: “A Guide to Copyrights”, “A Guide to Patents”

• Support organization: www.strategis.gc.ca

• Federal acts and regulations: canada.justice.gc.ca