Collaboration Tools & Infrastructure¶
Philosophy: Async-first, documentation-heavy, tool-agnostic collaboration
Overview¶
This directory contains templates, processes, and guidelines for team collaboration and coordination. Even solo developers need this infrastructure for their "future self" and eventual team growth.
Goal: Enable effective async-first collaboration while maintaining code quality, knowledge sharing, and team cohesion.
Directory Structure¶
03_12_00_communication_setup/¶
Purpose: How team communicates and coordinates
Key files: - Communication matrix (what tool for what purpose) - Slack configuration and best practices - Discord setup for audio development teams - Webhook integrations (GitHub, CI/CD, monitoring)
Use when: Setting up team communication infrastructure
03_12_01_project_management/¶
Purpose: Track work, plan sprints, manage projects
Key files: - Linear setup guide (paid, powerful) - GitHub Projects guide (free alternative) - Estimation guidelines (story points, velocity) - Issue templates (bug report, feature request, technical spike)
Use when: Need to organize and track development work
03_12_02_review_workflows/¶
Purpose: Code review process and best practices
Key files: - Pull request template - Review checklist (comprehensive) - Review etiquette (how to give/receive feedback) - Approval process (merge requirements)
Use when: Establishing or improving code review culture
03_12_03_knowledge_sharing/¶
Purpose: Organize and share team knowledge
Key files: - Wiki structure and organization - ADR template (cross-reference to decision tracking) - Troubleshooting guide template - Meeting notes template
Use when: Building team knowledge base
03_12_04_onboarding_process/¶
Purpose: Ramp up new team members quickly
Key files: - Onboarding checklist (Day 1 → Month 3) - Buddy system guide (mentoring structure) - Good first tasks (building confidence) - Cultural guide (team values and norms)
Use when: Hiring and onboarding new team members
03_12_05_decision_tracking/¶
Purpose: Document and track important decisions
Key files: - ADR template and example (Architecture Decision Records) - Decision log template (lighter weight) - RFC process (Request for Comments for major proposals) - Retrospective format (sprint improvement process)
Use when: Making and documenting significant decisions
Quick Start Guides¶
Solo Developer¶
You still need collaboration infrastructure for your future self:
- Minimal setup:
- GitHub Issues for task tracking
- ADRs for major decisions (when they happen)
- Keep a daily notes file
-
Basic README documentation
-
Nice to have:
- GitHub Projects kanban board
- Automated CI/CD notifications (email)
- Decision log for smaller choices
Small Team (2-5 people)¶
- Communication (Week 1):
- Choose: Slack (paid, enterprise) or Discord (free, audio-friendly)
- Set up essential channels
- Define response time expectations
-
Configure GitHub webhooks
-
Project Management (Week 2):
- Choose: GitHub Projects (free) or Linear (paid, $8/user)
- Create basic workflow (Backlog → Todo → In Progress → Review → Done)
- Set up issue templates
-
Plan first sprint (2 weeks)
-
Code Review (Week 3):
- Define PR requirements (1 approval, tests pass)
- Use PR template
- Train team on review etiquette
-
Set response time target (< 24h)
-
Knowledge Sharing (Week 4):
- Start ADRs for major decisions
- Create basic wiki structure
- Document first troubleshooting guides
- Keep meeting notes
Growing Team (5-15 people)¶
Do everything above, plus:
- Communication:
- Project-specific channels
- User groups/roles for @mentions
- On-call rotation and alerts
-
No-meeting time blocks
-
Project Management:
- Full Linear/GitHub Projects setup
- Estimation and velocity tracking
- Roadmap planning (quarterly)
-
Multiple project boards
-
Code Review:
- CODEOWNERS file (auto-assign reviewers)
- Review rotation (spread knowledge)
- Pair programming sessions
-
Architecture review group
-
Onboarding:
- Formal onboarding checklist
- Buddy system
- Good first issue backlog
-
Cultural documentation
-
Decision Tracking:
- RFC process for major changes
- ADR index and organization
- Sprint retrospectives
- Quarterly process reviews
Core Principles¶
1. Async-First Communication¶
- Default to written communication (Slack, GitHub, docs)
- Respect deep work time (no expectation of immediate response)
- Document decisions (don't lose them in chat)
- Meetings are exception, not default
Why: Enables distributed teams, respects focus time, creates searchable history
2. Documentation-Heavy¶
- Write it down (decisions, processes, architecture)
- Keep it current (outdated docs worse than no docs)
- Make it discoverable (clear structure, good search)
- Link liberally (connect related information)
Why: Institutional knowledge, onboarding, prevents re-litigating
3. Tool-Agnostic¶
- Define processes, not tools (works with Slack, Discord, Teams, etc.)
- Choose tools intentionally (team consensus, needs-based)
- Tools serve process, not vice versa
- Be willing to change (if tool isn't working)
Why: Flexibility, avoid vendor lock-in, focus on principles
4. Quality Over Speed¶
- Code reviews are thorough (not rubber-stamping)
- Tests are required (not optional)
- Refactor when needed (don't accumulate debt)
- Ship working software (not "fix it later")
Why: Long-term velocity, maintainability, team sanity
5. Kindness & Respect¶
- Be kind in reviews (critique code, not people)
- Assume good intent (people make mistakes)
- Disagree respectfully (focus on what's best)
- Celebrate successes (recognize good work)
Why: Psychological safety, team cohesion, retention
Implementation Roadmap¶
Month 1: Foundation¶
- Choose communication platform (Slack/Discord)
- Set up GitHub repository
- Configure basic GitHub Actions (CI)
- Create first ADR (technology choices)
- Write initial README
Month 2: Processes¶
- Define code review workflow
- Set up project management (Linear/GitHub Projects)
- Create issue templates
- First sprint (2 weeks)
- First retrospective
Month 3: Documentation¶
- Start team wiki
- Document architecture (high-level)
- Create troubleshooting guides
- Onboarding checklist (if hiring)
- Cultural guide
Month 4+: Refinement¶
- Review and iterate on processes
- Automate what can be automated
- Scale processes as team grows
- Regular retrospectives and improvements
Metrics to Track¶
Communication Health¶
- Response time (by priority): P0 < 15min, P1 < 2h, P2 < 24h
- Decisions documented: 100% of architectural decisions in ADRs
- Meeting hours/week: < 5 hours (async-first working)
Code Review Health¶
- Review time: Average < 24 hours to first review
- Approval rate: 50-70% approved first review (not too lenient/strict)
- PR size: Average < 400 lines (reviewable in < 30 min)
Onboarding Health¶
- Time to first PR: < 3 days
- Time to productivity: < 1 month
- Retention: New hires stay > 1 year
Knowledge Health¶
- Doc freshness: Reviewed quarterly
- Search success: Can find info in < 5 minutes
- ADR coverage: All major decisions documented
Common Challenges¶
Challenge 1: Too Much Process¶
Symptom: Team complains about bureaucracy, process slowing down shipping
Solution: - Audit processes quarterly - Remove what's not adding value - Automate repetitive tasks - Trust team more, gatekeep less
Challenge 2: Not Enough Process¶
Symptom: Chaos, lost decisions, unclear ownership, frequent miscommunication
Solution: - Start with minimums (communication matrix, code review, ADRs) - Add incrementally based on pain points - Document as you go - Iterate in retrospectives
Challenge 3: Process Drift¶
Symptom: Documented processes don't match reality
Solution: - Quarterly review of documentation - Update docs or change practice (pick one) - Make docs easy to update - Assign owners to key docs
Challenge 4: Low Engagement¶
Symptom: People don't participate in retros, reviews, discussions
Solution: - Make meetings optional (trust team) - Rotate facilitation (spread ownership) - Act on feedback (show it matters) - Keep meetings short and valuable
Challenge 5: Information Overload¶
Symptom: Too many channels, notifications, meetings; can't keep up
Solution: - Consolidate channels (fewer, better-organized) - Clear notification policies (what requires immediate attention) - Async default (reduce synchronous pressure) - No-meeting blocks (protect focus time)
Customization Guide¶
These templates are starting points. Adapt to your team:
Small Adjustments¶
- Change terminology (sprint → cycle, ADR → decision doc)
- Adjust response times (based on team size, timezone spread)
- Modify issue templates (add/remove sections)
- Choose different tools (Slack vs Discord, Linear vs GitHub Projects)
Major Adaptations¶
- Industry-specific (embedded, game dev, web)
- Company culture (startup vs enterprise)
- Team structure (centralized vs distributed)
- Regulatory requirements (compliance, security)
Key: Preserve principles (async-first, documented, kind), change details
Resources¶
External Resources¶
- GitLab Async Communication Guide
- Basecamp: Shape Up - Alternative to Scrum
- Agile Retrospectives
- ADR GitHub Org
- Conventional Comments
Internal Resources (This Repo)¶
- Version Control - Git workflows
- Documentation Platform - Technical docs setup
- Testing Infrastructure - CI/CD, test automation
Contributing¶
Found a better practice? Have a template improvement? Please contribute!
- Test the change with your team
- Document why it's better
- Create PR with update
- Share learnings in description
We learn from each other.
Support¶
Questions about these processes? - Communication: See communication_matrix.md - Onboarding: See onboarding_checklist.md - Decisions: See adr_template.md
Remember: Process should enable great work, not prevent it. Start simple, iterate based on real needs, and always optimize for team happiness and productivity.