The spectrum of humanity

comments 2
Remote working

This article is part of a series on remote working.

OK, a quick recap…

In the last article we looked at the spectrum of permanence, which showed that:

  • A strong correlation exists between the permanence of communication and asynchronousness.
  • Permanence can be determined by how relevant, accurate, or useful a particular artifact is with time.
  • Shifting to be more asynchronous means that you should leave an audit trail, maintain indexes of important information, and ensure that you regularly mark, file, tidy and delete your artifacts.

In this article we’re going to look at what it means to feel connected to other people, by considering the spectrum and how it maps to humanity.

Restoring your humanity

Whether you like it or not, you are a human. (If you’re reading this and you’re not a human, science would be quite interested.) We are social creatures, regardless of whether we are having a day where we feel like we’d rather lock ourselves in our home and never see another human ever again. Our strength as a species is built upon understanding each other, mirroring the behaviors of one another, and working together toward altruistic goals. We’ve evolved to be around each other as it brings us many positive benefits.

Humans working together can achieve great things, such as building society, innovating in science, and creating technology. For example, humans made the best video game ever: Dark Souls. (If you disagree, please close the tab.) Here, the protagonist finds themselves as an undead in the mysterious city of Lordran. They are warned that if they are not careful, they will go “hollow” – a zombie-like state – by losing their humanity. Players can restore their humanity by resting at the warmth of various bonfires dotted around Lordran.

Despite everything that we’ve covered in this series, simply being asynchronous all of the time isn’t the solution to all of our remote working problems. Yes, it may make communication more concise and efficient. Yes, it may allow us to better think through problems. And yes, it may also create better opportunities for people regardless of their location to be a part of consensus and decision-making. But this does come at a price. If we spend too much time away from interacting with other humans, then it may have a detrimental effect on our mental health and our happiness because we are fighting against our humanity: the core human trait that we have used over time to excel as a species.

At the start of the mass transition to working from home during the COVID-19 pandemic in 2020, it was reported that the replacement of in-person meetings with video calls was making many people suffer from a feeling of false intimacy that was leaving them grieving for face-to-face life. Various theories speculated that our brains were finding it difficult to shift so suddenly from a physical world of connection through presence, voice, and body language to one that was a lower resolution and sometimes juddery alternative.

Too much time spent away from humans, especially when the number of humans that we see in our personal lives is small, can be detrimental to our mental health. So if this article didn’t exist, you may have come to the conclusion that remote work would be best if you were able to efficiently exchange ideas and make progress entirely asynchronously. However, as time would go on, you would feel less and less connected to other humans. And there’s a high likelihood that you would feel less happy too.

We can add a final property to our spectrum, with a nod to Dark Souls. As brave warriors in our remote-working adventure, are we making ourselves feel human or hollow?

What you have to do in order to feel happier and more human is occasionally break the rules

Yes, you ignore everything I said in the other two articles.

There’s a balance to being efficient and also feeling part of a community of other humans. You have to ask yourself each day whether you are feeling more or less connected to others. You need to check in with yourself regularly and make sure, dear adventurer, that you are not going to go hollow on us. It turns out that you can rest in the warmth of the proverbial bonfire in a number of ways.

What you should do is:

  • Encourage goofing off.
  • Use the wrong communication formats on purpose.
  • Meet up in person with other human beings.

Let’s have a look at these in turn.

Encourage goofing off.

Let’s face it, not everyone spends all of their time in the office working solidly. Other activities that take place during the office include having a chat with your colleagues in the kitchen, going out and grabbing a coffee, and maybe even playing a game of table tennis. So why should remote work be any different?

If you are a diligent and hardworking person, which you most likely are, then it is easy to fall into the trap of overworking while you are at home. Since there are fewer opportunities to have ad-hoc interactions with your colleagues, you can potentially end up grinding away even harder than you would if you were in the office. 

So you need to goof off. But how? It turns out that there are a great number of ways, and they don’t need any expensive setup or tools.

