Spam everyone and use your filters

For over two years now, polypoly is working as a remote-only company. Most of the time, this works well, but there are of course wrinkles and roadblocks. The major one is in how and where we communicate.

We have all the tools: Email, Chat, a wiki, a ticket system, a CRM-system, a design system, and so on.

And still, during our first in-person company offsite, a common concern was „I don’t know what X does, nor how they work.“. This was voiced across all levels, from trainee to C‑Level.

An investigation ensues

That is because we don’t get a chance to observe others communicating or working. I peeked at the statistics of the messaging service we use to talk to each other, and it showed that 84% of all communication happens behind the virtual equivalent of closed doors! That may be not all of it, but it surely feels that way. Most of our chats are ad-hoc groups of three to four people, and these chats are closed and invisible to everyone else.

This is the equivalent of everyone having a private closed office and private corridors to visit the other offices. Yes, quite like in the dystopian TV show Severance.

We do have watercooler talk, but it is limited to the already-established small groups, not random encounters when fetching coffee.

I spent a whole day of our offsite workshopping this, talking to colleagues all across the company about this issue. The people who complained the most about the missing information are also those who fear of being inundated with information, and of course do not want to spam others. In the end, I realised that a key reason for this is that our social tools aren’t very social, and that fact forms the wrong expectations:

  • There is the expectation that there is the perfectly fitting tool for every context, and that if everyone would only use them in the right way, everything would be fine.
  • The other expectation is that the onus is on the creators and senders of information to figure out who needs what and then to make sure that these people see it.

My take

I whole-heartedly disagree with both of these expectations. People use the tools they are comfortable with, and in the way that fulfils their needs the quickest. So they will always make mistakes, put things into the wrong wiki page, or use a superfluous label. One can minimize this, but never get it perfect.

And once your company passes a certain size threshold, probably at around five people already, no one can have perfect knowledge of who needs to know what.

(That does not meant that you wouldn’t need working conventions within a certain team or domain. Of course it is important that the documentation of your backup for example is set in a way that it is structured, and at a known location. I am talking about cross-domain conversations here.)

What is needed for these tools is to make information discoverable to people outside your immediate team, and to facilitate serendipitous connections.

So what do I propose? Three steps, ideally all taken together:

  1. Communicate a guideline of what kind of information should generally live in which system. Tasks go to the ticket system, documentation and asynchronous discussions in long form to the wiki, and everything that involves short-form and/or live communication goes to the messaging platform. A corollary is to establish an etiquette on what tagging someone in a message means. For example, if I add someone to the “To” field of an email, this contains information they need to know and to act on. If they are in the ““CC” field, I just want them to be aware of the conversation.
  2. Encourage everyone to communicate as much in the open as possible. Make people not be afraid to use a channel, contact a person, or edit or comment on a wikipage. Allow questions everywhere. People should feel comfortable to ask if someone can use feedback on something. Everyone should feel free to make noise and be observeable.
  3. Teach everyone rigorously about filters. They need to understand how to effectively condense the noise into the background, but have the important signals stand out.

That last bit is crucial. It shifts the responsibility of managing the information flow away from the sender, to the receiver. This is because as a sender, I cannot ever reliably know the potential receivers state of mind, their load, their interests, and so on. Heck, often enough, people do not even reliably know who the potential receivers should be in the first place.

So the only chance we have is to communicate in the open, using keywords and making sure that bystanders have a chance of discovering whatever I send.

Managing the information firehose

The result is that any given person will have a potential firehose of information coming towards them. Lots of chat channels with an unread messages icon, full email-folders, a Wiki timeline that is chock-full of entries.

And that is fine. It means that one can get a sense of where the action is. You can see in which area of the virtual office everyone is congregating, where a lot of discussion is happening.

But it also means that one needs to learn to let go. Not every message needs to be read. Not everything needs to be commented. And even when people CC you, they probably just want you to be aware of something that is happening, nothing more.

So, figuring out how to make the important signals float to the top is important:

  • set up email filters that for example move all of the system messages that you don’t need to read all the time go away into a subfolder. Those ticket-system updates that someone logged work on something? If that isn’t something actionable for you, make them disappear.
  • On the other hand, ensure that things with words like “task assigned to you” or keywords relevant to your job get a highlight and stay in the queue you actively monitor and work on.

Setting up those filters and tweaking the notification settings is time very well spent, and everyone should be familiar with those settings. When choosing a new tool for your team, choose the one that has a better way to adjust these settings. And when you onboard a new team member, spend some extra time on showing them how to set up their own filters.

As an aside: In over 20 years of working in IT, I have never missed a message or notification because it got drowned out in useless noise. And I was nearly always one of the persons who had to be at least low-key aware of everything that is going on. The first thing I do for every new communication tool I get, is to figure out how to tweak the notifications.

