The software we use to work together in distributed home offices has grown and developed over the years. We have tried out many different tools and discarded some. And today we are – for the most part – quite satisfied with our remote software stack.

Our ground rule for all software decisions is to use as much open source as possible. IT security and data privacy considerations, above all, have always led us towards free software.

That's why all our company computers run on Linux-based systems, if documents do need to be edited locally we do so with Libre Office – and we use self-hosted open source solutions as often as possible.

These issues are important to us and we take them seriously. But even so, we don’t want to be tied down by ideological doctrines. That’s why there are some areas in which we use third-party applications – most of the time because they are simply unbeatably efficient to use.

In this blog post we will tell you more about the remote working tools we use daily and how they support us when working from home. The open source / FLOSS solutions as well as some proprietary software.

Project management, work organisation, ticketing and time tracking with Redmine

We have been using Redmine for what feels like ages. But even today, we continue to be impressed by its huge application scope. That's why Redmine is becoming increasingly central to our work.

Among other things, we currently use the Ruby on Rails-based open source software for:

  • Task management
  • Project management
  • Time tracking
  • Documentation
  • Editorial planning

… and even for onboarding: the bevuta tutorial provides every new employee with their first tasks and helps them not only to get their bearings within Redmine, but also to start working with other tools and get to know the company as a whole.

What we particularly love about Redmine is that, as a tool for organising work, it is incredibly flexible. Within Redmine, we map individual workflows and processes for different types of tasks, we manage our own tasks, assign tasks to colleagues, we document, learn and much more.

The software not only helps us to keep track of pending tasks, but also serves to process and track requirements and bugs – both internally and in collaboration with clients, who are able to get direct access to individual (sub)projects.

In view of so much power, we gladly forgive Redmine that it will never win a software beauty contest. (Except maybe in the retro category.) Nevertheless, we have brightened it up a bit with PurpleMine2.

By the way: we deliberately decided against "Jira", although it is kind of like the MS Office among ticketing and project management tools. And we did so for many, many reasons: it violates web standards (REST), it is frighteningly confusing, many important functions are only available as (paid) add-ons and, finally, it is not open source. Which means: if we develop an add-on ourselves (as we frequently do for the software we use in order to make our processes even more efficient), we are contributing to an alien, non-solidary ecosystem instead of one that – like Redmine – is free and accessible to all.

Redmine will probably never win a software beauty contest. But with so much power, it doesn't have to. #RemoteTeamwork #OnlineCollaboration #OpenSource #RemoteTimeTracking #RemoteProjectManagement

Videoconferencing with Jitsi

Some time ago, we used to work with Whereby for video conferencing. However, both in terms of data protection and cost-effectiveness, it did not meet our expectations. One of the main disadvantages (which also applies to many other providers): you cannot use rooms ad-hoc in Whereby. They have to be created before use and often need central managing. For our way of working, this is like driving with the handbrake on.

Therefore we switched to Jitsi a few years ago and have been hosting our own Jitsi server ever since.

Apart from the fact that open source solutions make us feel good, Jitsi is the perfect solution for us because it is extremely flexible. All you need in order to use Jitsi is a browser. (There is also an app for mobile use.) You can use an unlimited number of parallel rooms without central managing – they can be opened spontaneously by anyone at any time. Just add any room name to the URL in the browser address bar – and you’re in. In order to invite a colleague, all you need to do is come up with a name for your room and send them the corresponding URL.

On the Jitsi project’s public servers, a URL to a room looks like this: https://meet.jit.si/bevutaTeam.

Jitsi is unbeatably easy to use. Come up with a URL and send it to your colleagues: you got yourself a video call. #RemoteTeamwork #Videocalls #OpenSource

And last but not least: Jitsi is extremely reliable – it just works. And it also has several other useful features such as a built-in recording function.

It just doesn’t happen that Jitsi simply won’t work for no apparent reason. I couldn't tell you the last time Jitsi annoyed me.

Martin

Chatting with Mattermost

We have already mentioned that e-mail plays a minor role in our daily work and is actually only used for external communication. Just like us, many young companies have long since abandoned e-mail and rely on team messaging solutions such as Slack or Microsoft Teams for internal communication.

Of course, we opted for an open source solution and have been working with Mattermost for a long time.

In addition to private chats between two colleagues, Mattermost allows you to create groups to which employees can be added ad hoc as required. In topic- or project-related channels, colleagues who are jointly responsible for a certain topic or are working on a joint project can coordinate their collaboration.

We host our own Mattermost server and have created several separate teams for different purposes. There are also teams to which clients are invited.

Mattermost can be used in the browser, but there are also desktop apps for Linux, Windows or macOS – and mobile apps for Android and iOS. In addition, we run an IRC bridge for those colleagues who like their world text/plain or are a bit nostalgic for the 90s.

You need a solution allowing the team to stay in touch. You can use a chat system or the phone – or you can lock everyone in the office, in which case your chat system is the office grapevine.

Martin

Messaging with Signal

Yes, there are mobile apps for Mattermost. But not every employee wants to be notified about company communication 24/7 on their mobile phone. That's why we also use Signal as a messaging app alongside Mattermost. The open-source messenger is our preferred messaging tool: it’s not only powerful and easy to handle but also has a high privacy level, and it allows both classic 1:1 chats between two users and the creation of groups.

