8 min read • Guide 254 of 877
Team Communication Best Practices
Good communication isn't more communication—it's the right information reaching the right people at the right time through the right channel. Poor communication creates gaps, but over-communication creates noise. The goal is signal, not volume.
Communication Channels
| Channel | Best For | Response Expectation |
|---|---|---|
| Slack/Chat | Quick questions, FYI | Hours |
| External, formal, long-form | Day | |
| Meeting | Complex discussions, decisions | Synchronous |
| Doc | Detailed proposals, records | Asynchronous review |
| Task comments | Work context | When working on task |
Channel Selection
Right Channel, Right Message
CHANNEL SELECTION GUIDE
═══════════════════════
SLACK/CHAT:
─────────────────────────────────────
✓ Quick question with expected quick answer
✓ FYI that needs no response
✓ Casual team interaction
✓ Real-time coordination
✓ Announcements
✗ Detailed technical discussion
✗ Anything needing more than 2 replies
✗ Long-form content
✗ Decision that needs documentation
✗ Sensitive/negative feedback
DOCUMENT:
─────────────────────────────────────
✓ Technical proposals (RFC)
✓ Meeting notes
✓ Decision records
✓ Onboarding guides
✓ Anything people will reference later
✗ Urgent communications
✗ Questions needing quick answers
✗ Informal discussion
TASK COMMENTS (GitScrum):
─────────────────────────────────────
✓ Discussion about specific work item
✓ Clarifying requirements
✓ Progress updates on task
✓ Technical decisions for that task
✓ Information future-you needs
✗ General team discussion
✗ Personal messages
✗ Unrelated topics
MEETING:
─────────────────────────────────────
✓ Complex problem needing discussion
✓ Multiple perspectives needed quickly
✓ Sensitive topics
✓ Relationship building
✓ When async has failed
✗ Status updates (use async)
✗ One-way information sharing
✗ Topics that need preparation
✗ Default because "easier"
Writing Clearly
Complete Messages
EFFECTIVE WRITTEN COMMUNICATION
═══════════════════════════════
BAD MESSAGE PATTERN:
─────────────────────────────────────
"Hey"
*waits*
"Quick question"
*waits*
"About the API"
*waits*
"Is it ready?"
Result: 4 notifications, incomplete info,
interrupted someone unnecessarily.
GOOD MESSAGE PATTERN:
─────────────────────────────────────
"Hey Mike, quick question about the User API:
Is the GET /users/{id} endpoint ready for
frontend integration? I'm starting on the
profile page and need to know if I should
mock it or use the real endpoint. Need to
know by EOD if possible. Thanks!"
Result: One notification, all context,
clear timeline, can respond async.
COMPLETE MESSAGE TEMPLATE:
─────────────────────────────────────
1. Context: What is this about?
2. Request: What do you need?
3. Timeline: When do you need it?
4. Options: If applicable
5. Next step: What you'll do
EXAMPLE:
"Context: Working on GS-245 (payment flow).
Request: Need decision on refund states.
Options: Map to 2 states (simpler) or 3 states (accurate).
Timeline: Tomorrow EOD to stay on sprint track.
Next step: I'll proceed with 3 states unless you say otherwise."
Clarity Techniques
WRITING FOR CLARITY
═══════════════════
USE STRUCTURE:
─────────────────────────────────────
Instead of:
"So I was working on the thing and found
that the thing doesn't work when the other
thing happens and I'm not sure what to do
about the thing."
Use:
"Issue: Payment fails when user has no card.
Found: We don't check for card existence.
Proposed fix: Add null check in PaymentService.
Question: Should we show UI message or silent fail?"
FORMAT FOR SCANNABILITY:
─────────────────────────────────────
├── Bold key points
├── Bullet lists
├── Short paragraphs
├── Clear headers
├── TLDR at top if long
└── Respect reader's time
BE SPECIFIC:
─────────────────────────────────────
Vague: "It's broken"
Specific: "Login returns 500 on Safari 17"
Vague: "Soon"
Specific: "By Friday EOD"
Vague: "Some users"
Specific: "23% of users in EU region"
Async First
Default to Async
ASYNC-FIRST CULTURE
═══════════════════
WHY ASYNC DEFAULT:
─────────────────────────────────────
├── Respects focus time
├── Works across timezones
├── Creates documentation
├── Allows thoughtful responses
├── Reduces meeting overload
└── Scales better
ASYNC PRACTICES:
─────────────────────────────────────
1. Set response expectations
"Slack: Respond within 4 hours"
"Email: Respond within 24 hours"
"Not urgent = not instant"
2. Write complete messages
(See above)
3. Use status indicators
"🔕 Focus mode until 2pm"
"🌴 OOO until Monday"
"⏰ Delayed response today"
4. Batch communications
Check Slack at: 9am, 12pm, 4pm
Not: Every 5 minutes
5. Emergency escalation
"Production down = call, not Slack"
"True urgent = call directly"
Everything else can wait.
When Sync Is Right
SYNC COMMUNICATION TRIGGERS
═══════════════════════════
USE SYNC WHEN:
─────────────────────────────────────
├── Async has failed
│ "We've gone 5 messages and still unclear.
│ Let's do a quick call."
│
├── Complex discussion
│ "This architecture needs whiteboarding.
│ Let's meet for 30 min."
│
├── Sensitive topic
│ "Performance feedback in person,
│ not in writing."
│
├── Relationship building
│ "1:1 coffee chats build trust."
│
├── Urgent issue
│ "Production down—hop on call now."
│
├── Multiple perspectives needed fast
│ "Need input from design, eng, product.
│ 30 min meeting better than 50 messages."
│
└── Celebration
"Team won award—let's do video call."
SYNC RULES:
─────────────────────────────────────
├── Have agenda
├── Timebox
├── Document outcomes
├── Invite only needed people
└── Could this be async? (Always ask)
Information Flow
Keep People Informed
INFORMATION DISTRIBUTION
════════════════════════
CATEGORIES:
─────────────────────────────────────
NEED TO KNOW:
├── Affects their work directly
├── Push to them actively
├── @mention or direct message
└── Confirm receipt
SHOULD KNOW:
├── Relevant but not urgent
├── Post to channel
├── Don't require response
└── They can catch up
MIGHT WANT TO KNOW:
├── FYI only
├── Put in accessible place
├── Don't push
└── Weekly digest perhaps
METHODS BY CATEGORY:
─────────────────────────────────────
Need to know: DM with @mention, meeting
Should know: Channel post, shared doc
Might want: Wiki page, newsletter
DON'T:
├── Push everything to everyone
├── CC the world on emails
├── @here for non-urgent
├── Create noise that hides signal
Reducing Noise
NOISE REDUCTION TACTICS
═══════════════════════
CHANNEL HYGIENE:
─────────────────────────────────────
├── Purpose-specific channels
│ #proj-alpha (project discussion)
│ #team-engineering (team-wide)
│ #random (non-work)
│ #alerts (automated notifications)
│
├── Use threads for follow-ups
├── Avoid channel pollution
├── Pin important messages
└── Archive dead channels
NOTIFICATION MANAGEMENT:
─────────────────────────────────────
Encourage:
├── Mute low-priority channels
├── Schedule notification windows
├── Use DND during focus time
├── Keywords for must-see topics
└── Don't demand instant response
MEETING REDUCTION:
─────────────────────────────────────
├── Cancel meetings that should be email
├── Decline meetings you don't need
├── Reduce recurring frequency
├── Shorten defaults
└── Async agenda before sync meeting
GitScrum Communication
Work-Related Discussion
GITSCRUM AS COMMUNICATION HUB
═════════════════════════════
TASK COMMENTS:
─────────────────────────────────────
Keep work discussion on the work:
├── Requirements clarification
├── Technical decisions
├── Progress updates
├── Blocker notes
├── Links to relevant docs
└── Future reference
Benefits:
├── Context travels with task
├── New team members see history
├── No digging through Slack
├── Searchable
└── Source of truth
EXAMPLE:
─────────────────────────────────────
Task: GS-245 Payment Integration
Comment 1 (Sarah):
"Confirmed with Stripe that we need
their v2 API for this flow. Docs: [link]"
Comment 2 (Mike):
"Found an edge case with partial refunds.
Adding GS-250 to handle this."
Comment 3 (PM):
"Stakeholder agreed to cut offline mode.
Updated acceptance criteria."
All context in one place.
DASHBOARDS:
─────────────────────────────────────
Use GitScrum dashboards for visibility:
├── Sprint status → stakeholders can self-serve
├── Burndown → progress visible
├── Blockers → visible without asking
└── Reduces "where are we?" meetings
Best Practices
For Team Communication
- Right channel — Match message to medium
- Complete messages — All context at once
- Async first — Sync for complex/sensitive
- Reduce noise — Signal over volume
- Document outcomes — Sync conversations → async record
Anti-Patterns
COMMUNICATION MISTAKES:
✗ "Hey" messages (incomplete)
✗ Chat-style fragments
✗ Everything is urgent
✗ CC everyone on everything
✗ Meetings for status updates
✗ Expecting instant response
✗ No documentation of decisions
✗ Wrong channel for message type