In a former job, there were a few magic words that would summon me to any conversation happening on the company slack. I didn’t advertise those words, but when someone would use the word “tracking link” in any of the Slack channels I had access to, I’d be notified — because I knew that in 9 times out of 10, this was a problem I needed to know about.

Thankfully, I also knew that I could otherwise safely ignore these channels, as they would be talking about things entirely irrelevant to my job. But knowing that a conversation happened there, and how much, would help me gauge how much business is flowing through that part of the company. Kind of like the restaurant owner who can see the stack of order slips grow during the evening, knowing how well his business is doing at a glance.

Not everyone in a company needs to keep track of everything. Generally, the further down the ladder one finds oneself, the less sources of information one needs to watch. But in the other way around, the broader your responsibilities, the more interconnected you are in the work, the more you need to be able to gather a good view of what is happening.

This is not a call for having very precise summaries and statistics on all fields all the time (although there is use for that). This is about the feel of communication, and feelings are, by their nature as messy as us humans involved in it. One cannot expect a whole company to always communicate precisely and only to the exactly right persons. So it is important to factor in these imperfections.

Make asynchronous communication and work easier

The other reason to foster such a culture is because it makes asynchronous communication and work a lot easier: If I do not need to worry about whether my information comes at a convenient time and in a convenient channel, then I can do this a lot more efficiently from my end. But I can only do so, when I can rely on the receivers to actually not be inconvenienced by my actions. And that risk is significantly lowered when everyone has good filters.

So, go ahead: Spam everyone, but use your filters!

this is why we can’t have nice things

As you may know, I am involved in, an attempt to build a better social network atop of Solid. The developers are chugging along at a slow but steady pace, expect a new version to come out soon.

Solid itself is a really intriguing and awesome idea: Everything you want to share or publish, regardless of public or for a limited audience gets stored on your Solid Pod, completely uncoupling data from application and publisher.

So your theoretical Facebook posts and likes and comments would not be stored and owned by Facebook. They would just handle the presentation and feed and recommendations and so on. And if you want to change the network, you get to keep all your content and contacts.

Now, the way Solid is designed has one big constraint: You cannot change the URL that points at your pod, ever. If you do, all the links between your content and that of others would get lost otherwise. So, if a pod provider would got belly up, that would be a bad thing.

One of the earliest pod providers is solid​.community. Or rather. Was. The service is shut down. Which is fine, it was advertised as experimental anyway, it was free and purposely only had a very small storage space. It was meant for those earliest of adopters and for developers to see how all this works.

Alas, someone thought it would be helpful to keep it alive and managed to migrate everything to solidcommunity​.net.

Which is also fine and helpful, except two things:

  1. I, as a user on solid​.community learned about this whole thing from someone completely uninvolved in this process, basically by accident. The move included my login data, whatever private data I may or may not have stored on that Pod, everything. I have never agreed to this, nor do I have any idea who the new person is. That is a major GDPR violation, and erodes a LOT of trust.
  2. The move is useless. As I pointed out above, now that the URL is changed, none of the linked data is properly linked anymore. It completely broke everything. And considering the amount of data (I think there was 2 MB of available space), it is not even a thing of „hey, people probably want to keep this!“.
useless people links on my Solid Pod

Seriously, my Fellow Nerds, especially if you work on something that promises privacy: These things matter! No one will adopt your project, if you fuck this up, and here, you fucked up quite a bit.

Before you rant at me: Yes, I am quite aware that what I was using was basically a test system. And I bet that 99,9% of all other users of that system knew this too and acted accordingly. I highly doubt that any actual private data was compromised. And I don’t think there is any foul play involved. People did what they thought would be best. But, well, guess what: They thought wrong!

virtualisiertes 3D

Vor einem Monat postete ich Hardware-Porn in meinem Google Plus Stream: 

Nvidia GRID Grafikkarte

Diese nvidia GRID Grafikkarte besitzt keinen Grafikausgang. Nix da mit HDMI, VGA, DVI oder sonstwas. Denn sie dient einzig und allein der Bereitstellung von 3D-Grafik innerhalb einer virtuellen Maschine.

Gebraucht wird das innerhalb eines Maschinenbaubetriebes, der zumindest Teile seiner CAD-Konstruktionsarbeitsplätze virtualisieren will. Dieses beeindruckend große Stück Hardware liefert eine grob äquivalente Grafikleistung wie zwei herkömmlicher Quaddro-Grafikkarten (von denen eine zum Vergleich auf dem Bild zu sehen ist).

Zusätzlich findet sich eine Unterstützung für eine Echtzeitkomprimierung des so erzeugten Videostreams, sowie Treiber, welche die GPU komplett virtualisieren. Im Endeffekt kann also eine Karte von zwei bis 32 Anwendern verwendet werden — je nach konkreter Leistungsanforderung.

Leider ist die Karte auch dementsprechend beeindruckend teuer: Insgesamt verdoppelt die Virtualisierung den Gesamtpreis pro Arbeitsplatz, verglichen mit einer herkömmlichen 3D-Workstation mit maximaler Grafikleistung. Müsste man nicht die maximale Leistung abrufen, sähe das wohl besser aus.

