SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Mais 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
 

Mais 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
 

Último

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Último (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

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