For the majority of the initial 2 years of the existence of acreom, our small team of 5 (1 designer, 4 engineers) have been working remote-first. While this lately popular trend worked for us in the beginning, soon after we felt something was missing. It was when we set up our first office, the real change came.
Looking back, it was one of the best decisions we’ve made. Here‘s what we have learned.
When working remotely, we relied on Discord to handle all of our communication. This often meant that a meaningful chunk of our communication was async. We would occasionally miss notifications or had to coordinate our debugging and pair programming sessions. This often resulted in communication delays , and made it more difficult for us to convey information real-time.
Working in-person, most of these issues have disappeared. We are able to have more productive and efficient discussions, and we can clear up any misunderstandings or ambiguities more quickly.
Being in an office setting can lead to distractions from others' conversations when you are trying to stay focused on your work. ANC headphones turned out to be an invaluable tool for us, serving as a 'do not disturb' indicator and enabling us to focus on deep work.
Our productivity and learning curve velocity have risen significantly once we started working together in a physical space. We are shipping higher quality software, faster and more frequently. This is partly due to just being together and not having too many distractions in our own familiar space around us.
Within the first weeks of working together we have found our rhythm and routine which further helps us being more focused on the work by minimizing the need to think about what to do during the day. Our day begins at around 9am by a focus period until 11:45am. After lunch we have a cooldown period until around 1:30pm. In the afternoon, we do another stint of focus until around 5pm to 6pm, interrupted only by the bi-weekly sync at 3pm.
Another factor contributing to our faster delivery is the accountability we have for each other. If we do not deliver or do a poor job, we receive almost immediate feedback to do better. On the other hand, if we deliver good results, we receive positive feedback to stay on the right path.
The serendipity of talking about work as well as life in general, during lunchtime or breaks, often led us to new perspectives and advancements in the development process. It also does wonders for alignment on different issues and the overall direction.
Similarly, having random discussions about the task you are currently working on can help problem solving both by talking to another person about your problem, and perhaps letting things settle in your head, as well as hearing another opinion and point of view.
Pair programming plays a big role in the development process. Whether we are stuck on an issue, or want to speed up making of a new feature, we use pair programming. It helps us both to code faster, as well as be more error proof.
We also do pair VQA with our designer to do final adjustments on features. The effect of this is we always tweak the design just right and also learn to do UI better and speed up future development by understanding the concepts our app is based on. We show the end result in our post talking about the tight cooperation of a designer and developer when implementing a light theme in acreom.
Pair programming sessions quite often (intentionally or otherwise) turn into open forums where everyone chips in with their opinion and perspective. Having such discussions serves to align ourselves on the issue, serves as an early feedback session, which in turn speeds up the development process.
Building culture is easier in-person. As a small team building a startup from the ground, we work, eat and have fun together. Firstly, there’s so much serendipity that happens just by being side by side in this process. From exploring new ideas randomly to laughing together about how miserably we have failed at something - real-time. We of course could have done all of that remotely, but being present just adds a little bit of something magical to the equation.
Secondly, we believe culture is a sum of everyone’s decisions. It’s how we approach things, handle situations and work together as a team. More importantly, we not only get to know each other by having a first row seat to this experience, we influence each other. Hiding behind a screen can water down this experience.
Startup is an intense rollercoaster of highs and lows we get to experience - together. It would indeed suck if we sat in our own isolated cabins throughout the ride.
The switch to a physical office has had numerous benefits for our team, and we have gathered some important lessons from the experience.
Communication is more effective making it easier to collaborate and coordinate.
ANC headphones are an awesome 'do not disturb' indicator.
Productivity and learning curve velocity increases with ideas and resources being shared more easily.
Interacting throughout the day leads to improved development and improves alignment on different issues.
Pair programming is more effective when done in-person.
Working in a physical office helps us build a culture and makes the whole experience more enjoyable.