Technology Scaling Assessment

Type: Execution Recipe Confidence: 0.88 Sources: 6 Verified: 2026-03-12

Purpose

This recipe produces a scored technical debt assessment, migration decision matrix, and phased architecture evolution roadmap — the three deliverables a startup CTO needs to decide when, what, and how to re-architect from MVP. The output answers the critical question: is the current architecture a growth bottleneck or still serviceable, and what is the cost/benefit of each migration path. [src1]

Prerequisites

Constraints

Tool Selection Decision

Which assessment depth?
├── Quick health check (1 day) — DORA metrics + code quality scan
│   └── PATH A: Automated Scan — SonarQube + GitHub analytics
├── Standard assessment (2-3 days) — Full 10-point scoring + bottleneck analysis
│   └── PATH B: Manual + Automated — Code review + monitoring + DORA
├── Deep architecture review (4-5 days) — Full assessment + migration planning
│   └── PATH C: Architecture Audit — PATH B + load testing + prototyping
└── Pre-investment due diligence (5-7 days) — Investor-grade assessment
    └── PATH D: Full Due Diligence — PATH C + security + compliance
PathToolsCostDurationOutput Depth
A: Quick ScanSonarQube, GitHub Analytics$01 dayScorecard only
B: StandardSonarQube, Datadog/Grafana, manual review$0-1502-3 daysScorecard + bottleneck map
C: Deep ReviewAll B + k6/Locust, diagramming$0-3004-5 daysFull assessment + migration plan
D: Due DiligenceAll C + security scanner$200-5005-7 daysInvestor-grade report

Execution Flow

Step 1: Extract DORA Metrics

Duration: 2-4 hours · Tool: GitHub/GitLab analytics, CI/CD logs

Collect the four DORA metrics from the last 90 days — deployment frequency, lead time for changes, change failure rate, and mean time to recovery. [src2]

# GitHub: extract deployment frequency (last 90 days)
gh api repos/{owner}/{repo}/actions/runs --paginate \
  --jq '[.workflow_runs[] | select(.conclusion=="success")] | length'

Verify: All four metrics have values from at least 30 data points · If failed: Use git log analysis as proxy

Step 2: Run Static Code Analysis (10-Point Assessment)

Duration: 1-3 hours · Tool: SonarQube / Code Climate

Score across 10 dimensions: code quality, test coverage, dependency freshness, build reliability, deploy velocity, incident rate, database health, API latency, security posture, documentation. Total score /100. [src1]

Verify: Score < 50 = urgent re-architecture. 50-70 = planned remediation. > 70 = maintain and iterate · If failed: Use ESLint/Pylint for basic quality metrics

Step 3: Database Scaling Assessment

Duration: 2-4 hours · Tool: pg_stat_statements, EXPLAIN ANALYZE

Identify top 10 slow queries, assess index coverage, measure connection utilization, and map database scaling ceiling. The most common MVP scaling wall is the database. [src6]

Verify: Top 10 slow queries identified, index coverage assessed · If failed: Use EXPLAIN ANALYZE on known slow endpoints

Step 4: Infrastructure Bottleneck Analysis

Duration: 2-4 hours · Tool: Cloud monitoring (CloudWatch / Datadog / Grafana)

Map CPU, memory, disk I/O, network utilization, request latency (P50/P95/P99), and error rates over 30 days. Identify which resource hits ceiling first under growth projections.

Verify: All resource metrics collected, peak utilization periods identified · If failed: Use system tools (top, iostat) during peak hours

Step 5: Build Migration Decision Matrix

Duration: 4-8 hours · Tool: Spreadsheet / document

Score four options — optimize in place, strangler fig migration, parallel rebuild, platform migration — across five weighted factors: time to impact, engineering cost, regression risk, long-term scalability, team disruption. [src3] [src4]

Verify: All options scored, recommendation selected with confidence level · If failed: Flag data gaps, recommend collection period before deciding

