Team Communication Best Practices | Async First
Choose right channels, write complete messages, and default to async. GitScrum keeps work discussion on tasks with dashboards to reduce status meetings.
8 min read
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
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