For example, you could:

  • Openly encourage opportunities for conversation. Create chat channels or mailing lists for sharing information, stories and pictures of pets, family, or hobbies. This gives a welcome distraction from the day to day, and enables colleagues what work in different parts of the company to get to know each other better. Like they would whilst hanging out in the kitchen. Create channels around office locations, different animals, sports, video game consoles or even pop stars. You can keep these listed in an index and link to them in your onboarding documentation.
  • Book social time into the calendar. Perhaps you could end your Fridays with a virtual happy hour that starts at 4:30PM. Maybe you could hang out with your colleagues at lunch, but virtually. No work talk, just fun talk. Perhaps you could end the day on Thursdays with a quick online game of chess or Rocket League; whatever takes your fancy.
  • Collaborate for fun. For example, every Friday you could all build a shared playlist around a theme using whichever music streaming service you prefer. You could arrange a trivia game on a subject of your choice once a quarter. Or why not have your team watch a recorded conference talk or lecture together while discussing it in a chat channel?

Even though goofing off isn’t actually doing your work, it still is an integral part of your work. It’s easy to default into execution-only mode when working remotely, but in the long run this is going to drain your batteries and make you feel much less connected to others. After all, we work to make money, to master particular skills, and serve our customers, but there is a lot of good in knowing and serving each other as well.

Use the wrong communication formats on purpose.

Given that synchronous communication allows you more opportunity to feel connected to other humans, sometimes you’ve just got to be more synchronous, even if it is more inefficient. (Yes, you need to be purposefully inefficient. I know that’s hard.) 

Here are some ideas for encouraging more synchronous interactions:

  • Hold regular virtual office hours. This works especially well if you’re a senior engineer. Block out some of your focus time in the week to work openly on a video call that anyone can join. Less experienced engineers can learn a lot from watching you work, and they can ask you questions while you do so. Additionally, others can screen share their own work and discuss it and get assistance if required.
  • Pair program remotely. Pick a ticket every iteration and pair up with someone else on your team. Many IDEs now offer remote pair programming features. 
  • Review a pull request synchronously. Rather than sticking to the usual asynchronous method of reviewing a pull request, why not invite a couple of reviewers to come and look at it over a video call with you? This allows you to step through the code, discuss issues and solutions, and connect to others while doing so. If you can’t arrange a live collaboration, a neat option is to record a video stepping through your approach to the code changes, and embed it in the description of the pull request. 
  • Have a silent meeting about a written document. If you have written a document with an idea or design for others to review, consider holding a silent meeting. In a silent meeting, everyone joins and reads the document together, in silence, while on the call. Then, once everyone is done, the discussion can happen synchronously with one person taking notes. As well as feeling more connected to others, this can stimulate more productive behavior amongst the group, since everyone is on the same page when the discussion begins.

If you want to inject a bit of positive chaos into proceedings, then occasionally try and find ways to get as many people working together synchronously in real-time. For example, the whole team could use mob programming for some of their tasks, or you could all try to write a design document together while on a call. At the very least, this will be fun. Just don’t tell them that I suggested that occasionally you should change the font color to white and say that there are strange technical issues occurring.

Meet up in person with other human beings.

No matter how you try to simulate human interaction, it’s impossible to replicate it. So if you can’t beat them, join them in person. If you work remotely but in a location nearby some of your colleagues, try to find some time to meet up. 

However, there are some rules that I would like to enforce:

  • Meet up on work time. You’d chat in the kitchen while people ate their lunch, so you can do this remotely as well. Forcing social activities into the early mornings or late evenings sets a bad example by principle, by saying that “this is a social thing, and we don’t do social things during the work day.” Well, you would in an office. Building relationships and rapport with your colleagues is an important activity that should be taking place on work time as well.
  • Do something enjoyable. You don’t necessarily need to spend much money by eating out or paying for admission to somewhere, unless you want to. Instead, there’s plenty of enjoyable free things that you can do such as going for a walk in nature, going to investigate a cool landmark in your city, or, if you’re into it, going for a run or a bike ride together. 
  • Try not to talk about work, unless it’s useful. Since you work together, it’s probably going to be natural that you’re going to talk about work a little bit. However, try not to make it the main focus of meeting up; the choice of activity can have a real impact here. Instead, meeting up outside of work when you work remotely is primarily about getting to know each other as human beings, not just as analysts, engineers or researchers. See if you can get to know your colleagues on a deeper and more human level. It’ll make your interactions at work while remote better, as it’s harder to get frustrated at Steve the human being as opposed to Steve the chat handle that always manages to phrase things in a seemingly passive-aggressive manner.

