A few months back, we were sharing our office with two developers from another company. For a month they worked on a project with us. At that time we had six employees at the office plus two developers working remotely.
One day, after everyone went home and it was just one of the outside developers in the office and me, he turned and asked me:
“Why is it so quiet in here most of the time? Do you talk to each other at all? Or even have meetings?”
I smiled and replied: “Well, everyone is just focused on their work and we don’t want to interrupt each other. If there is something we need to know, we just use the internal chat.”
In this article I am breaking down a few aspects of team communication at Accesto to show you how we work. As a remote-friendly async team we may have slightly different ways of working together. Hopefully, this will inspire you!
NO BUZZ AT THE OFFICE
From my colleague's perspective, it looked like we didn’t want to share the information about other projects we were working on.
Totally understandable, right?
It’s rare for a company to have this level of silence, so it was rather strange for him. It was surprising to me when I first joined Accesto as well, but now I couldn’t imagine how things could be any different.
Why do we like it this way? We are not the first company who has this no interrupt philosophy, but I guess we’re in the minority.
Jason Fried- entrepreneur, speaker, and Basecamp co-founder has given a great TED talk. His speech about focus at work has positively influenced our philosophy. I really like the way he put it, read on:
“You'll find is that a tremendous amount of work gets done when no one talks to each other. This is when people actually get stuff done when no one's bothering them or interrupting them. Giving someone four hours of uninterrupted time is the best gift you can give anybody at work. It's better than a computer, better than a new monitor, better than new software, or whatever people typically use.”
We believe he’s right. Well, to be honest, since we added few other developers we do actually break the silence a bit more to help each other out.
Sometimes it’s faster than typing to the person sitting next to you. However, we try not to interrupt each other and respect others’ focus and flow. And most of us listen to music with headphones at work, so we don’t get distracted.
Before I go on, let me introduce you to some of our rules:
GENERAL COMMUNICATION IN THE TEAM
As I mentioned, to discuss things, ask questions, and share problems we use our internal chat.
I know, instant messaging can be distracting when it comes to productivity. But the difference is that everyone has a choice at what time they want to get distracted. You can’t let a person standing next to you wait for your response for 20 minutes... But, you may respond at your convenience using the messaging app.
Also, if you are super busy and don't want anyone to bother you, all you have to do is change your status to "unavailable".
With the chat, being available doesn’t mean we need to respond immediately. Everyone responds when they have time. This way we can bear down and do our work without losing focus and take on our challenging tasks knowing we are not going to be stopped at an inconvenient time.
There is one (amongst many) great thing about Rocket Chat and any other internal messaging software for teams. We can create channels (rooms) there and invite people that are interested or involved in a given topic. We have a ‘room’ for each project, work area, general knowledge sharing and nonwork-related topics. Like ordering food, organizing events. Or even sharing funny content that we find online in our free time. Like this topic related project manager vs programmer GIF:
Another reason why we prefer using the internal communicator is that we have three remote developers that stay in different cities in Poland. Apart from that, every now and then, the ones who work in the office stay home if they feel like it.
For project management, we use Jira software. Jira lets us follow the flow of ongoing and past projects as well as track the time of each task committed. For simplification, every project is presented on a shared Kanban board. That helps us prioritize each task. Everyone knows what’s going on and at what stage each project is.
- The board divides into columns:
- To do - for specified tasks
- In-Progress - for tasks being developed
- Code Review - for internal review of the code's quality
- Quality Assurance - for internal review of business quality, UX, and UI
- Closed - for tasks being deployed
Here I present an exemplary single task flow on our Kanban board.
We shift the tasks from left to right, taking next steps. If the work doesn't meet certain quality standards it goes back to the dvelopment phase.
Everyone is committed to updating their progress on each task and assigned to specific tasks. But fulfilling the tasks is not the priority. Teamwork is what counts when completing new features on a project.
The goal is to always finish a task that has been started according to the rules of Kanban. There is bigger value in completing a task than starting 3 different ones. We’re not big fans of multitasking, as it has been proven to decrease a person’s productivity.
Daily standups are for updates on everyone’s progress/work. We don’t literally “stand up” for daily standups. We don’t even meet at the same time. We have a special channel on our chat for letting each other know what we are working on, what we have accomplished each day and share what obstacles and problems we came across. Every day, until 10 am, everyone sends their update and then read what others have posted when they have time.
This helps us save time and doesn’t break-up the day as we have different working habits. Some of us come in at 6, and some at 10, so organizing a meeting at one time for everybody just doesn’t make sense. And programmers really don’t like meetings :) Didn’t you know?
As entrepreneur, investor, and Y Combinator co-founder Paul Graham described in “Maker’s Schedule, Manager’s Schedule”, to get something done you need long stretches of uninterrupted time. Thus, meeting costs programmers more than they do others (e.g. managers). Why? Because they need to dedicate more extended units of time for one task. And when you break their day into two pieces, they will need time to get back into the flow. It’s just like if you were to wake someone up in the middle of the night and talk to him for half an hour and then expect him to sleep well after that interruption.
However, when we start a new project, we actually take the time to meet. And it is the most common reason to have a meeting at our company. Some things are just hard to describe in a written document. So just to make sure the team “feels” the project, the Project Manager explains everything in a meeting. He clarifies the clients’ expectations and business goals, so the developers can understand what the project is all about.
COMMUNICATION IN THE PROJECT
As I mentioned before, each project has a dedicated channel on which workers share and exchange information. We can ask questions, inform others about problems and be sure everyone is going to see the message. If the question is directed only to one person, the one asking can tag the person he or she wants to notify. Or better yet, send a private message if it is not valuable for the others.
If it’s something that can’t wait or is too long to explain in writing we just approach each other's desks and talk.
SHARING KNOWLEDGE AND DOCUMENTS
We share and collaborate on important documents in Google Drive. Sending e-mails back and forth is not an option. We try to organize our Drive in a way that it is easy to find relevant information.
We use Confluence to gather all of the information about projects and the company. If there are any doubts, anyone can always ask a question there.
We also have our own virtual library where we regularly add interesting and recommended books to read. From books like “Drive” that our CEO mentioned in his previous blog post to classics like “Specification by Example” by Gojko Adzic.
On our Confluence platform, we gather all the information about the project. This way we can access them anytime. There is also a place to ask questions about a particular project or the technology/solution used. Just like Stackoverflow.
I hope this explains our office philosophy and the way we work together.
Our company is growing, and there are things we still are figuring out. The door for new ideas and ways of collaboration are always open. Our teamwork philosophy is dynamic, and we keep on educating ourselves on how to make things work, so everyone is satisfied and feels comfortable. We’re always ready to try the next new thing to increase productivity and give people space while leaving the lines of communication open.
Let us know what are your thoughts!