software engineering practice - software business basics
TRANSCRIPT
Software business basics
McGill ECSE 428Software Engineering Practice
Radu Negulescu
Winter 2004
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.
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
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
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
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
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
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
...
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
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
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
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
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
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
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
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
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
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
McGill University ECSE 428 © 2004 Radu NegulescuSoftware Engineering Practice Software business basics—Slide 19
Example
Claims in this patent: classical form,
groundbreaking content
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
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
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