In order to stay connected and get things done effectively in our remote and distributed environment, it's important for us to communicate clearly.
Please note this part of handbook covers Internal Company Communication. Go here for external communication guidelines.
-
For most of what we do, we use JIRA as a source of truth.
-
Always create an issue for what you are working on. If it's worth spending time on, it's worth creating an issue since that enables other people to help and learn.
-
If two issues are relate them, link them.
-
Always use English for creating and describing an issues.
-
Be descriptive when creating issues. Add as many details as possible. Use attachements whenever needed.
-
TODO - Where issues should be created?
-
If you are assigned to an issue, but don't have time to work on it, assign it to someone else.
-
Don't leave issues open for too long.
-
Make a conscious effort to prioritize your work. The priority of items depends on multiple factors: Is someone waiting for the answer? What is the impact if you delay it? How many people does it affect, etc.?
-
Pick issues from the current milestone.
-
Avoid assigning issues to another person, unless you are their direct manager. People should preferably pick issues in a milestone themselves.
-
Assign an issue to yourself as soon as you start to work on it, but not before that time. If you complete part of an issue and need someone else to take the next step, re-assign the issue to that person.
-
When re-assigning an issue, make sure that the issue description contains the latest information. The issue description should be the single source of truth.
-
If you want someone to review an issue, do not assign them to it. Instead, @-mention them in an issue comment. Being assigned to an issue is a signal that the assignee should or intends to work on it. So you should not assign someone to an issue and mis-represent this with a false signal.
-
When working on an issue, ask for feedback from your peers. For example, if you're a designer and you propose a design, ping a fellow designer to review your work. If they approve, you can move it to the next step. If they suggest changes, you get the opportunity to improve your design. This promotes collaboration and advances everyone's skills.
-
Do not close an issue until it is done.
-
When closing an issue leave a comment explaining why you are closing the issue.
-
TODO - issues format
- Use asynchronous communication when possible (JIRA/Slack). People should be able to do their work without getting interrupted by chat.
- Avoid using Slack as real time communication tool. Don't expect people to answer you right away.
- Make sure your Slack notifications are set up in a way they won't disturb you very often. This presentation should help (link to @szromek's guide)
- Use SMS in case of urgency (remember to have your phone number availalbe at your slack profile).
- In case of any issue is or has become urgent feel free to ping people via Slack referencing the issue.
- Don't start slack's conversation with "Hi!". Get to the point.
- Don't be afraid to ask questions. Make sure many people see them, so ask them in issues or on public channels. Avoid direct messages, as they limit communication flow significantly.
- If you receive many repetitive questions, make sure you document them in handbook. It will make it easily accessible, save you time in the future and will set a standard for given matter.
- Sometimes, synchronous communication is handy. We especially encourage it for example for Pair Programming.