Companies today are still sceptical about working as a distributed company. Individual days in home office may be okay, but having almost all colleagues sitting in their homes or coworking spaces across the world seems to be dubious. How will it influence the productivity of my team? Or what do I have to do to make them work together? How can I even make sure that they become a team? Take a look at how we’ve done it at Kubermatic.
Let’s ask ourselves, what’s the spirit and the power of great open-source projects? What drives them? Typically, it’s a great idea and motivated people believing in this idea. However, usually there is one big hurdle: Those people aren’t located in one place. Fortunately, the internet provides us with possibilities for those people to work together and act as a virtual team. These possibilities are:
- Communication tools like mail, chat, and video conferences
- Web platforms to manage open tasks and support planning
- Distributed repositories for code management
- Processes for changes together with tools for code reviews
- Cloud-based platforms for continuous integration.
- And last, but not least, real life get togethers at local meetings or conferences. All organised via the web.
So, as a classic on-site company eager to establish a new work environment, you’ve got to ask yourself: Why not do it the same way? Why not solve the difficulties of getting committed and qualified people the same way the open source communities are doing it? It is for sure difficult to change established processes and tools. And it also may be difficult to live with the new kind of trust in their employees, working at home or their favourite place. But it is also very much doable.
We at Kubermatic started out a distributed company. While sharing a few desks in our office in Hamburg three years ago, today you can find us also in Babensham, Belgrade, Berlin, Bosau, Chisinau, Gdansk, Gurajat, Lodz, Magdeburg, Mumbai, Munich, Oldenburg, San Francisco, Swinoujscie, Vienna, and Zurich. 35 people in 4 time zones with 10 different nationalities. This alone creates a real cool spirit and work environment.
Sure, there are challenges working this way. Simple ways of communication, equivalent to walking around the corner in an office, have to be established. Transparency has to be created in a documented way, so that everyone can easily get an overview of the status of projects. The sharing of documents and source files has to be simple, while at the same time keeping an eye on the different internal as well as external access rights. And also typical office work like travel organisation, trip costs, or vacations needs to be managed.
Like in the open source community, we have many service providers that help us solve these challenges. Our communication is mostly done via Slack, with different channels for different topics. Some external tools are integrated and send automated notifications into Slack, for example to inform the team about successful or failed builts or new Twitter mentions. Also important is Google Meet: to have regular as well as individual video meetings. Discussions, standups, retrospectives, and team meetings simply can be done better this way. And seeing each other’s faces on a daily basis is nice – we are humans after all:)
For planning and task management there are also tools, from a simple Google Calendar via ZenHub for project management based on the ideas of Kanban and issues on GitHub. The latter two are integrated, which helps you to keep an overview. GitHub also is our platform for source code management in different repositories and applying changes in form of pull requests. This allows to review the changes first and discuss possible improvements. Additionally, the PRs interact with the CI. So changes have to take some hurdles before they are applied. These tools are nothing special, but they simplify the asynchronous and distributed work. And like these code centric tools there are other web based helpers for travel, travel expenses, vacation, information exchange….
But tools are not everything. Working together as a functioning unit means and needs more. It is the culture we share, it is English as a common language, the different nationalities that come together, and it’s the climate during video meetings. We are relaxed, share a common sense of humour, and have fun, even in the larger team meetings. Another good example is the weekly remote team lunch with colleagues eating in front of the monitor and talking about work, hobbies, life – you name it. The on-site counterpart to this event is the weekly team lunch for the people in Hamburg. Here one or more colleagues cook for the whole team.
These social events help to bring the individual teams together. But we also have events that bring the whole team, remote and on-site, together. We have hackathons and team events on a regular basis with a few days of face-to-face interaction. Other events are our conferences ContainerDays and GoDays or the conferences that Kubermatic participates in.