Software Contracts Flashcards
Software Contract? (Definition)
Legally enforceable agreements defining:
- Scope of work
- Client and developer responsibilities
- Project deliverables and terms
Aims to minimize risks and disputes
Scope of work (1 KR of SC)
Describes the work to be done (product and project scope)
- Product scope : features the functions of the product
- Project scope: work required to deliver the product
Scope creep
occurs after some changes to the project’s original scope
Client responsibilities (2 KR of SC)
Must cooperate for project success by:
* Providing essential data.
* Reviewing and approving deliverables.
* Declaring final acceptance.
Project Control (3 KR of SC)
Ensures structured development:
* Appointment of project managers.
* Regular progress meetings.
Copyright Ownership (4 KR of SC)
- Determines software rights:
- Assignment: Client owns copyright upon delivery.
- Licensing: Developer retains copyright but licenses it to the client.
Confidentiality (5 KR of SC)
- Protects shared sensitive information.
- May involve Non-Disclosure Agreements (NDAs):
* Unilateral, bilateral, or multilateral.
Indemnity (6 KR of SC)
Protects parties from legal consequences of third-party claims.
* Example: Safeguards clients from copyright infringement by the developer.
Warranty and Maintenance (7 KR of SC)
- Defines post-delivery support:
- Warranty period for defect resolution.
- Maintenance terms for ongoing support.
Arbitration Procedures (8 KR of SC)
- Defines dispute resolution steps:
- Contract details.
- Negotiation records.
- Industry norms or implied terms.
Termination Criteria (9 KR of SC)
Conditions for contract termination:
* Performance criteria.
* Breach of contract.
* Mutual agreement.
Product Liability
Developers may face claims for injuries or losses caused by software defects.
Common Liability Grounds
- Strict Liability: Developer accountable regardless of intent.
- Negligence: Failing to meet reasonable development standards.
- Breach of Warranty: Failure to meet promised software quality.
- Examples:
- Boeing 737 MAX: Software errors leading to crashes.
- Horizon IT Scandal: Faulty system led to wrongful prosecutions.
Challenges in Software Development
- Scope Management
- Properly defining and controlling project scope. - Risk mitigation
- Anticipating and addressing project complexities (e.g., Denver International Airport baggage system). - Quality Assurance
- Ensuring robust testing to avoid legal and operational failures.
Real World Success Stories
- Amazon
- Transitioned to Service-Oriented Architecture (SOA).
- Enhanced scalability with 150+ decentralized web services.
- Wachovia Bank
- Reduced model development time from 12 months to 90 days using shared services.
- eBay
- Efficiently manages 2+ petabytes of data with tiered SOA.