R&D Async Collaboration Guidelines
Asynchronous Communication
Effective asynchronous communication is crucial for maintaining transparency and collaboration within our home team as well as with key stakeholders. To ensure that everyone is informed and aligned, we have established the following guidelines.
PS: Believe that by incorporating these guidelines into our daily routine, we contribute to a culture of transparency as well as reduce the number of meetings that don’t bring enough value to participants.
Disclaimer: We can change aspects of the document as we see fit based on squad dynamics.
I-Home Squad regular updates
I.1.Weekly Planning Updates:
Question: "What must you achieve this week to consider it successful?"
Highlight priorities or deadlines that need special attention.
Provide a brief overview of the tasks and epics you plan to focus on during the week.
What updates should contain:
Details on tasks (including Jira tickets).
When: To be shared every Monday or the first working day of the week in your region.
Where: Home squad channel
I.2.Twice a week updates:
Questions:
"How close are you to this week's success? Are there any blockers preventing you from completing your tasks?
What updates should contain:
Work Updates so far in the week:
Share a detailed account of your daily tasks and accomplishments.
Include progress made, challenges encountered, and any unexpected issues.
Blockers:
Clearly identify any obstacles preventing you from making progress.
Specify if you need assistance or if there's a need for a collaborative solution.
PS: Be specific
When: To be shared every Wednesday and Friday till the end of the day in your region.
Where: Home squad channel
I.3.Example of Detailed Update:
Weekly Plan:
This week, I plan to focus on completing the backend API for Feature X.
I'll also spend time reviewing and providing feedback on PRs related to Component Y.
Work Updates so far in the week:
Today, I completed the authentication module for Feature X.
I conducted a code review for John's PR on Component Y and provided detailed feedback.
Or
“Team, I tried to find out the cause of the issue, here are my findings, Theory for SUP-542:
1-On first click the Zoom user is getting created, but there is an error while setting the avatar. Which can be seen from the video, why the zoom user didn't had any avatar
2-On second click to install the zoom App, the function won't bother creating a new user, neither setting an avatar, that's why it's getting installed. Because on this line: it simply returns the appUser
id with a success.
Now trying to figure out why creating an avatar failed.”
Blockers:
I've encountered an issue with a third-party library in the authentication module. I've posted the details in our #help-needed channel.
II.Task Related Meeting Documentation
In addition to the regular asynchronous updates, for every meeting related to a task, the task owner needs to update the corresponding Jira issue with a summary of the meeting and any decisions made. This practice ensures that everyone is aligned and well-informed, even if they were not directly involved in the meeting.
II.1.Guidelines:
Meeting Summary:
Provide a brief summary of what was discussed during the meeting. Highlight key points, challenges, and any significant updates related to the task.
Decisions Made:
Clearly document any decisions that were made during the meeting. This includes action items, changes in scope, or resolutions to challenges.
Action Items:
Identify and list any action items that arose from the meeting. Assign responsibilities for each action item to ensure accountability.
Example of Jira Update:
**Meeting Summary:**
Today's meeting focused on refining the acceptance criteria for Task XYZ. We discussed the user flow and resolved an ambiguity regarding the data validation process.
**Decisions Made:**
The team agreed to update the acceptance criteria to include specific scenarios for edge cases.
It was decided to extend the code freeze period by two days for thorough testing.
**Action Items:**
[ ] John to update the acceptance criteria in the task description by EOD.
[ ] Sarah to communicate the code freeze extension to the QA team.
III.Regular Jira Check-ins
To maintain real-time awareness of project status and progress, team members must check Jira for tasks and updates at least twice a day. This practice ensures that everyone remains informed, and aligned, and can proactively address any emerging issues.
III.1.Guidelines:
Morning Check-in:
Start your workday by reviewing Jira. Check for updates on your assigned tasks, any new comments or changes, and identify daily priorities. Follow the principle “Stop starting, Start finishing”. Meaning: Preferably do not pick up new tasks until existing tasks are completed; which includes reviewing ready for QA and ready for review items from peers.
Afternoon Check-in:
In the afternoon, take a moment to revisit Jira. Update the status of your tasks, provide any relevant progress information, and check for notifications or updates from team members.
Communication Channels:
Use Jira as the primary source for task-related information. While other communication channels may be used for discussions & report blockers, Jira serves as the central repository for task details and progress tracking.
Example Reminder:
**Daily Jira Check-in Reminder:**
**Morning Check-in:**
Review assigned tasks.
Check for new comments or changes.
Identify priorities for the day.
**Afternoon Check-in:**
Update task statuses.
Provide progress information.
Check for team updates and notifications.
III.2.Why Regular Jira Check-ins Matter:
Real-time Awareness:
Regular check-ins ensure that everyone is aware of the latest developments and can adapt their plans accordingly.
Proactive Issue Resolution:
Early detection of blockers or issues allows for timely resolution, preventing delays in project timelines.
Collaborative Alignment:
Consistent Jira check-ins promote a shared understanding of the team's progress and individual contributions.
Efficient Communication:
Using Jira as the central hub for task-related information streamlines communication and reduces the need for redundant updates in other channels.
IV.When to Create a new card in JIRA
All can create jira cards and add them to the sprint/board, so the big question is when should someone do it?
Your main guide on this task is “Job to be done”. What is the intention and expected results from a given task?
-In case the issue you found is not related to the job to be done or if will require time invested from you on a deviation of the job to be done; a card should be created.
After creating a tag EM so that person knows there is a new card on backlog to prioritize.
If you are in doubt, contact home squad Engineer Manager.
PS: Please notice this is just applicable for creating a new task; sub-tasks can be created a will.
V.Urgent Items that come up
All know that from time to time there are urgent items that come up and need to be addressed by squad. If those happen, a message tagging all will be posted on the home squad channel containing jira ticket and details related to the situation.
People are expected to react pointing that message was read, and mentioning in the message thread once task was picked by a person in the squad to work on.
VI.Expected actions on going from Async to Sync
Please make sure you use the home squad channel to post blockers, questions, and concerns. Be as specific as possible with items before engaging others.
Some aspects to consider as you share your topics:
-What have you tried so far?
-What is your thought process over the item?
-What is the blocker being experienced at this point?
-What do you need help with?
As a meeting to remove blockers or sync communication via channel, direct message or call happens, please add routes and decisions on related Jira task.
VII.Vacations and PTO
Please note that all PTO-related company guidelines apply to the home squad and can be found in the company handbook; Also the PTO Best practices for engineering are applicable; which means home squad EM should approve or deny PTO requests. Note that depending on the timing and company needs, those might be declined.
As additional steps and info:
All should send a message on channel informing about PTO/Vacations.
All are expected to add to home squad shared calendar the dates in which they will be on PTO/Vacations.
If there are conflicts, engineers are expected to talk with each other to propose a solution first and later involve the EM.
VIII.Retrospectives
-We’ll have async retrospectives where a board on figma (as tool is still available) will be shared for squad inputs during a 3-day period (i.e. posting on Tuesday; to be reviewed on Friday EoD by EM).
-An optional attendance meeting will be scheduled to go over items as needed.
-Actions related to the retrospective will be added by EM to a Retrospective Epic and prioritized.
IX.What to do when I’m assigned to a project
-As you get assigned to a project, share a message on channel for all to know what project you were assigned and the current timeline of the project.
-Keep in touch with EM on 1:1s or via DM for general updates.
-As you get back to home squad (project completed), post a message on channel sharing that you are back.
X.Redflags and how we’ll know this is failing
X.1.Redflags that I’ll push to address during 1:1s
Not Providing Relevant Details on Jira Tasks & Channel:
If updates lack the necessary details, it may lead to misunderstandings. Team members are expected to provide sufficient context to facilitate understanding on all async communication.
Not Providing Updates at All:
Consistent failure to provide updates raises concerns about workflow and progress. Regular communication is essential for collaboration and problem-solving.
No Reactions on channel:
We expect people to read and participate in channel. Not showing up on home squad to at least react will be seen as a red flag.
Rocket.Chat Status and availability to reply:
People have flexibility to work on their hours, unless stated otherwise it’s country regular business hours or upon agreement with EM/TL an alternative work schedule. Constantly being offline or being online, but not giving any replies in a timely manner for communication will be seen and treated as a concern.
X.2.Things that will show me that async is not working:
-No reaction to messages on channels
-Lack of reply to the squad channel
-People not aware of what is happening
-Many tasks that have little to no sync at all popping up.
-As an R&D organization we are failing OKRs
-Working happening off track.
-EM and TL have a common understanding that the model is not working. (based on our sense of progress and the squad).
X.3.What happens if this fails?
1-We’ll ALL go back to traditional ways of meetings.
2-If performance is a factor, other actions might be taken into account in addition to item 1 from this section.
XI.References that can be useful
Handbook Remote Work -> https://handbook.rocket.chat/the-company/our-culture/remote-work
Handbook How do we communicate -> https://handbook.rocket.chat/the-company/our-culture/how-do-we-communicate
Handbook Meetings at Rocket.Chat -> https://handbook.rocket.chat/the-company/our-culture/how-do-we-communicate/how-tos-and-guidelines/meetings