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!

Home Office — redux

About a year ago, I shared how my home office setup looked. It is now not only a year later, but I also moved back to Hamburg and moved everything into a combined office&hobby room. And with that, I also upgraded a few key features of the space.

Let’s start with the room itself: It is a rather small one, so I had to think of space economics. In the end, I settled for the traditional center aisle with desk, workbenches and storage along the sides, keeping the window free so I could move about the room at ease.

That meant that I had to get rid of the door, as it opened to the inside of the room and would have been blocked by the storage shelf. As a replacement, I fulfilled that inner nerds dream and built a secret door!

The room now houses not only my desk, but the printer, the filing storage, a workbench, all my tools and hobby supplies, two 3D printers, a borrowed laser cutter and all my roleplaying games and comics. Pegboards on the walls keep the more frequently used items in easy reach. Otherwise, I took full advantage of the laser cutter to have nice labels on all the drawers, so I don’t have to remember where the different tools are.

And yes, the motordesk and treadmill are still there, and I also managed to put the remote control holder into a fitting place on the workbench. That green button is a Logitech POP button that I use to switch the treadmill and 3D printer on or off.

But to the actual desk setup: Since last we met, I added and swapped a few things.

Audio

I ditched the Bluetooth headset for a DECT one. That has a lot better range and audio quality, while also sitting quite easy on the ear. It is a Yealink WH67 with built in speakerphone. As soon as I put the headset into the cradle, it switches from headset to hands-free operation. This happens entirely on the device, any computer or phone connected to the WH67 not seeing that change. I love this, as I never have to twiddle any software settings. And yes, the WH67 also has Bluetooth, so it connects to the computer and the phone at the same time.

Also, I’ve splurged for the QI-charging module, so the phone gets juice without any hassle too.

Video

The SLR camera is now hidden behind a black box that acts as a teleprompter. I rarely use that for the usual purpose of reading a script, but to be able to make eye contact during conference calls. It is entirely self-built from foamcore, wood glue and black paint, with the only bought addition being the 12″ USB‑C screen and proper teleprompter glass, that reflects from the front surface of the glass instead of the back, providing crisper contrasts to me. It does eat some of the dynamic range, but not too much to be a bother. (Eventually I might update to a brighter screen to compensate, but that’d need some more serious budget).

Also, the standard webcam is right now a Lumina, some crowdfunded, allegedly more intelligent camera with better colour calibration and more processing. Might go back to the Logitech BRIO eventually, but for now, I am giving the makers a chance and see what the software updates bring…

Lights and Buttons

On the other side there is an Elgato Stream Deck. This is mostly a toy / luxury purchase, but it does come quite useful when hosting online events. Routing my camera through OBS I can easily blank my video feed, swap backgrounds, pipe in waiting music, etc. Just having a hardware button to mute myself or blank my video is already a godsend. Also, it controls the room light!

Speaking of room light: I splurged and installed a light-up ceiling. Six 4m RGB zigbee powered lightstrips that are hidden behind a semitransparent white cloth. They could be a tad bit brighter, but for now, this is pretty good to keep the winter depression at bay. And I have a button for „Red Alert“ :D

SO many calbes needed to be attached and sorted for the ceiling
admit it, it’s pretty.

Hacking Runs for Fun and Profit

A key element of modern games is often the heist, caper, or in the case of cyberpunk-esque games, the „run“. The common part here is that the target is usually a complicated and large system, full of people, computers, security systems and other components.

In movies and books, we follow the crew through their preparations and then see them pull off the perfect caper, where each element more or less seamlessly enables the next part, until it all comes together in a showdown and ends with the heroes walking (or running?) off with their ill-gotten gains.

There are quite a lot of attempts to map this into game mechanics, and here is my own one:

It introduces two concepts:

  • the network map of the entity that is to be robbed
  • failure cascades

Lets start with the network map. It could look something like this:

The goal is to escape with the loot from the vault. Except that as long as there is someone or something to call reinforcements, things will go bad. And if the vault door isn’t opened, they can’t get to their loot in the first place.