Whether we use Mattermost or Signal often depends on personal preferences or the urgency of the topic. Some colleagues mute Mattermost during concentrated work phases — but can still be reached via Signal if it’s urgent.

Version control with Git and GitLab

Large-scale software development projects are almost inconceivable without a shared code which the entire team can access. Whether the developers’ desks are only a few metres or thousands of kilometres apart: as soon as several developers are working on one and the same code base, they not only need a shared repository, but also a system that manages and tracks changes.

For large projects, it’s best to work with a distributed version control system like Git. With Git, all developers have a copy of all the relevant versions of the project on their own computers. This way, they can work on changes until they think it makes sense to define a new status ("check in") and then send it to a remote repository ("push").

Of course, our code is managed in Git repositories as well. In order to have a better overview and to support code reviews, we use GitLab both as a graphical interface and an extended toolbox.

The version control integrated in Git ensures that even with complex changes and many participants, every change is documented, the team members do not interfere with each other’s work and everyone can work on "their" feature in peace. The use of branches ensures that different features and versions can be worked on in parallel:

Each new functionality for the software we develop has its own branch, in which all changes are registered. Once the feature is finished and the review of the code was successful, the changed branch can be integrated ("merged") back into the main branch ("master" or "head") and published ("deployed") from there. Feature branches integrated in this way disappear – and the next feature gets its own new branch. And the next, and the next, and the next… Because, strictly speaking, software might be ready for launch someday, but it will never be completed in a way that you never have to touch it again.

Editing self-hosted documents online with ONLYOFFICE

We run our own server providing a web interface and ONLYOFFICE in order to create, edit and manage documents and other files.

This allows us to share data with the whole team as well as with clients and other external partners – and enables us to work on them together.

Even if the usability of ONLYOFFICE doesn't always make us happy: for sensitive data, storing and editing them on our own servers is the only appropriate choice.

Should you have any recommendations for even better self-hosted open source office solutions than ONLYOFFICE – we’re happy to hear them. We are convinced that there must be a better solution out there. (But no: LibreOffice Online / Collabora Online are not an alternative for us – tried and rejected).

Collaborative editing with Google Workspace

Yes, we are committed open source advocates. But there are times when convenience and efficiency are just too important to us to settle for anything less than the best solution.

For collaborative document work, we tried a lot of things. And in the end we had to conclude that Google Docs, Sheets and Presentations are unbeatable. That's why we rely on Google's online office suite "Workspace" (others might say "cloud solution" 🙈) for our daily work on documents without special data protection requirements. We wouldn’t know how to work efficiently without suggestion mode and comment function. We sometimes fight epic discussion battles in the comments – until the best solution is found. Especially with several people working on a document at the same time, these collaborative functions are just indispensable, as they allow us to work jointly on documents as if we were sitting together in front of one computer screen. In fact, we work even more efficiently – at the same time or everyone at their own pace, whichever suits us best.

We are keenly aware that the data stored on Google’s servers is not ours alone and we accept this, in exchange for very powerful, flexible tools. Routine backups to our own systems are, of course, obligatory.

When it comes to critical, personal data, we switch to our self-hosted solutions. That way, we can set different priorities depending on the situation.

Collaborative layouting with Figma

For the same reasons we decided to use Google Workplace, we opted for Figma. This impressively powerful "cloud" solution for prototyping and design immensely simplifies the collaborative design process.

Via Figma, colleagues from conceptual design, UX, copy and graphics can work on layouts together. All changes are immediately visible to everyone, which is incredibly helpful when working together during a remote meeting. For asynchronous coordination, the comment function offers the possibility to jointly fine-tune layout or text decisions and to ask questions. Our developers can immediately and simultaneously access the latest, current design of the mobile app, web application or website they are working on. Just as in software development, branches allow us to make the design and change process as transparent as possible and to distinguish between different topics as well as between drafts and final designs.

It’s the combination that makes the difference

With this combination of very different remote work tools, we cover all the steps in our daily work routine and thus manage to work together just as efficiently as if we were sitting together in an office.

Just as efficiently? Actually, that's not true. Because all these solutions interlock and complement each other so well that some things work even better in remote collaboration than in the office.

In a Jitsi video call, for example, we can discuss and work on a Google document using screen sharing. Each participant can edit the document themselves, and all changes are simultaneously and immediately visible and comprehensible to all. There's no crowding in front of a single computer and no contortions just to catch a glimpse of the large screen in the conference room.

By interlocking the right tools, some processes are even (semi-)automated. Merge requests from developers in GitLab, for example, lead to automatic notifications in our messaging system Mattermost, so that a colleague with free capacities can immediately take care of the review. This saves the time otherwise needed for writing messages – and also prevents reviews from being delayed just because a developer forgot to inform their colleagues.

And all resources we use, such as documents, spreadsheets, Mattermost messages, e-mails, video conference rooms, Git commits, tickets or wiki paragraphs can be shared directly as URLs.

With the right mix of collaboration tools, remote teams can work even more efficiently than in a shared office. #RemoteTeamwork #SoftwareStack #RemoteWorkTools

We are certain: with the right software and with processes tailored to your own needs, remote teamwork can work perfectly in other companies as well. And thus ensures more individuality, more freedom, more flexibility – and less commute. And it will even be more efficient.