1 / 14 Pillar 2B Assessment

Laravel Migration
Assessment

Evaluate velocity, AI-automation potential, and path from 8 to 2 people

53
Tracked Modules
30
Complete
23
Incomplete
8
Portals

February 28, 2026 · Jostein Svendsen

2 / 14 Critical Finding

What Git Shows vs. What's Actually Happening

Git Says

  • Only 3 contributors active in 2026
  • Velocity dropped 78% from peak
  • Only 35 commits on master in February
  • Team appears to have dissolved

Reality (from Slack)

  • 7+ developers posting weekly statuses
  • 548 unmerged commits on feature branches
  • 300k+ lines of unmerged code
  • Team is highly active — hidden behind shared "design" git account
The "design" shared git account hides 7 developers. 64.5% of all commits (404k lines changed) are unattributable. Individual productivity cannot be measured from git alone.
3 / 14 Velocity Analysis

Commit History (6 Months)

Sep '25
85
Oct '25
78
Nov '25
200 (peak)
Dec '25
115
Jan '26
34
Feb '26
35 (master)
But all-branch activity in February is ~293 commits. The master-only view is misleading. 4 massive feature branches (GTT-554, GTT-662, GTT-503, GTT-670) hold the bulk of recent work.
4 / 14 Team Analysis

The Actual Team (from Slack Intelligence)

DeveloperCurrent FocusStatus
Danish MirzaGlobal Settings — Playwright tests, SonarQube, senior code reviewerActive
Ahmad AshfaqGlobal Settings — Ecommerce tab, accessibility fixes, coding standards v2.2Active
Ali ShouketGlobal Settings — Telemedicine backend, controller splittingActive
Shabbir AhmadCase Manager Portal — Cases, Order Approval, Orders (full parity)Active
Afzaal AhmadCase Manager Portal — Tasks, Users, Bulk Upload, Contact FormActive
BilalSuper Admin — Contact Us, Email Queue (complete)Active
Usama MajeedMedical Staff Portal — using Claude + Cursor AI toolsAI-assisted
Komal ToqeerPM / CoordinatorCoordination
Javier CelisProduct Owner — architectural decisionsDecisions
5 / 14 Progress

Portal Status (8 Portals)

Provider
~80% Complete
Patient
~83% Complete
Admin
~50% Complete
Super Admin
~60% Complete
Observer
~60% (in progress)
Case Manager
~40% (actively building)
Medical Staff
~15% (just started)
Manager
Not started

548 unmerged commits sit on 4 feature branches with 300k+ lines. Once merged, completion percentages will jump significantly.

6 / 14 Hidden Work

548 Unmerged Commits on Feature Branches

BranchPR StatusCommitsFiles ChangedLines Added
GTT-554 Global SettingsDraft4661,747+348,384
GTT-662 Case ManagerOpen4391,599+328,255
GTT-670 Contact UsOpen428
GTT-503 Form IntakeOpen410
Merge risk is HIGH. These mega-PRs (33k+ lines each) cannot be properly reviewed. They must be broken into smaller PRs before merging. A 33,000-line PR reviewed in 2 days is rubber-stamped, not reviewed.
7 / 14 Evaluation

Industry Best Practices: Grade B-

What's Good

  • Modern stack: Laravel 11, Vue 3, TypeScript strict
  • Quality tools: PHPStan L6, SonarQube, Larastan, Playwright
  • 4-layer architecture: Controller → Manager → Service → Repository
  • LARAVEL_CODING_STANDARDS.md v2.2
  • Hashids, RBAC, activity logging
  • Danish Mirza doing structured code reviews

What's Broken

  • Shared git account — 64% of commits anonymous
  • Quality gates faked — PHPStan runs with || true
  • Mega-PRs — 33k lines rubber-stamped in hours
  • Encrypted search — decrypts ALL users in a loop
  • No staging — deploys directly to production
  • <30% test coverage — phpunit.xml excludes Modules/
CategoryGradeKey Issue
ArchitectureB+Solid modular design, thin services wrapping repos
Quality ToolsA-All present but some not enforced
FrontendBVue 3 + Inertia good, legacy coexistence
TestingC<30% coverage, Modules/ excluded from phpunit.xml
SecurityB-RBAC good, encryption search pattern broken
DevOpsB-Pipeline exists, gates not enforced, no staging
Team ProcessD+Shared git account, mega-PRs, one reviewer
8 / 14 Efficiency

Too Many Chefs, Not Enough Kitchen

Current: 7 Devs + PM + PO

  • 21 communication channels (n*(n-1)/2)
  • One reviewer bottleneck (Jostein)
  • Mega-PRs because long-lived branches
  • Shared git account blocks accountability
  • 7 people waiting for review → context switching
  • Coordination overhead: weekly statuses, PM overhead

Target: 2 Devs + AI

  • 1 communication channel
  • Self-review + AI pre-review
  • Small PRs, trunk-based development
  • Full accountability on every commit
  • AI scaffolds CRUD in minutes, not weeks
  • Zero coordination overhead

The Math

