Contenu connexe
Similaire à Software Engineering Practice - Software Business Basics
Similaire à Software Engineering Practice - Software Business Basics (20)
Plus de Radu_Negulescu (17)
Software Engineering Practice - Software Business Basics
- 2. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 2
About this course module
Software engineering requires awareness of the business infrastructure
and 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.
- 3. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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
- 4. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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 licenses
Single, multiple, concurrent, network, corporate
Per 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
- 5. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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 processes
Integrates components: database, web server, networking, security
Financial issues
• Development license – using the component
Royalties: 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
- 6. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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 price
Bonus/penalties for early/late delivery
T&M analysis, fixed-price development
Fixed-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
- 7. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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 time
If not, business control may be taken by venture capital
- 8. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 8
Other services
Consulting
Training
Installation, configuration, maintenance
Customer support
Global development
ASP: applications run remotely
...
- 9. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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: Proposal
Fixed-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&M
Development: 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
- 10. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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 data
All business, personnel, and technical info provided by customer
Measures to ensure the customer’s computer security is not breached
Typical: Vendor has no rights on specific data provided by customer
Typical: 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
- 11. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 11
Proposals
Specific terms for a particular project
Technical part
• Technical description
Requirements of the project; or reference to RFP or SRS
Methodology and tools
The vendor’s experience
• Effort estimate, schedule, milestones, technology, team
• Assumptions: platform, dates and conditions of payment, etc.
• Customer responsibility
Data, manuals
Access to site, personnel, deployment platform, contact person
• Risk management: identification, mitigation
Includes customer risks and impact
• Requirements change
Agreement to pay according to future estimate by vendor
Some small buffer may be included
• Other
Variants, localization
Escalation mechanisms for problem resolution
- 12. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 12
Proposals
Commercial part
• Basis for pricing
Manpower rates depending on seniority level
Travel costs
Special hardware costs
Data communication costs
Consultancy costs
• Payment schedule and rates
At milestones
Monthly
Part of payment at the end of warranty period
Penalty for late delivery / reward for early delivery
Preparation
• Project leader (technical) !!!
• Input from sales person, in contact with customer
- 13. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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
- 14. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 14
Copyrights
Exclusive “right to copy”
• Original work, significant parts of work, any translation
Produce, reproduce, perform, publish
• Automatically belongs to author upon creation
Or to employer, if created in course of employment
• Registration not required, but brings advantage in court
• Valid in many countries: Berne Copyright Convention, WTO
Foreign copyrights valid in Canada too
• Life time of author(s) + 50 years
• Not covered: ideas, facts (E=mc2), public news, …
Fair dealing, exceptions
- 15. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 15
Copyrights
Agreements
• Assignment: transfer all rights for whole or limited term
Author retains “moral rights”
• License: permission to use under certain conditions and purposes
Royalties: commission for sales or permission to use work
Tariffs: paid by users for using work
• Policing and legal action are up to owner
Collective societies: CANCOPY/reprography
• Difficult to prove infringement
Watermarking
- 16. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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 embodiment
Process, machine, manufacture, composition of matter
Trend: 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 itself
RAMBUS, Shopping carts, Voice over IP
- 17. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 17
Example
“Software” patents
are big business
My favorite
search site:
PDF documents
of worldwide
patents
- 18. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 18
Example
Patent number
Related work
Text in “Patentese”
Classification –
field of knowledge
- 19. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 19
Example
Claims in this patent:
classical form,
groundbreaking content
- 20. McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 20
Patents
Patent application
• Abstract, specification, drawings
• Describe invention and usefulness
• Claims define the boundaries of protection
Each claim: conjunction of several features
Strategies
• Embedded and overlapping claims
Defend against claiming “prior art”
• Improvement of an existing invention
- 21. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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
- 22. McGill University ECSE 428 © 2004 Radu Negulescu
Software 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