Researching this network is the usual preparation phase for the players, where they can dig for information, ask around, bribe people, steal floorplans, and so on. It might even be that you, as the DM, don’t even have the network map prepared but you create it with your players as you play along.

In the end, the map shows the possible choke points that need to be taken out, as well as the objectives that need to be met. Either directly, or indirectly. 

And that is where the second core idea comes into play: Cascades. I’m stealing those from the boardgame hit Pandemic. Disease occurrences are marked by adding little cubes to a city. Whenever there are three or more cubes of the same type in one city, there is a virulent outbreak. That means that every neighbouring city also receives a cube. If that tips them over the 2‑cube-is-safe limit, there is an outbreak too.

Let’s apply the same idea here, but with a lower limit: If there are two incidents at one place, it triggers the cascade. So if Joe the Guard does not get his coffee from the Cantina AND the toilet is clogged, he’ll fail at his job (calling the reinforcments in case he sees anything). And that means that the „Reinforcements“ node gets its first little cube. 

A similar effect could be achieved by simply taking Joe out (kidnapping, poisoning or bribery for example), but that might not always be possible — and it won’t create a cube at Reinforcements.

So, the planning and execution phase means that the crew selects points in the network, take them out and hopefully create cascades that take out adjacent points for them.

This isn’t playtested, but I think it should be fun to run things this way!

My 3D printing setup

I have had 3D printers in the house since 2015. But it took 5 years and a lot of frustration until I finally got to a setup where I am happy with what I am doing.

It began with a positively tiny M3D Micro — a very basic, consumer-grade 3D printer with a proprietary slicing software, no heated build bed, and not a lot of power. Especially the very small print area coupled with no heated bed made it a device I never really got a lot of use out of.

Eventually I upgraded to a CR-10S, then later tried to replace that with an Artillery Sidewinder, but the gist is: I love 3D printing, but not tinkering with 3D printers. And most, if not all of the <1000 Euro devices are in the end things you need to tinker with. Replacing the fan shrouds, choosing the correct hot ends and nozzles, upgrading the mechanics, the software, writing your own configuration files and measuring e‑steps… it is the equivalent of owning a vintage car, so you can get your hands greasy. 

Which is not me, so after the printer again ate all the filament and had the nozzle or extruder clogged, I gave all of the stuff away to a local maker space and was ready to give up on the hobby completely.

Based on the insight that there are printers made for me though, I finally caved and spent way more money than I initially intended for this hobby and bought an Ultimaker 3, quickly followed by an Anycubic Photon Mono SE. As a result, this is my setup:

the whole setup

The sideboard is a workbench-on-wheels, so I can move it around in a pinch. It houses all the accessories for the printers: Extra filament, resins, isopropanol for cleaning resin prints, breathing mask, nitrile gloves, extra paper towel rolls, small tools, and so on.

On top of the workbench, you find the Ultimaker 3 (UM3), sitting on a thick countertop mounted on a rotating swivel. I added that because the filament spools are attached to the back of the printer, which is also where the feeding mechanism is. Getting to those is a bit hard, so having it easily swivel is a pretty handy thing. The heavy countertop helps to minimize vibrations spilling over onto the print.

Aktivieren Sie JavaScript um das Video zu sehen.
https://www.youtube.com/watch?v=wG0PN5-iHGY

The UM3 is a Fused Filament Fabrication printer that takes spools of plastic filament, forces it into a hot metal tube where it melts and then through a fine nozzle drawing a line. Through an assortment of gantries and motors, it can draw these lines into basically any shape, lowering the print bed gradually to build up a true 3D model. The good thing with the UM3 is that it is designed for commercial use. That means that it comes with a good workflow for easy handling, and has parts that can be swapped out without any hassle. It „just works“. And when I want a finer or bigger nozzle, to have more details or more speed, I can swap those out in a few seconds without any special tools.

