Balancing technical debt payoff vs. feature velocity in a 6-person team
We're a 6-engineer startup team. For the last two quarters we shipped fast, and the codebase shows it: no CI pipeline, zero test coverage on the backend, monolithic Django app that takes 8 minutes to cold-start, and about 15 direct dependencies that haven't been updated in 2+ years. The product side is pushing hard on three new features. Meanwhile, onboarding a new dev takes 2 weeks because the setup is manual and undocumented. We're considering a 20% time allocation for tech debt (one day per sprint dedicated to infra/tooling cleanup). The question is: what's the most impactful first move? Options we're debating: 1. Set up CI (GitHub Actions) — immediate feedback, prevents regressions 2. Add integration tests for the 5 most critical API endpoints 3. Containerize the dev environment (Docker Compose) — cuts onboarding from 2 weeks to 2 days 4. Dependency audit + security patching first What has actually moved the needle for your team at this stage? Not looking for textbook answers — what worked in practice?