Task7-Person Team2 People + AI
New CRUD module (6 pages)1-2 weeks1-2 days
Role variant (clone Case Manager → Medical Staff)2-3 weeks2-3 days
Bug fix + regression test2-4 hours (assign → PR → review → merge)30-60 min
SonarQube compliance per module1-2 weeks1-2 hours
9 / 14 AI Potential

AI Automation Potential

85-95% Automatable

  • Standard CRUD pages (Index/Create/Edit)
  • Role-based page variants from templates
  • Controller cleanup (remove Blade fallbacks)
  • TypeScript type definitions
  • Test generation (route smoke tests)
  • SonarQube compliance fixes
  • Documentation generation

40-60% Automatable (needs humans)

  • Twilio SMS integration
  • Stripe payment flows (PCI compliance)
  • Live video/chat (WebRTC)
  • PDF test result viewer
  • Consent form system (legal workflows)
  • Report center (business logic)
  • Schedule management (drag-drop)
Key advantage: The Case Manager portal (built by Shabbir + Afzaal) provides a complete template for Medical Staff and Manager portals. AI can use this as a reference implementation to generate role variants with ~80% accuracy. One developer already using Claude Code + Cursor (Usama).
10 / 14 Risks

Top 5 Risks

1. Shared Git Account

64% of commits unattributable. If TechTiz team leaves, history is opaque. Fix: Individual accounts immediately (5 min per person).

2. No Staging Environment

Jenkinsfile deploys git pull origin master directly to production. One bad merge = downtime. Fix: Set up staging server.

3. Quality Gates Are Fake

PHPStan, security audits run with || true — failures silently ignored. Fix: Remove || true from Jenkinsfile (1 hour).

4. 548 Unmerged Commits

300k+ lines on feature branches. Mega-PRs (33k lines) can't be properly reviewed. Fix: Break into sub-PRs, enforce 500 LOC limit.

5. Knowledge Concentration

7 developers have module-specific Core PHP knowledge that isn't documented. Fix: Recorded walkthroughs before any team reduction.

11 / 14 Recommendation

Staffing Path: 7 → 2 in 8 Weeks

Week 1 (Mar 3) — Merge Sprint
7 developers → merge all PRs
Break mega-PRs into reviewable chunks. Individual git accounts. Fix quality gates. Enforce Jenkinsfile.
Weeks 2-3 (Mar 10) — Knowledge Transfer
7 developers → document everything
Each developer records 30-min module walkthrough. Document Core PHP → Laravel decisions. Set up staging.
Week 4 (Mar 24) — First Reduction
7 → 3-4 developers
Keep Danish (senior/reviewer), 1-2 portal builders, Usama (AI-tooled). Begin AI-assisted Manager portal.
Week 6 (Apr 7) — Second Reduction
3-4 → 2 developers
2-person team + AI at full velocity. Complete remaining modules.
Week 10 (May 5) — Feature Complete
All 8 portals functional
Test coverage >80%. Legacy code removed. Production-ready. Steady state: 2 people.
12 / 14 Projections

Three Scenarios

A: Keep Current Team

8-12 wks
May-Jun 2026
  • 7 devs continue as-is
  • Same coordination overhead
  • Higher cost, same quality issues
  • No process improvement

B: Phased Reduction (Recommended)

8-10 wks
May 2026
  • 7 → 4 → 2 over 6 weeks
  • Knowledge transfer built in
  • AI acceleration from week 4
  • Best balance of speed + cost

C: Cut to 2 Immediately

12-16 wks
Jun-Jul 2026
  • Lose 548 unmerged commits context
  • No knowledge transfer
  • Higher risk of rework
  • Paradoxically slower
13 / 14 Action Items

Immediate Actions (This Week)

Monday (zero cost)

  • Individual git accounts for all 7 TechTiz developers
  • Remove || true from Jenkinsfile quality gates
  • Add Modules/ to phpunit.xml coverage

This Week

  • Break GTT-554 (33k lines) and GTT-662 (16k lines) into sub-PRs
  • Enforce 500 LOC PR size limit
  • Create CODEOWNERS file
  • Set up staging environment

Next 2 Weeks

  • Each developer records module walkthrough (30 min)
  • Document Core PHP → Laravel architectural decisions
  • Merge all complete feature branches to master
  • Merge LARAVEL_CODING_STANDARDS.md v2.2

March (Week 4)

  • First team reduction: 7 → 3-4
  • AI-scaffold Manager portal from Case Manager template
  • Begin legacy Blade/jQuery cleanup
  • Achieve >80% test coverage on new code
14 / 14 Summary

Bottom Line

57%
Complete Today
8-10 wks
To Feature Complete
2
Target Team Size

The Good News

  • The hard architectural work is done
  • Case Manager portal provides a complete template for remaining portals
  • Team already using AI tools (Claude, Cursor)
  • Strong quality infrastructure exists (just needs enforcing)
  • 85-90% of remaining CRUD work is AI-automatable

The Urgent Fixes

  • Today: Individual git accounts + fix quality gates
  • This week: Break mega-PRs, set up staging
  • Week 2-3: Knowledge transfer + documentation
  • Week 4: First reduction (7 → 3-4)
  • Week 6: Target state (2 people + AI)

Full report: docs/laravel-migration-assessment-2026-02-27.md · Slack export: docs/slack-export-core-php-migration-statuses.md