I also added a hood on top of it, to keep the warm air inside, which tends to make things a bit more reliable. But that is it really for modifications — otherwise, this is a stock printer. And I must say: For functional parts or bigger things, this is a very good machine, and I am very happy with it.

Next to the Ultimaker is a small air filter. I run that whenever I am printing with resin or filaments that emit obnoxious fumes. It has a VOC (volatile organic compounds) filter too, for extra safety.

Next to that is the Photon Mono SE, a masked stereolithography, or MSLA printer. It works by shining UV light through an LCD screen onto the transparent vat filled with resin. The screen lets only parts of the UV light through, and where the resin is exposed to it, it hardens. Then the build platform is raised a bit, liquid resin flows into the gap, and the process resumes until a threedimensional object appears from the toxic goo.

The upside with these printers is that they are insanely detailed. The downside is that their build volume tends to be rather small. The other upside though is that they are mechanically dead simple: Just a platform that moves up and down. That means that the main pricing factor is the LCD screen that blocks the UV light. As a result, even the cheap versions of these printers can be pretty good. You pay more if they are larger, faster, or have a better resolution (but keep in mind that the cheapest MSLA printer will probably blow the most expensive FFF printer out of the water in terms of resolution!)

The Mono SE that I have is a mid-priced one. It has a higher resolution and is a lot faster than the cheaper options. Also, the housing is made of metal, and that kinda appealed to me.

The printer and the Wash&Cure station next to it sits on a silicone mat, to make resin cleanup a bit easier. Because trust me: That stuff is nasty, and you do not want it on your skin, nor in your eyeballs or lungs! It is thankfully pretty easy to protect yourself though: Wear nitrile gloves and a respirator, or at least a paper mask plus eye protection in case of splashes (I already wear glasses anyway, because I have bad eyesight). While the printer runs, ensure you have good ventilation. I added a 4″ hose to the back of the printer and use that to draw the fumes out of the flat, which works surprisingly well. The active air filter is just an extra precaution on my end.

Functionally, the printer is otherwise stock too — although I added a few accessories:

  • a lid for the resin vat, so I don’t need to always put the resin back into the bottle between prints
  • a small plastic gizmo that allows me to hang the build plate over the vat at an angle, so the remaining resin can safely drip back onto the vat
  • a magnetic build surface. A sheet of spring steel that is magnetically attached to the build platform. When the print is done, I can simply pop off the models instead of having to handle a scraper, or worse
safety first

The last thing on the table is the Wash & Cure station. Once the prints are done, I’ll pop them into a wire basket and drop that into a bucket of isopropanol. The bucket has a magnetic impeller at the bottom, and the W&C station has a motor that makes it spin, thus agitating the isopropanol and giving the prints a good rinse, washing off all remaining liquid resin. Once done, I dry the prints and replace the bin with a rotating plate on the W&C station. The prints get put onto that, a UV safe hood on and then the station slowly rotates the plate while exposing the prints to more UV light. That „cures“ the prints, so they don’t feel sticky anymore and are properly hardened. The results are frankly astounding:

Batman and the Orks

At the side of the workbench is a holder for a roll of lint-free paper towels, to clean up messes and such.

Overall, I am quite happy with the current setup. Everything works fine, and I can start FFF prints from my desk (the UM3 has wifi). For MSLA prints, I still handle a USB stick, but that is actually fine for me, as I need to go there anyway to pour resin, prep the surface with paper towels, etc.

On the computer side, I use the following resources:

  • tinkercad.com and Microsofts 3D builder for creating or modifying models
  • thingiverse.com, myminifactory.com and thangs.com to get new models. (Also various Kickstarters. The Orcs from the picture above are from this campaign.
  • For the UM3, I prepare the prints with Ultimaker Cura (which can read the printers settings and inserted filaments through the network and also sends the print jobs directly to the printer)
  • For the Mono SE I am still figuring things out, so I am switching between the Photon Workshop that came with the printer and Lychee slicer. The latter seems nicer, but won’t work without registering and connecting to their cloud on every use.