Scoping Drupal Engagements
When reviewing a Drupal RFP or estimate artifact, check these four things first:
- Perspective coverage — Does the estimate include both back-end AND front-end/design effort? (Common gap: estimates built by back-end engineers silently exclude design/FE scope.)
- Cost sanity check — Are front-end costs proportionate to scope (page count, component complexity)? Flag if FE cost seems disconjoint from the rest of the estimate.
- Architecture decisions locked in — Is content modeling using SDC (Single Directory Components) instead of legacy paragraphs, where applicable?
- Resourcing — Is exactly one owner assigned to the RFP response, per channel/process guidelines?
Progress:
- [ ] Debrief with stakeholder(s) to clarify scope boundaries (what's in/out)
- [ ] Audit existing estimate artifact for perspective bias (BE-only vs full-stack)
- [ ] Re-cost front-end/design line items against actual scope (page count, components)
- [ ] Decide fixed-cost vs T&M placement for ambiguous tasks (e.g., content architecture/planning)
- [ ] Confirm technical architecture choices (SDC vs paragraphs, search indexing approach)
- [ ] Fold standard/recurring setup tasks into a reusable starter-kit or scaffolder skill
- [ ] Assign single RFP owner
- [ ] Capture optional/nice-to-have technical recommendations separately from core estimate
1. Cost & Scope Alignment
- Treat the first estimate artifact as a draft, not ground truth — explicitly verify which disciplines (back-end, front-end, design, content) contributed to it.
- When an estimate feels wrong, trace why: usually it's a missing perspective (most common: FE/design omitted), not a math error.
- Cross-check flagged high-cost line items against actual deliverable scope (e.g., "front-end cost for X pages" vs the real page/component count).
2. Starter Kit / Scaffolder Development
- Package recurring, non-differentiating setup work (performance config, security hardening, roles/permissions, workflows) into a reusable scaffolder skill rather than re-estimating it per project.
- Use an LLM-driven scaffolder to generate standard Drupal engagement scaffolding from a checklist/config spec, reducing manual setup time on every new project.
- Keep the scaffolder's scope to standard configuration — bespoke client requirements stay in the project-specific estimate.
3. Fixed-Cost vs Variable Placement
- Move planning-heavy, low-variance tasks (content architecture, information architecture planning) into the fixed-cost tab — these don't scale linearly with content volume and are better estimated as a flat engagement cost.
- Keep content population (page-by-page build-out) in variable/volume-based costing since it scales directly with page count.
4. Architecture Decisions
- Default to SDC (Single Directory Components) for canvas-based builds over traditional paragraph bundles — cleaner component encapsulation, better front-end/back-end collaboration.
- For sitewide search, prefer a database index approach configured via automation (e.g., Claude-driven config generation) over heavier search infrastructure unless scale requires it.
- Track optional technical recommendations (suggested by SMEs/stakeholders) as a separate addendum in the submission — don't blend them into the core bid, so the client can see base vs optional scope clearly.
5. RFP Resourcing
- Assign exactly one resource as the RFP owner per engagement, per channel guidelines — avoids duplicated effort and conflicting estimate versions.
Example 1: Input: "Estimate artifact shows $40K total, but front-end line item alone is $25K for a 20-page marketing site." Output: Flag as scope misalignment. Action: verify page/component count against FE estimate basis; confirm whether estimate was built from BE-only perspective (likely cause of inflation or, conversely, of missing context that makes the number look high); request debrief with FE lead before finalizing.
Example 2: Input: "New RFP came in for a Drupal 10 site, 98 pages, needs search and standard role/permission setup." Output: Assign single RFP owner. Use scaffolder skill to generate baseline config (performance, security, roles/permissions, workflows). Place content architecture planning in fixed-cost tab; size content population (98 pages) as variable cost. Recommend SDC-based component build. Configure search via database index. Draft core estimate; list any stakeholder-suggested optional tech (e.g., Kunal's recommendations) as a separate addendum.
- Always ask "whose perspective built this estimate?" before trusting a cost artifact.
- Separate "standard/reusable" scope (scaffolder-able) from "bespoke" scope (needs real estimation) early.
- Keep optional/nice-to-have recommendations visibly separate from committed scope in client-facing submissions.
- Default to modern component architecture (SDC) unless there's a specific legacy constraint forcing paragraphs.
- One owner per RFP — resist the urge to split estimate ownership across multiple people mid-process.
- Treating a back-end-only estimate as representing full project scope.
- Re-estimating standard setup tasks (security, roles, performance config) from scratch every engagement instead of using a scaffolder.
- Blending optional technical suggestions into the core bid, making it unclear what's required vs nice-to-have.
- Costing content architecture/planning as a per-page variable task when it's really a flat fixed-cost activity.
- Letting multiple people own/edit the same RFP estimate simultaneously, causing version conflicts.