Step 6: Produce Architecture Evolution Roadmap

Duration: 4-8 hours · Tool: Document + diagramming (Mermaid, draw.io)

Create phased roadmap: Phase 0 (Foundation — monitoring + tests), Phase 1 (Quick Wins — indexes + pooling + CDN), Phase 2 (Service Extraction — strangler fig), Phase 3 (Data Layer Evolution — replicas + caching), Phase 4 (Operational Excellence — SLOs + chaos engineering). Each phase has quality gates.

Verify: Roadmap has specific milestones, gates, resource requirements, and budget per phase · If failed: Produce high-level timeline and iterate with team input

Output Schema

{
  "output_type": "technical_scaling_assessment",
  "format": "structured document bundle",
  "sections": [
    {"name": "dora_metrics", "type": "object", "description": "Four DORA metrics with scores and benchmarks"},
    {"name": "code_quality_score", "type": "number", "description": "Aggregate score 0-100 from 10-point assessment"},
    {"name": "database_assessment", "type": "object", "description": "Slow queries, index coverage, scaling ceiling"},
    {"name": "infrastructure_utilization", "type": "object", "description": "Resource heatmap with bottleneck identification"},
    {"name": "migration_recommendation", "type": "string", "description": "Selected option with confidence"},
    {"name": "roadmap_phases", "type": "array", "description": "Ordered phases with gates and timelines"}
  ],
  "expected_deliverables": "3-5 documents + 2 diagrams"
}

Quality Benchmarks

Quality MetricMinimum AcceptableGoodExcellent
DORA metrics coverageAll 4 metrics measured90-day trend data12-month trend with seasonality
Code quality data pointsSonarQube scan completed10-point assessment scoredTrend comparison with previous quarter
Database assessment depthTop 10 slow queries identifiedIndex coverage + connection analysisLoad test results at 2x/5x/10x
Roadmap specificityPhase names and rough timelineSpecific milestones and gatesResource allocation + budget per phase

If below minimum: Re-run data collection with broader time window, or engage external DevOps consultant.

Error Handling

ErrorLikely CauseRecovery Action
pg_stat_statements not availableExtension not enabledRun CREATE EXTENSION pg_stat_statements; wait 24h
SonarQube scan failsMemory limit exceededIncrease Docker memory to 4GB
Cloud metrics API emptyMonitoring not configuredVerify monitoring agent, check region
Git history too shortNew repo or squash-mergedUse PR merge data as proxy
Load test crashes productionRan against productionAlways target staging environment

Cost Breakdown

ComponentFree TierPaid TierAt Scale
Code analysis (SonarQube)$0 (community)$150/mo (cloud)$400/mo (enterprise)
Monitoring (Datadog/Grafana)$0 (Grafana OSS)$23/host/mo$50/host/mo
Load testing (k6/Locust)$0 (self-hosted)$0 (CLI)$600/mo (cloud)
Engineering time2 days3-5 days5-7 days
Total$0 + 2 eng-days$150-300 + 3-5 eng-days$500-1000 + 5-7 eng-days

Anti-Patterns

Wrong: Big Bang Rewrite

Stopping all feature development to rebuild from scratch. 60-80% of big bang rewrites fail or overrun timeline because hidden complexity is underestimated. [src3]

Correct: Strangler Fig Approach

Incrementally replace components while the old system serves traffic. Route new functionality through the new system, migrate piece by piece. [src4]

Wrong: Premature Microservices

Splitting a monolith before the team has operational maturity. A 3-5 person team managing 15 microservices spends more time on infrastructure than features. [src6]

Correct: Modular Monolith First

Refactor into well-defined modules with clean boundaries. Extract to services only when modules have genuinely different scaling or ownership requirements.

When This Matters

Use this recipe when a startup CTO or technical founder needs evidence-based data to decide whether to re-architect from MVP — specifically when feature velocity is declining, reliability is suffering, or the team spends more time on workarounds than new capabilities.

Related Units