Started work on this 2024-03-05 in Madrid, Spain

Why not meetings?

Meetings are the most expensive activity companies do. The cost is not just the time you take from the teams. It's especially expensive when you take into account what those people didn't do during the meeting time - opportunity cost.

I also tend to talk a lot, which means that a meeting which could have been 15 minutes ends up taking 27. Those extra 12 minutes are a total waste.

A lot of words have been written on why meetings are terrible for most organizations, we needed to find a way to avoid them at all costs. Yet, we still needed to collaborate somehow.

Why not email?

I am the director of a small company with less than 10 employees. Although it's a small team, it's important that we collaborate effectively.

Early on in our history we realized that email had a few short comings:

  1. It's not possible to refer to an email with supplementary context.
  2. Even if you send a thread to someone, there might parts of the conversation which are missing.
  3. For someone new to the company they are going to start from 0 since they don't have any of the previous email sent.
  4. Once sent, it's not possible to amend an email.
For these reasons and more, we had to find a better way to collaborate. We chose Gitlab since it's open source and allows us to easily manipulate very rich objects = issues.

How do we use Gitlab

The beauty of Gitlab Issues is that they are super flexible. You can have 100s of issues open or only 10 - the UI handles both cases super well. That means that it's easy to be relatively loose on how we use them. We can use an issue for something that can take us a day to complete or something that can take us 4 months to complete.

The only rule is that issues are objects which are used for collaboration, meaning that you cannot create issues to track your own work. As soon as a piece of work requires input from more than one person, it should have an issue.

Although there are insanely rich ways to use issues with milestones, burn-down charts, kanban, labels etc. We only use the most basic pieces of an issue: the main body and comments section. We only recently started to use tasks!

Any other pieces to our tool box?

The tools we use at our company are few:
  1. Google Workspaces, for email and sharing large files.
  2. SqLite for business analytics.
  3. Keepassxc for keeping and sharing passwords within the team
  4. Gitlab for collaboration.
  5. Whatsapp for quick messages only.
  6. Email for external communications only.
  7. Syncthing for most of our important files.

Out of all the decisions we have made, the most important has been to ensure that people are not using Whatsapp as a collaboration tool. Whatsapp is only a communications tool, using chat for anything other than asking super quick and simple questions that you are never going to reference in the future is a sin that we don't allow in our company.

This simple yet effective decision makes our communications slower and more purposeful. In my world Slack is the biggest enemy of high quality communications.