80% of freelance project disputes stem from scope disagreements. "Build me a website" means something different to you and the developer. A detailed scope eliminates ambiguity.
What to include in the scope:
- Deliverables list: Every feature, page, integration, and component explicitly listed. Not "a website with user accounts" but "a Django web application with email-based registration, login, password reset, profile page with editable fields (name, email, phone, company), and admin panel for user management."
- Out-of-scope statement: Equally important as the scope. "This project does not include: mobile app development, SEO optimization, content writing, ongoing maintenance, or third-party API integrations beyond Stripe payment processing." Prevents assumptions.
- Acceptance criteria: How do you determine if a deliverable is complete? Define specific, testable criteria. "User registration is complete when: a new user can register with email and password, receives a confirmation email within 60 seconds, can log in after confirming, and sees their profile page with all fields populated."
- Technical specifications: Technology stack (Python/Django, PostgreSQL, hosted on Hetzner VPS), browser support (Chrome, Firefox, Safari, Edge — latest 2 versions), mobile support (responsive design for screens 375px and above), performance target (page load under 3 seconds on 4G connection).
- Design specifications: If the developer is not handling design, specify who provides designs and in what format (Figma files, wireframes, or written descriptions). If the developer handles design, define the number of revision rounds (typically 2-3).
Change request process:
Scope will change — that is normal. The contract must define how changes are handled:
- Client submits a change request in writing (email is fine)
- Developer assesses impact on timeline and budget within 2 business days
- Client approves the revised timeline and cost in writing
- Work proceeds on the change only after written approval
Without this process, scope creep is inevitable. "Can you also add..." becomes a pattern that delays delivery and inflates costs — with both sides frustrated.
Template clause: "The Developer shall deliver the work as described in Appendix A (Scope of Work). Any work not explicitly listed in Appendix A is out of scope. Changes to the scope require a written Change Request approved by both parties, including adjusted timeline and fees."