Inzwischen sind nun zwei dieser Karten dennoch im Live-Betrieb und erlauben vier Konstrukteuren ein flüssiges Arbeiten über eine handelsübliche ADSL-WAN-Strecke. Bisher mussten Freiberufler, die bei einzelnen Projekten des Kunden mitarbeiten, stets aufwändig mit einer gesondert gesicherten Workstation ausgestattet werden, inkl. VPN-Tunnel über den die ziemlich großen CAD-Dateien mühsam heruntergeladen wurden.

Stattdessen brauchen sie nun nur noch einen Client auf ihrem eigenen Computer installieren und können sofort loslegen. Und zwar ohne, daß die wertvollen Konstruktionsdaten das sichere Netzwerk der Firma verlassen müssten.

Dieser Gewinn an Sicherheit und Flexibilität ist dem Kunden genug wert, um den Mehrpreis zu gerechtfertigen.

Es gibt natürlich auch eine korrekte Case Study von Citrix über das Projekt:


Folgender „Prozess“ findet sich in einer größeren IT-Umgebung deren Name ich hier gerade nicht nennen mag:

  • Franchisenehmer“ benötigt an seinem Standort einen weiteren Rechner und beauftragt „Kundenzentrum“.
  • Kundenzentrum“ stellt fest, dass
  • a) eine freie Netzwerkdose fehlt
  • b) die Kosten für Rechner & Netzwerkdose ausnahmsweise vom „Franchisenehmer“ getragen werden müssen
  • Kundenzentrum“ teilt dies „Franchisenehmer“ mit und lässt sich die Kostenübernahme bestätigen
  • Kundenzentrum“ leitet den Antrag auf Kostenschätzung für die Netzwerkdose an die Auftragsbearbeitung weiter
  • Auftragsbearbeitung leitet den Antrag an den IT-Dienstleister weiter
  • IT-Dienstleister erstellt Kostenschätzung
  • Kostenschätzung wandert von IT-Dienstleister über Auftragsbearbeitung und Kundenzentrum an den Franchisenehmer, der die dann freigibt. Gleicher Weg zurück.
  • IT-Dienstleister beauftragt Subunternehmer mit Verlegung der Dose
  • Subunternehmer setzt sich mit 50% Wahrscheinlichkeit zwecks Terminabsprache direkt mit Franchisenehmer in Verbindung. Mit 50% Wahrscheinlichkeit taucht einfach ein Techniker vor Ort auf und stösst sich dann mit nochmals 50% Wahrscheinlichkeit die Nase an der verschlossenen Tür.
  • a) Stösst sich der Techniker die Nase an der Tür, wird der Auftrag auf „warten“ gesetzt und über die Kette IT-Dienstleister-Auftragsbearbeitung-Kundenzentrum der Franchisenehmer nochmal gefragt, ob er wirklich den Auftrag bearbeitet haben will.
  • b) stösst sich der Techniker nicht die Nase, wird die Netzwerkdose gelegt.
  • Nach erfolgreich gelegter Netzwerkdose fragt der Franchisenehmer ungeduldig bei allen erreichbaren Stellen nach dem Rechner.
  • Kundenzentrum nimmt sich der Anfrage an und fragt bei der Auftragsbearbeitung nach.
  • Auftragsbearbeitung fragt beim IT-Dienstleister nach und erfährt, dass man die Netzwerkdosennnummer bräuchte um den Rechner aufzustellen
  • über die Kette IT-Dienstleister-Auftragsbearbeitung-Kundenzentrum der Franchisenehmer gefragt, bitte die Netzwerkdosennummer von der frisch verlegten Dose abzulesen. Die Antwort geht über genau diese Kette zurück.
  • IT-Dienstleister meldet, dass die Netzwerkdosennummer eindeutig zum falschen Netzwerk gehöre, und daher kein Rechner dort angeschlossen werden könne.
  • Nachdem diese Antwort über die altbekannte Kette an den Franchisenehmer zurückgeht, mit der Bitte die Dose nochmal zu überprüfen bekommt dieser eine Krise.
  • Mitten in dieser Krise taucht ein Techniker vom IT-Dienstleister beim Franchisenehmer auf und nimmt die frisch verlegten Dosen ab. Während der Abnahme bekommen die Dosen eine neue Nummer.
  • Franchisenehmer meldet die neuen Dosennummern.
  • Kundenzentrum leitet die neuen Dosennummern via Auftragsbearbeitung an IT-Dienstleister weiter
  • IT-Dienstleister konfiguriert den neuen Rechner und stellt diesen beim Franchisenehmer auf.
  • IT-Dienstleister stellt eine Rechnung für die Verlegung der Netzwerkdose, nicht aber für den neuen Arbeitsplatz, da das Rechnungssystem dafür noch nicht ausgelegt ist.