SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Software business basics
McGill ECSE 428
Software Engineering Practice
Radu Negulescu
Winter 2004
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.
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
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
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
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
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
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
...
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
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
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
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
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
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
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
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
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
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
McGill University ECSE 428 © 2004 Radu Negulescu
Software Engineering Practice Software business basics—Slide 19
Example
Claims in this patent:
classical form,
groundbreaking content
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
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
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

Contenu connexe

Similaire à Software Engineering Practice - Software Business Basics

A Case of Fusion Middleware (IlOUG Tech Days, July 2013)
A Case of Fusion Middleware  (IlOUG Tech Days, July 2013)A Case of Fusion Middleware  (IlOUG Tech Days, July 2013)
A Case of Fusion Middleware (IlOUG Tech Days, July 2013)Lucas Jellema
 
How To Avoid Procuring Ip When Doing Procurement
How To Avoid Procuring Ip When Doing ProcurementHow To Avoid Procuring Ip When Doing Procurement
How To Avoid Procuring Ip When Doing ProcurementWilliam Tanenbaum
 
Trends in software testing by Eka TechServ
Trends in software testing  by Eka TechServTrends in software testing  by Eka TechServ
Trends in software testing by Eka TechServekatechserv
 
1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docxaulasnilda
 
E-Disccovery Best Practices 20090710 Ver02
E-Disccovery Best Practices 20090710 Ver02E-Disccovery Best Practices 20090710 Ver02
E-Disccovery Best Practices 20090710 Ver02bretthancock
 
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...Black Duck by Synopsys
 
Decision Matrix for IoT Product Development
Decision Matrix for IoT Product DevelopmentDecision Matrix for IoT Product Development
Decision Matrix for IoT Product DevelopmentAlexey Pyshkin
 
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...Black Duck by Synopsys
 
An Engineering Digital Twin to Accelerate Time to Production
An Engineering Digital Twin to Accelerate Time to ProductionAn Engineering Digital Twin to Accelerate Time to Production
An Engineering Digital Twin to Accelerate Time to Productionaseptingfilling
 
Derive Overview
Derive OverviewDerive Overview
Derive Overviewwrochford
 
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your DealFLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your DealBlack Duck by Synopsys
 
Building the Case for New Technology Have Inspiration, Will Travel ...
Building the Case for New Technology Have Inspiration, Will Travel ...Building the Case for New Technology Have Inspiration, Will Travel ...
Building the Case for New Technology Have Inspiration, Will Travel ...Society of Women Engineers
 
Open Architecture: The Key to Aviation Security
Open Architecture: The Key to Aviation SecurityOpen Architecture: The Key to Aviation Security
Open Architecture: The Key to Aviation Securityagoldsmith1
 
Selecting The Right Business Technology Solution and Business Partners
Selecting The Right Business Technology Solution and Business PartnersSelecting The Right Business Technology Solution and Business Partners
Selecting The Right Business Technology Solution and Business PartnersProformative, Inc.
 
The Cloud 101: Benefits, Risks, & Budgeting for 2016
The Cloud 101: Benefits, Risks, & Budgeting for 2016The Cloud 101: Benefits, Risks, & Budgeting for 2016
The Cloud 101: Benefits, Risks, & Budgeting for 2016Net at Work
 

Similaire à Software Engineering Practice - Software Business Basics (20)

A Case of Fusion Middleware (IlOUG Tech Days, July 2013)
A Case of Fusion Middleware  (IlOUG Tech Days, July 2013)A Case of Fusion Middleware  (IlOUG Tech Days, July 2013)
A Case of Fusion Middleware (IlOUG Tech Days, July 2013)
 
A case of Fusion Middleware - iLOUG 2013
A case of Fusion Middleware - iLOUG 2013A case of Fusion Middleware - iLOUG 2013
A case of Fusion Middleware - iLOUG 2013
 
How To Avoid Procuring Ip When Doing Procurement
How To Avoid Procuring Ip When Doing ProcurementHow To Avoid Procuring Ip When Doing Procurement
How To Avoid Procuring Ip When Doing Procurement
 
Software Licensing Simplified
Software Licensing SimplifiedSoftware Licensing Simplified
Software Licensing Simplified
 
Trends in software testing by Eka TechServ
Trends in software testing  by Eka TechServTrends in software testing  by Eka TechServ
Trends in software testing by Eka TechServ
 
1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx
 
Chapter01
Chapter01Chapter01
Chapter01
 
E-Disccovery Best Practices 20090710 Ver02
E-Disccovery Best Practices 20090710 Ver02E-Disccovery Best Practices 20090710 Ver02
E-Disccovery Best Practices 20090710 Ver02
 
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
Flight WEST 2018 Presentation - A Buyer Investor Playbook for Successfully Na...
 