If you happen to not live near any of your colleagues, then you can do all of the above activities with your family, friends, or pets. If that’s not an option, then just make sure that you’re regularly getting away from your computer during the work day and surrounding yourself with other people. This might mean working in a coffee shop or co-working space occasionally, or attending to meet-ups and talks in your local area. As much as we may have dreamed of just being able to stay in our rooms forever as teenagers, there are times when we need to redress the balance as well.

That’s all, folks!

That ends our three-part series on the spectrum of synchronousness. We’ve learned all about:

  • The spectrum between synchronous and asynchronous communication, and what methods to communicate with and when.
  • The correlation between asynchronous communication and permanence of artifacts, and some best practice around managing them.
  • There is a continual tension in remote working between wanting to be efficient and needing to feel connected to other humans. We sometimes need to break the rules on purpose.

I hope you’ve found this series useful.

The spectrum of permanence

Leave a comment
Remote working

This article is part of a series on remote working.

OK, a quick recap…

In the last article we looked at the spectrum of synchronousness, which showed how there exists:

  • A continuum between synchronous and asynchronous communication.
  • Implicit expectations with that communication depending on the medium and format you choose to communicate with.
  • A need to shift right along this spectrum in order to better support remote and distributed working.

In this article we’re going to look at permanence.

Permanence

Whenever you communicate, you create artifacts. These can range from a memory of a conversation in a colleague’s brain through to a detailed written proposal. Similar to the continuum between synchronous and asynchronous, there is also a correlating continuum between permanence and impermanence

But what do we mean by that?

#define

  • A permanent artifact is one that has a quality of lasting or remaining unchanged indefinitely.
  • An impermanent artifact only lasts for a limited period of time.

There are several dimensions on which to determine the permanence of an artifact, both now and in the future:

  • How relevant is it? Does it accurately represent a decision, system or process if somebody was to find it?
  • How accurate is it? Does it fully document its subject matter, or does it require additional information from elsewhere in order to fully describe it? Could it even be out of date?
  • How useful is it? If somebody was to search for and find this information, is it a good use of their time to read it?

We’ve all experienced permanent documentation that has been misleading. This is because as humans we are excellent at creating artifacts to address our current needs, but we don’t always bring our attention fully to what will happen to those artifacts in the future. We need to be mindful of this fact. Are we making the future better? Or are we setting a trap?

Look at the correlation between permanence and synchronousness in the diagram below.

As you can see, synchronous communication generates very few artifacts for the future. Asynchronous communication, on the other hand, does not work without these artifacts being created. 

In a workplace that is centered around physically colocated offices, our bias towards synchronous communication leaves no audit trail, which is why remote workers often find it difficult to feel integrated if they are not party to synchronous, in-person communication. Did it even happen?

There are some key principles to follow in order to make sure that you create good quality artifacts that last into the future and enable distributed and remote working. These principles can be applied at the individual, team, department or company level.

These are:

  • Leave an audit trail
  • Maintain an index, and
  • Mark, file, tidy and delete.

We’ll look at these in turn.

Leave an audit trail

Some of the tools that we use to develop software have evolved to create audit trails as a feature. For example, take version control systems like git that allow us to inspect – and even replay and change – the history of commits in a software project. We can often go back in time and understand what happened and why. 

This is great.

However, we should be thinking of applying the same principles of leaving an audit trail from our communication and decision making. We should pay attention to showing our working by applying the shift right on the spectrum to whatever we are doing. For example:

  • As we go about our day, we should keep our team informed about what we’re working on by writing updates in a team chat channel.
  • When we have an informal chat and make a decision about something, we should broadcast that decision via a written form, such as in our team chat or via email.
  • At the end of a week, we could write a brief update to each other about what we’ve been working on and why, and what we’re focussing on next week.
  • When having meetings, we should maintain an agenda with notes that contains the history. Additionally, we should record each meeting in that series and store it in a shared file system.
  • When starting new projects, we should work on our ideas in design documents that anyone can view, ideally storing all design documents in a central place so that anyone can discover them later.
  • When we make a major architectural decision in a codebase, we should document exactly why we made that decision and how it affects the structure of the code going forward.

