Knowledge Management for Dev Teams | ADRs, Docs
Capture and share team knowledge with GitScrum. Document architecture decisions, onboarding guides, and processes where work happens. Reduce onboarding time.
9 min read
Knowledge walks out the door when people leave. GitScrum helps teams document decisions, processes, and learnings where work happens.
Knowledge Types
What to Document
DOCUMENTATION CATEGORIES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ARCHITECTURE & DESIGN: β
β β’ System architecture diagrams β
β β’ API documentation β
β β’ Data models β
β β’ Architecture Decision Records (ADRs) β
β β’ Technology choices and rationale β
β β
β PROCESSES: β
β β’ Deployment procedures β
β β’ On-call runbooks β
β β’ Code review guidelines β
β β’ Sprint rituals β
β β’ Incident response β
β β
β ONBOARDING: β
β β’ Setup guides β
β β’ Team norms and expectations β
β β’ Key contacts and roles β
β β’ First week checklist β
β β’ Common gotchas β
β β
β DECISIONS: β
β β’ Why we chose X over Y β
β β’ Context that informed decisions β
β β’ Trade-offs considered β
β β’ When to revisit decisions β
β β
β LEARNINGS: β
β β’ Post-mortem insights β
β β’ Retrospective action items β
β β’ Tribal knowledge β
β β’ Tips and tricks β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Documentation Locations
WHERE KNOWLEDGE LIVES:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β IN CODE REPOSITORY: β
β β
β /docs β
β βββ README.md Quick start β
β βββ CONTRIBUTING.md How to contribute β
β βββ architecture/ β
β β βββ overview.md System architecture β
β β βββ decisions/ ADRs β
β β βββ 001-use-postgres.md β
β β βββ 002-auth-approach.md β
β βββ api/ API documentation β
β βββ runbooks/ Operational guides β
β β
β IN WIKI/NOTION: β
β β
β Team Handbook β
β βββ Team processes β
β βββ Meeting schedules β
β βββ Roles and responsibilities β
β βββ Onboarding guide β
β β
β IN GITSCRUM: β
β β
β β’ Task context and requirements β
β β’ Discussion history β
β β’ Decision rationale β
β β’ Links to relevant docs β
β β
β PRINCIPLE: β
β Technical docs β near code β
β Process docs β shared wiki β
β Task context β GitScrum β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Architecture Decision Records
ADR Format
ARCHITECTURE DECISION RECORD:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ADR-002: Use PostgreSQL for Primary Database β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β STATUS: Accepted β
β DATE: 2024-01-15 β
β AUTHORS: @alex, @maria β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β CONTEXT: β
β We need a primary database for user data, projects, and β
β tasks. Expect 100K users in year one, 1M by year three. β
β Team has experience with both MySQL and PostgreSQL. β
β β
β DECISION: β
β We will use PostgreSQL as our primary database. β
β β
β RATIONALE: β
β β’ Better JSON support for flexible schemas β
β β’ Superior full-text search capabilities β
β β’ Strong ACID compliance β
β β’ Good performance at our expected scale β
β β’ Team familiarity β
β β
β ALTERNATIVES CONSIDERED: β
β β
β MySQL: β
β β’ Pro: Slightly more team experience β
β β’ Con: Weaker JSON support β
β β’ Con: Need separate search solution β
β β
β MongoDB: β
β β’ Pro: Flexible schema β
β β’ Con: Eventual consistency concerns β
β β’ Con: Less team experience β
β β
β CONSEQUENCES: β
β β’ Need PostgreSQL hosting (RDS) β
β β’ Team training on Postgres-specific features β
β β’ Can leverage JSONB for extensible fields β
β β
β REVIEW DATE: 2025-01-15 (or at 500K users) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
When to Write ADRs
ADR TRIGGER POINTS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β WRITE AN ADR WHEN: β
β β
β TECHNOLOGY CHOICES: β
β β’ Selecting a database β
β β’ Choosing a framework β
β β’ Adopting a new service β
β β’ Picking a vendor β
β β
β ARCHITECTURAL PATTERNS: β
β β’ Microservices vs monolith β
β β’ API design approach β
β β’ Authentication strategy β
β β’ Caching approach β
β β
β SIGNIFICANT CHANGES: β
β β’ Rewriting a major component β
β β’ Changing deployment strategy β
β β’ Modifying data model significantly β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β DON'T WRITE ADR FOR: β
β β
β β’ Minor library choices β
β β’ Easily reversible decisions β
β β’ Implementation details β
β β’ Obvious choices β
β β
β GITSCRUM INTEGRATION: β
β Create ADR task when significant decision needed β
β Link ADR to related feature work β
β Include in Definition of Done for architecture changes β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Onboarding Documentation
New Member Guide
ONBOARDING DOCUMENTATION:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DAY 1 SETUP GUIDE: β
β β
β β ACCOUNTS β
β β’ GitHub access: [Request link] β
β β’ Slack: Join #team-eng, #announcements β
β β’ GitScrum: [Invite link] β
β β’ Cloud console: Request from @alex β
β β
β β LOCAL DEVELOPMENT β
β β’ Clone repos: [List] β
β β’ Install dependencies: See README β
β β’ Environment setup: [Guide link] β
β β’ Verify: Run tests β
β β
β β FIRST WEEK β
β β’ Meet the team (1:1s scheduled) β
β β’ Review architecture docs β
β β’ Complete "hello world" task β
β β’ Shadow on-call for one day β
β β’ Ask lots of questions! β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β KEY CONTACTS: β
β β
β Manager: @sarah β
β Buddy: @jordan (first point of contact) β
β Tech lead: @alex (architecture questions) β
β Product: @priya (requirements questions) β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β COMMON GOTCHAS: β
β β
β β’ VPN required for staging access β
β β’ Run `npm run setup` before first test β
β β’ Database seeds: `npm run db:seed` β
β β’ If build fails, try clearing node_modules β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Keeping Docs Current
Documentation Hygiene
PREVENTING STALE DOCUMENTATION:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β STRATEGIES: β
β β
β 1. DOCS IN DEFINITION OF DONE β
β Every feature task: β
β β Code complete β
β β Tests pass β
β β Documentation updated β
β β PR approved β
β β
β 2. ASSIGN DOC OWNERS β
β README.md β @alex (reviewed quarterly) β
β Onboarding guide β @jordan (updated monthly) β
β API docs β Auto-generated from code β
β β
β 3. REGULAR AUDITS β
β Quarterly: Review all docs for accuracy β
β Check: Last updated dates β
β Delete: Obsolete documentation β
β Update: Stale sections β
β β
β 4. DOCS NEAR CODE β
β README in each service repo β
β Comments in complex code β
β API docs generated from code β
β Changes together = less drift β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β QUARTERLY DOC AUDIT TASK: β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β DOC-Q1: Documentation Quarterly Review ββ
β β ββ
β β β Review onboarding guide ββ
β β β Check architecture diagrams ββ
β β β Verify runbooks still accurate ββ
β β β Delete obsolete pages ββ
β β β Update last-reviewed dates ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Knowledge Capture
From Tasks to Knowledge
GITSCRUM AS KNOWLEDGE SOURCE:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β TASK CONTEXT BECOMES KNOWLEDGE: β
β β
β WELL-DOCUMENTED TASK: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β PROJ-123: Implement Rate Limiting ββ
β β ββ
β β Context: ββ
β β API experiencing abuse, need rate limiting to protect ββ
β β infrastructure. ββ
β β ββ
β β Decision: ββ
β β Using Redis + sliding window algorithm. ββ
β β Considered token bucket but sliding window better ββ
β β for our burst patterns. ββ
β β ββ
β β Implementation notes: ββ
β β β’ 100 requests/minute per API key ββ
β β β’ Headers indicate remaining quota ββ
β β β’ Bypass for internal services via header ββ
β β ββ
β β Related PR: #456 ββ
β β Follow-up: Create ADR for rate limiting approach ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SEARCHABLE LATER: β
β "Why did we choose sliding window?" β
β β Search GitScrum β Find PROJ-123 β See context β
β β
β PROMOTE TO PERMANENT DOCS: β
β Important decisions β ADR β
β Common procedures β Runbook β
β Architectural choices β Architecture doc β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Retrospective Learnings
CAPTURING RETRO INSIGHTS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β AFTER RETROSPECTIVE: β
β β
β 1. DOCUMENT DECISIONS β
β What we decided to do differently β
β β Create GitScrum tasks for action items β
β β
β 2. UPDATE PROCESSES β
β If we changed a process β
β β Update the wiki/handbook β
β β Communicate change to team β
β β
β 3. SHARE LEARNINGS β
β Insights valuable to others β
β β Post in engineering channel β
β β Add to team knowledge base β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β EXAMPLE: β
β β
β Retro insight: "PRs sat too long in review" β
β β
β Actions: β
β β Task: Set up PR review SLA notifications β
β β Doc update: Add review SLA to team handbook β
β β Process: Add review time to standup β
β β
β 3 months later: "Why do we have PR SLAs?" β
β β Check retro notes β Find the reason β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