Professional Practices
Title: Computer Contracts
Presented by: Hassaan Mahboob Butt
Introduction to Computer Contracts
• A computer contract is a legal agreement involving services or
products related to computing — like software, IT support,
development, licensing, or hardware.
• Importance: Clarifies obligations, rights, and responsibilities.
• Example: When a company hires a developer to build an app, a
contract sets the expectations and payment terms.
Why Are Contracts Important in Computing?
• Provide legal protection in case of misunderstandings or disputes.
• Establishes expectations, such as deadlines and quality.
• Prevents scope creep (extra work not paid for).
• Example: A game development studio hiring freelancers ensures
through a contract that all intellectual property belongs to them.
Common Types of Computer Contracts
Software Development Contracts
• These are agreements between a client and a developer/team to build
a software solution.
• The contract defines:
• The scope of the software (what features will be built)
• Delivery timeline
• Cost/payment structure
• Ownership of the source code and intellectual property (IP)
• Example: A company hires a developer to create a food delivery app.
Common Types of Computer Contracts
Service Level Agreements (SLAs)
• SLAs are contracts that define the performance standards a service
provider must meet.
• Common in IT support, cloud services, and hosting.
• They typically include:
• Uptime guarantees (e.g., 99.9% server availability)
• Response times for issues
• Compensation for failure to meet standards
• Example: Amazon Web Services (AWS) offers refunds if their uptime
drops below agreed levels.
Common Types of Computer Contracts
• End-User License Agreements (EULAs)
• A legal agreement between a software vendor and the user.
• It defines how the software can be used, what is prohibited, and the
limits of liability.
• Often displayed when installing software.
• Example: When you install Microsoft Office, you agree not to copy or
reverse-engineer the software.
Common Types of Computer Contracts
Maintenance and Support Contracts
• Used for ongoing technical support, bug fixes, and updates.
• Typically follow a development contract.
• Important for long-term software sustainability.
• Example: After building a website, a developer may offer 6 months of
support for fixing issues or upgrading features.
Elements of a Valid Contract
1. Offer
• One party clearly presents what they are willing to do (e.g., build a website for $1,000).
2. Acceptance
• The other party agrees to the offer exactly as proposed (no changes or conditions).
3. Consideration
• Something of value is exchanged — usually money for services or access to a product.
4. Legal Capacity
• Both parties must have the legal ability to enter a contract (e.g., not minors, mentally fit).
5. Lawful Object
• The contract must involve legal activities (e.g., not hiring someone to hack a system).
Key Clauses in a Software Development Contract
• Scope of Work:
• Describes exactly what the developer will build — features, platforms, and limits.
• Timeline and Milestones:
• Sets deadlines for each phase of the project (e.g., design, testing, final delivery).
• Payment Terms:
• Explains how and when the developer will be paid — upfront, per milestone, or after
completion.
• Confidentiality (NDA):
• Ensures that both parties keep sensitive information private (e.g., source code,
business ideas).
• Dispute Resolution:
• Specifies how to handle disagreements — via mediation, arbitration, or court.
Case Study – Contract Dispute in Software Delivery
Example Case:
• A startup hires a freelancer to build an app.
• The contract is vague — no clear scope, timeline, or penalty clauses.
• The developer delivers late and misses key features.
• The client refuses to pay; the freelancer threatens legal action.
Lesson:
“Without clear contract terms, both sides can end up in disputes. A well-
written contract protects everyone involved.”
Open Source Licensing vs. Proprietary Licensing
Open Source Licensing
• Software is free to use, modify, and distribute.
• The source code is public, promoting collaboration.
• Still legally binding — users must follow the license terms.
• Common open source licenses:
• MIT License – very permissive.
• GNU GPL – requires any modified software to remain open source.
• Example: Linux, Firefox
Open Source Licensing vs. Proprietary Licensing
Proprietary Licensing
• Software is owned and controlled by a company.
• Users pay for a license and cannot modify or redistribute the code.
• Strict usage terms, often found in EULAs.
• Violating the license can lead to legal action.
• Example: Microsoft Office, Adobe Photoshop
Intellectual Property (IP) in Computer Contracts
•Intellectual Property (IP) refers to creations like code, designs, or
software.
•Contracts must clearly state who owns the final product — the
developer or the client.
•There are two common models:
•Work-for-hire: The client owns all IP once the work is done.
•Licensing: The developer keeps ownership but allows the client to use
it.
Example:
• A freelance developer builds a mobile app. If the contract says it's
"work-for-hire," the client owns the app and its source code.
Risk Management in Contracts
•Risks include: project delays, data loss, budget overruns, or changes in
scope.
•Contracts can include:
•Penalty clauses for missed deadlines.
•Backup plans or support terms.
•Limitation of liability clauses to cap damages.
•Helps both sides prepare for the unexpected.
Example:
• If a developer delivers late, the contract may deduct a fixed amount
from the payment for each delayed week.
Termination Clauses
•Termination clauses explain under what conditions a contract can be
stopped.
•Common types:
•Mutual Termination – both parties agree to end the contract.
•Termination for Cause – if one side breaks the rules (e.g., no
payment, poor work).
•Termination for Convenience – sometimes allowed with advance
notice.
Example:
• If a client fails to pay within 30 days, the developer has the right to
terminate the contract.
Role of Ethics in Computer Contracts
• Honesty and transparency are crucial when defining project scope,
timelines, and capabilities.
• Avoid deceptive clauses or hidden fees that may take advantage of
clients or users.
• Ethical issues can arise from:
• Overpromising: Guaranteeing impossible delivery dates.
• Undisclosed fees: Charging extra for unmentioned services.
• Using client data improperly: Violating privacy or security.
Example:
• A developer promises a website launch in 2 weeks without considering
the complexity. Later, they fail to deliver, leading to loss of trust.
Legal Jurisdiction and Governing Law
• Legal Jurisdiction refers to the location where legal matters (e.g.,
disputes) are handled.
• Governing Law specifies which country or state’s laws will apply to
the contract.
• These clauses are crucial when contracting with international clients or
partners to avoid confusion over which laws govern the agreement.
Example:
• A US-based company hires a developer from India. The contract states
that any legal disputes will be resolved under California law in a
California court. This ensures both parties know the legal framework
if a problem arises.
Digital Signatures and E-Contracts
•Digital signatures are legally binding electronic signatures used to
sign contracts online.
•E-contracts are agreements that are formed and signed electronically,
without the need for paper documents.
•Both digital signatures and e-contracts are widely accepted and
recognized as valid in many countries.
•Tools like DocuSign, Adobe Sign, and others facilitate this process.
Example:
• A software company sends an e-contract to a client to sign using a
digital signature for an upcoming software project, speeding up the
process and avoiding paperwork.