Leaving an audit trail can seem like hard work if you’ve not been used to doing so. However, once you start, you’ll notice that it has numerous advantageous effects on the way that you do your work. 

Even if you’re working alone, you gain more opportunities for interaction with others through your audit trail, which is especially important with remote working, and writing while you think helps develop your critical thinking skills.

Maintain an index

Regardless of whether you are an individual contributor, manager of one team, or of a whole department, creating indexes of information is essential for keeping your house in order, increasing the discoverability of artifacts, and also encouraging others to work in this way.

Search engines for our documents at work are not in any way as good as the ones we use to search the internet. You can just never find that document that you were after. What was it called again? Was it “2021 projects” or “team allocations”? Did it have a typo in the title? Was it even stored here?

Maintaining indexes can be a great way of making the important items discoverable for everyone. It could be as simple as a shared document with hyperlinks in it that anyone can edit. 

For example, for a team, the index could contain:

  • A quick overview of what the team is called and what they are working on.
  • The members of the team and how to contact them individually.
  • Links to their team chat channels and email groups.
  • Links to the code repositories that they own and are working on.
  • Links to shared folders with design documents and architectural diagrams for current and past projects.
  • Rolling meeting agendas and recordings.

This index could be linked to in the staff directory, their chat channel, and in the codebase documentation. It doesn’t take long to create, but it can be the beginning of numerous shift right habits that begin to contribute to making the index and the linked documentation increasingly better. 

Humans have a habit of mirroring other behaviors that they like, so it won’t be long before other individuals and teams start their own indexes as well.

Mark, file, tidy and delete

It’s all well and good continually shifting right along the spectrum and creating all of these new artifacts in order to better support remote and distributed working. However, artifacts often have a shelf life. 

A design document that assists a productive discussion and decision today may just waste an hour of someone’s time in a year when they don’t realize that it is no longer relevant. It is your duty to ensure that you are keeping your proverbial closets tidy with good habits.

Thinking back to our spectrum of synchronousness and permanence diagram, there is a general observation that we could make:

  • Artifacts that are produced from communication closer to the left-hand side of the spectrum will typically have a short shelf-life.
  • Artifacts that are produced from the right-hand side of the diagram will typically have a long shelf-life.

The video recording of a meeting probably isn’t going to be an artifact that you’ll want to come back to in several years, but it may be useful for people to catch up on the content in the weeks following it. However, the README file for a software project should probably be evergreen: that is that it’s as relevant today as it will be in the future.

So, what this means is that:

  • Short-lived artifacts should be labelled as such. This can happen implicitly (e.g. an old code commit is implicitly short-lived, since there are commits after it in the same file) or explicitly (e.g. a written summary that is no longer useful is marked as “old”, or is archived away, or even deleted).
  • Long-lived artifacts should be kept up to date. Any unmarked written document or wiki page should be occasionally revisited and updated to ensure that it is still relevant and useful.

Conflict usually occurs when there is a violation of these principles, which often happens towards the right-hand side of the spectrum of synchronousness. Wikis or READMEs stagnate, but it is often not clear that they have, and then they waste somebody’s time. Written documents can become irrelevant, but they are not marked as such.

Always make it clear when you are creating a short-lived or long-lived artifact. Appropriately labelled short-lived artifacts can be forgotten about, as future readers will understand that it is likely no longer relevant if they stumble upon it. Long-lived documents need tending to with time to remain evergreen.

Continually review, mark, file, tidy and delete your artifacts. Your future self and colleagues will thank you for it.

Takeaways

Here’s the homework for this week.

  • Begin increasing your audit trail. Blog updates on what you’re working on in your team channel with links to pull requests, tickets and comments. 
  • Write a daily or weekly update to your team about what you worked on, what went well, what didn’t, and what you’re focussing on in the next time period.
  • Discuss the idea of creating an index with your team. What should be in there? Then create it!
  • Search through your shared filesystem to find the oldest and most irrelevant document. Share it around if it’s humorous. How did it end up like this? What strategy would have prevented it getting into this state?

Next time we’ll look at the correlation between becoming more asynchronous and the effect it has on feeling connected to others.