Decision Matrix for IoT Product Development
Decision Matrix for IoT Product DevelopmentDecision Matrix for IoT Product Development
Decision Matrix for IoT Product Development
 
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
Winning the Cage-Match: How to Successfully Navigate Open Source Software iss...
 
Chapter01
Chapter01Chapter01
Chapter01
 
An Engineering Digital Twin to Accelerate Time to Production
An Engineering Digital Twin to Accelerate Time to ProductionAn Engineering Digital Twin to Accelerate Time to Production
An Engineering Digital Twin to Accelerate Time to Production
 
Derive Overview
Derive OverviewDerive Overview
Derive Overview
 
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your DealFLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
FLIGHT Amsterdam Presentation - Don’t Let Open Source Software Kill Your Deal
 
Building the Case for New Technology Have Inspiration, Will Travel ...
Building the Case for New Technology Have Inspiration, Will Travel ...Building the Case for New Technology Have Inspiration, Will Travel ...
Building the Case for New Technology Have Inspiration, Will Travel ...
 
Open Architecture: The Key to Aviation Security
Open Architecture: The Key to Aviation SecurityOpen Architecture: The Key to Aviation Security
Open Architecture: The Key to Aviation Security
 
Selecting The Right Business Technology Solution and Business Partners
Selecting The Right Business Technology Solution and Business PartnersSelecting The Right Business Technology Solution and Business Partners
Selecting The Right Business Technology Solution and Business Partners
 
The Cloud 101: Benefits, Risks, & Budgeting for 2016
The Cloud 101: Benefits, Risks, & Budgeting for 2016The Cloud 101: Benefits, Risks, & Budgeting for 2016
The Cloud 101: Benefits, Risks, & Budgeting for 2016
 
Chapter01.ppt
Chapter01.pptChapter01.ppt
Chapter01.ppt
 

Plus de Radu_Negulescu

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02Radu_Negulescu
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03Radu_Negulescu
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Radu_Negulescu
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Radu_Negulescu
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsRadu_Negulescu
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingRadu_Negulescu
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceRadu_Negulescu
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignRadu_Negulescu
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignRadu_Negulescu
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisRadu_Negulescu
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsRadu_Negulescu
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementRadu_Negulescu
 
Software Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationSoftware Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationRadu_Negulescu
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project managementRadu_Negulescu
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementRadu_Negulescu
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesRadu_Negulescu
 

Plus de Radu_Negulescu (17)

Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Final Exam Solutions Fall02
Final Exam Solutions Fall02Final Exam Solutions Fall02
Final Exam Solutions Fall02
 
Final Exam Questions Fall03
Final Exam Questions Fall03Final Exam Questions Fall03
Final Exam Questions Fall03
 
Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03Midterm Exam Solutions Fall03
Midterm Exam Solutions Fall03
 
Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02Midterm Exam Solutions Fall02
Midterm Exam Solutions Fall02
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
 
Intro to Software Engineering - Software Testing
Intro to Software Engineering - Software TestingIntro to Software Engineering - Software Testing
Intro to Software Engineering - Software Testing
 
Intro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality AssuranceIntro to Software Engineering - Software Quality Assurance
Intro to Software Engineering - Software Quality Assurance
 
Intro to Software Engineering - Software Design
Intro to Software Engineering - Software DesignIntro to Software Engineering - Software Design
Intro to Software Engineering - Software Design
 
Intro to Software Engineering - Module Design
Intro to Software Engineering - Module DesignIntro to Software Engineering - Module Design
Intro to Software Engineering - Module Design
 
Intro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements AnalysisIntro to Software Engineering - Requirements Analysis
Intro to Software Engineering - Requirements Analysis
 
Intro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding StandardsIntro to Software Engineering - Coding Standards
Intro to Software Engineering - Coding Standards
 
Software Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality ManagementSoftware Engineering Practice - Software Quality Management
Software Engineering Practice - Software Quality Management
 
Software Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and EstimationSoftware Engineering Practice - Software Metrics and Estimation
Software Engineering Practice - Software Metrics and Estimation
 
Software Engineering Practice - Project management
Software Engineering Practice - Project managementSoftware Engineering Practice - Project management
Software Engineering Practice - Project management
 
Software Engineering Practice - Configuration management
Software Engineering Practice - Configuration managementSoftware Engineering Practice - Configuration management
Software Engineering Practice - Configuration management
 
Software Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development MethodologiesSoftware Engineering Practice - Advanced Development Methodologies
Software Engineering Practice - Advanced Development Methodologies
 

Dernier

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Software Engineering Practice - Software Business Basics

  • 1. Software business basics McGill ECSE 428 Software Engineering Practice Radu Negulescu Winter 2004
  • 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