The ultimate Guide to team chat for vfx

andrei-damian-VV1EcNWY-Ok-unsplash.jpg
 
 

Corona will boost us on the next level

With Covid-19 forcing us to work from home on large scale within literally no time, teams which were used to sit next to each other are rushed into instant messaging (chat) communications with mostly no experience in that tech and culture. This article shares my 2 years experience of successfully transforming a physical presence + email based 100 people vfx studio with different office locations to a virtualized chat based work environment.

At the end of this article you will have learned:

  • why a social infrastructure is more important than the tool

  • how to setup a working channel structure

  • the concept of radar channels

  • managing a process to get 70% of your staff on chat fast

If you feel like you need to rush, just scroll down to the cheat list at the bottom to get a 30 seconds overview of the concepts here.

Before getting into the details I’d like to give kudos to all producing, scheduling, engineering, management teams and solo fighters out there. I know and have seen that you’re actually doing a hell of a job out there in these uncertain times to get us all home safe fast. Chapeau.

I have been personally hugely impressed with the collective spirit and resilience I have seen in the community the last days and weeks. As artists and producers I feel it’s our duty to get up to the situation fast, keep the business running and deliver even more extraordinary results with no physical presence. Our industry is a self innovating and problem solving industry since day one. So I have no doubt we will all rise on this challenge.

So let’s do this.

Communication Principles

Let’s start with a basic primer of communication principles. A typical business uses three channels of communication:

  • email

  • phone

  • meetings and coffee breaks

All three are good, but come with disadvantages:

  • creating communication silos

  • communication thresholds

Silos are simple to explain: nobody can actively look into the communication. Email, phone and meetings are designed as closed communication. While this is good on a personal level, it’s bad for team members trying to catch up on a project or task.

Thresholds are simple too: you need a certain amount of energy and time to start the communication. An email needs recipients, subject, a salutation and complimentary close similar to a written letter. Therefore a one line information needs to be wrapped in a lot of noise around it. Phone calls on the other hand need immediate focus. You can’t put it aside for a moment, so either ignore it or interrupt what you’re actually doing.

Experts call this temporal difference “synchronous” (phone) and “asynchronous” (email) communication. I just call it “email chat”. Let’s take a typical example. The ending of an email about the question “when can we talk?” usually looks like this:

emailchat.jpg

Your last private email

Familiar with that picture? Good. So let’s do better and start with reflecting personal behaviors: When was the last time you wrote an email to a private friend? Organizing a party, discuss with parents of your kids school class, organize sport lessons? This happens on WhatsApp groups, iMessage or Facebook groups. Why the hell should we use email for this? So when was the last private email you’ve sent? See? The simple explanation is: chat is far more efficient for this and outperforms email in multiple dimensions.

So let’s have a closer look at chat. You can use chat synchronized as a dialogue or asynchronous for example by just dropping relevant pieces of information into a channel: render’s done, feedback’s here, lunch has arrived – simple information without the ballast of email and the forced focus of phone calls. So in theory chat is somewhere in between. It’s synchronous if you chat one on one and it’s asynchronous if you check your team conversation end of day to catchup what happened while you were away. This close to realtime elasticity is an advantage even physical presence doesn’t provide. Better than that you can search all your communication and find things usually hidden in email accounts and meeting rooms.

The best model I found to describe chat in a company is one of a digital fireplace in a town. People know this is the place to gather. Not only because of designation, but also because it’s underlined by the surrounding architecture. You can join the place, but don’t necessarily need to. You can hang around, talk to people or just pick up what others are actually talking about. On chat you can click through the channels at end of day and catchup what people were discussing just like wandering around on a crowded town square and pick up random conversations.

It’s not about the tool (again)

So which software shall we use? How many servers do we need? Truth is: the software doesn’t really matter. Sign up an account for Google Hangouts Chat, Microsoft Teams, Slack or fire up an Amazon EC2 instance and apt-get Rocket.Chat on it to get started. If you’re already using one of the services – for example for email – then just stay in the same ecosystem to lower the barrier. If you’re not having paid accounts on one of these services, simply use Rocket.chat for free. On Ubuntu it’s installable as a snap package via GUI so this is really no rocket science. Speak with your team about security needs and adapt to it.

Let’s share my personal experience here: on a typical 100 people vfx company with different office locations we started with Slack and it’s free unlimited chat functionality. We ran into the 10,000 recent messages paywall quite fast as the whole team adopted quickly to chat based communications (with the free service of Slack you get access to the last 10,000 chat messages on your company workgroup). We started with a team of 15 using it and were able to “scroll up” around three months. After the whole company including producing jumped on it, it quickly went down to around a week with the 10,000 free recent messages company wide. So we needed to either pay the service or switch. Looking at the usage statistics back then we also found out that there seems to be a sweet spot at around 70% of people in a company actively using chat, while 30% remain silent or just don’t need it for their job (accounting for example).

As chat became an integral part of our communication at this moment, we felt more secure, having full control over it. So we took an old server with 500GB on RAID and installed Rocket.Chat on it. You own the data and have virtually unlimited users and storage at no additional costs per user. This comes with the need for maintenance of hard- and software. That’s the deal. Additional features like integrations (see below) were missed at the beginning but turned out to be not vital.

Social Infrastructure

You and your company are most likely at already at this point. You’ve setup a chat tool for your company, handed out accounts and encouraged people to use the new chat tool by sending an email around. Sounds familiar? Good. I’ve been there too. Usually chats are fired up, video functionality tested. After three days the team falls back to email and phone calls.

That’s bad.

So here’s the trick. The key to successful chat communication isn’t the technical infrastructure. The true (and most tricky) thing you need to set up right from the beginning is what I call a “social infrastructure”. Compare it to file servers. Imagine you got your new shiny petabyte file server ready to go but no folder structure and naming convention in place. Figuring chaos and disaster? Right. So let’s prevent that.

To get chat started it is absolutely necessary to create a channel layout right from the start. It should reflect your company’s workflows and even more important its culture. It is ok, if it isn’t perfect at this point. It just needs to be in place. But for sure it needs to be more than “every project gets a channel”.

Like folders, channels need a precise description and workflow behind it to become useful. If the channel layout is done well, everyone will intuitively know where to find and share information on chat similar to a well thought folder structure.

So let me share some best practices I found useful in the last years.

digital Fireplace

The first thing you need to do is to set up a digital fireplace for your company. Funnily all resources and my personal experience point out, that it’s usually the place about food. Setup a channel called #lunchtime, #moseisley, #tenforward or whatever suits your company culture to describe this place is about grabbing food, beers and coffee. If you have a named physical place in your office space, name it like this. Put something like this into the channel description visible to everyone:

Lunch appointments, pictures, deliveries, stylish mugs, cakes and beers here.

Give your service team a note, that all notifications about incoming deliveries, free beers, etc. should switch from email to this channel and Inform your team about it.

Background is: as every new medium comes with a threshold, you need to provide a quick and beneficial reason for your team to adapt. Somehow food seems to be even more important than finished renders, so let’s provide your team a very beneficial “reason why” right from the beginning and announce free beers (after the quarantine) exclusively on this channel. What you want is to pull a critical mass of users onto the new chat system. And if this new tool is about free beers, it must be good.

LOCATION General

Now let’s install a channel, which catches all the communication needs about the company in general. Even when working from home people need a place to talk about general topics related to the company like xmas party ideas, the coffee machine on third floor not working or simply posting social life. As this cultural part is usually bound to an office location, let’s create one channel per location. Name it for example #VFXBLN, #VFXLDN, #VFXNYC, #VFXLAX, etc..

Use location channels to fetch every communication related to the location and the teams behind them. Put a channel description like:

Official announcements and culture.

This is also the place to celebrate finished jobs, welcome new team members and post social pictures. Questions like “when’s the xmas party going to happen?” will be discussed only once and be visible to all afterwards, instead of being asked in multiple emails all over again.

Departments

Now get into details. One aspect I really like about chat is that it creates a culture of ideas being able to flow. You’ll quickly notice that it boosts innovation processes if done right. As simple as it sounds the structure behind it are mostly simply department channels.

Check how departments are setup in your company from a social perspective. Flame and Nuke compositors tick differently? Ok. Then don’t simply drop them in #comp. Just give them their own space. Runners are a bunch of rocknrollas? Good! Give them a channel beside client services. Think outside hierarchical structures, but in communication paths. Consider whether it’s useful to put all 2D people in #2D or whether you should define it more granularly into #motion, #nuke, #flame. It also depends on your company size. If you end up having just 2 people sitting on the #mocha channel it might be too granular. Also remember, that every team conversation not in your specific field of work is considered as noise. It’s similar to be in a meeting where they talk about stuff you don’t care for hours before your topic finally comes up. Members of a channel should share the same need for the same kind of communication. By thinking so you can also switch department for topic. For example open up a #renderfarm channel to bring tech personnel and artists on this field together. I think you get the idea.

So long story short a typical advertising VFX channel layout here will most likely hold channels like #dpt_nuke, #dpt_3d, #dpt_flame, #dpt_engineering, #dpt_producing, #dpt_scheduling, #dpt_encoding, dpt_clientservices etc. Don’t make it too granular, as this lowers the usability threshold the opposite way, which we want to avoid.

Also keep a prefix like #dpt_ as it’s important to have an alphabetical sort of our channels into blocks later on.

Radar Channels

Now let’s head onto more advanced chat usage. One concept I found really useful are posting only channels, which I call “radar channels”. The idea is to expose and spread information in a standardized way for the benefit of all. A very simple example are messenger channels, which share the information about incoming deliveries. Radar channels have a solely informative character by definition.

A more advanced example is a #jobs or #newbusiness channel. Post your incoming job request here so everyone knows about them and can contribute actively. Forget the times when emails were sent around like “anybody worked with a similar concept before?”. In an active chat culture your staff will actively pop up with ideas to tackle this.

Just bear in mind that it needs to be underlined with conventions similar to naming conventions on a files server to become useful. For example a convention here can be to post incoming jobs as one liners in a standardized format, for example:

Incoming: project name / director / production / agency

Also you should set a process behind it. Here for example you can state, the information must be dropped into the channel the same day the request got in as a process definition.

By doing so you structure the information over time and remove the conversational clutter of it, which normally would arise in the form of “Hey, got a call from agency today. They gonna start a new campaign and invited us to join, etc.”. While this conversational component is good for social, radar channels should provide information in a more raw matter to speed up the information screening process by readers.

The nice thing about radar channels are that they enable your team spark ideas. Coming back to the #jobs channel idea: simply by noticing certain jobs are incoming, people start thinking about it. Most likely some have worked on a similar kind of job, know some people, have some assets which might be useful or know a bunch of moods to reference to. And the best is, this is not bound to a certain location. I experienced a lot of contribution from other locations that way, which normally wouldn’t happened, because they wouldn’t have picked up the new job on the coffee machine or you wouldn’t have noticed they worked on a similar project some months ago. This information just got to be exposed.

ACCESS CONTROL

But this is also the point, where you need to check, who got access to certain channels. While social channels should be default and visible to all, areas like new business need some protection. Not just because it is sensitive business information, but also because depending on the personal character someone might not be able to handle it correctly. A quiet #jobs channels for example may make an artist nervous while a manager knows, this is part of a normal business cycle. As a rule of thumb people handling a certain process should be in the channel. Speaking of the #jobs example it would typically be management, producing and lead artists to give a reference.

One-to-TEAM users

Beside direct one-to-one chat communication (which is like the super basic functionality of chat), you may need one-to-team channels. Let’s take client services. You want to order coffee for your clients. As this communication is usually done privately from one person to a team with one member on duty, this needs a similar layout for our chat based communication. Front office, clients services and library dispatch are typical departments for this. As you don’t exactly know, which team member is actually on duty a best practice here is to create an own user for these departments. This user is shared and logged on onto the desktop computer or iPad of the department. By doing so, you can have a private direct chat with the department.

As this works against the typical structure of chat systems, where you mostly get either direct OR group chat, this needs to be introduced as a business processes. The best way is to introduce these channels as part of your on boarding process or catchup email later on. Explain that coffee orders can be done by chatting to user @thebar and messengers can be ordered from @frontoffice (both for example). Introduce it as a new clutter free way to get access to services, while keeping the “old” channels open for while for a soft transition.

Integrations

You might come up to the point, thinking about advertised features like integrations (or whatever it is called on other platforms). The idea is to link software to the chat system so they can post information. Let me share my experience so you can think into that for your specific setup.

In one case we used an integration with video review tool Wipster on Slack. Wipster logged all activity to a channel (#wipster) on Slack, which was exposed to producers and leads. So this group could see all client review activities on Wipster in realtime inside Slack, for example someone started reviewing a video, someone left a comment etc. (interestingly you could also see, if clients started to watch the videos right away or watched it on a Monday, after forcing you to do overtime to hit a Friday end of play wip delivery).

In tools like Slack many other standard tools offer more or less usable integrations out of the box. With a bit of scripting you can build a similar functionality nearly everywhere.

Other to email in a channel you can fetch the information in the moment you need it and scroll back in time. Thinking in communication theory you can pull necessary information instead of having loads of possibly non useful information being pushed to you at a random time (for example in form of a newsletter).

Looking back this little functionality we built wasn’t a killer feature, but nice to have. I’m pretty sure with a bit of coding and intelligent process identification, possibilities are endless here. So it’s worth to play around with it.

BOTS

Bots are another very good “reason why” to use chat. Basically it works like a keyword trigger: in the moment someone enters a certain keyword, the chatbot gives a pre-defined answer. Really no rocket science. But if you do it smart, you can give a good push to the productivity of your team.

A very simple but yet useful example are phone extensions. Can’t find the on boarding mail with the phone numbers PDF? Me either. Create a bot reacting to the keyword “phonedirectory” with a chat message of all phone extensions. Be more granular and do the same with “phonenuke”, “phoneproducing”. Think office locations and create “phonenyc”, phonelondon”, etc.. If you go pro then hack your HR database to answer “remainingleave” with remaining leave days of the logged in user. Get the idea? Good. Never ask for the phone directory again.

Project ChanNels

Finally lets announce a clear convention, how to create project channels. Depending on your company structure you may want to limit who can create channels and therefore also project channels. As a rule of thumb it’s most likely the group who is also allowed to create project folders on the file server or projects in the asset management system.

At creation add your team members onto the channel, but let it open to join for everyone as long as there are no NDA restrictions. It’s important to keep it “joinable”, as it lowers the barrier to get expert knowledge of someone inside the company onto the project. The possibility to add people to a project channel should also be open to anyone in the team, so knowledge can be pulled with as little effort as typing: “Perhaps @flamehenry has an idea to solve it?” (in that moment Flamehenry gets a notification and will be automatically added to the channel).

It turned out to be a best practice for project channels to advise producers to put the project treatment / storyboard / directors interpretation as well as a link to the latest WIP into the channel announcement text, as this is mostly relevant for the whole team. You can also provide a rough project sheet using the channel announcement. In most cases the names of the producer, lead, director are useful.

It’s also important to ask people to openly do discussions about their work on the channel instead of being shy and do direct chats with a supervisor. It’s important as by doing so every other team member on the project can side listen to the conversation similar to hanging around in the same room in the office. In case someone got an idea, they can contribute directly. In case it isn’t relevant for a single team member, he or she can simply scroll down the conversation and carry on.

Again, use a prefix for projects, which works for you. You can do it based on locations like

#JOB-LOCATION_PROJECTNAME_PROJECTNUMBER

Or you can set your project number upfront:

#JOBNUMBER_PROJECTNAME

Just don’t set the project name in front, as you want to built up a block with your jobs in the channel list of your team. So a clear prefix is important.

You should also consider an own prefix for jobs in a pitch process, which sorts them clearly out of “active” jobs. You can for example do #BIDNYC_PROJECTNAME, #BIDLDN_PROJECTNAME versus #JOBNYC_PROJECTNAME and #JOBLDN_PROJECTNAME to differentiate a job being in pitch or production at certain locations.

Doing the switch

Now let’s bring the team on board. In my experience a good way to do this is to shift useful information onto the system while also introducing a countdown to softly activate a critical mass of users. In my experience you will end up with 20% power users, which really try to drive the system and innovate (by creating custom company emojis for example), 50% being normal “users” and 30% staying on email. Speaking with others this seems to be a natural usage distribution for our industry.

As mentioned before food is the first important channel. Advise your teams to switch food orders, deliveries onto the food channel and actively use it for lunchtime appointments, free cakes and beers. You gain your critical mass for the system here.

Also announce the installation of the new system. Explain the functionality and idea of processes using specific channels like one-to-team users or radar channels, so everyone gets a chance to understand the system.

Finally set a fixed switch date. Explain your goal to shift a majority of the communication onto chat, because it’s more efficient as you can see in your private emails to friends (which are mostly zero). The idea is to have ZERO internal emails EXCEPT structured information from that switch date on. Of course you won’t reach that goal up to 100%, but that’s the idea.

Here are some examples for structured internal information, which shall remain on email:

  • everything lists (feedbacks, equipment, assets, etc.)

  • magazine or article like information (internal showcases, newsletters, etc.)

  • official announcements (management updates, process descriptions, announcement due to legal reasons, etc.)

  • client communication of course

Some concepts here: a fixed switch date sets a clear timing for everyone in the company and creates a soft pressure to get familiar with the system the closer you get to it. By announcing a total switch of internal communication to chat you’re quickly getting over the learning curve threshold and gain a critical mass of users on board.

In my experience you will reach a sweet spot balancing internal email vs. chat about three weeks after the switch date. Be prepared to do some one on ones and fine tune processes. It may be clever to name some power users as experts to your team who can help with the transition.

In my experience you’ll miss email in no time afterwards.

Cheat list

Let me sum up some of the ideas mentioned in this text, so you can quickly catchup and get it rolling.

  • Chat is more efficient than email. If you don’t believe that just look up your last private email you’ve sent.

  • A social infrastructure for chat is more important than servers and the tools.

  • A proper channel layout for chat is what’s a folder structure for a server.

  • Food channel comes first.

  • Think in communications groups instead of departments when creating channels.

  • Chat is the digital fireplace for your company.

  • Chat makes your whole communication searchable with a click.

  • Use prefixes to organize channels into blocks in the channel list.

  • Define one-to-team users to allow private to group communication.

  • Create radar channels for raw information distribution.

  • Publish channel naming and posting conventions in written form to your team.

  • Set a clear switch date, so everyone has a clear timeline of the transition process.

  • Try to have “zero internal email” after that date.

  • Avoid a zombified “there is also a chat tool” situation.

  • Encourage a playful use of chat (company GIFs are the benchmark)

  • Actively get involved into chat. Lead by example.

We at our very best

Let me do some closing words. We are clearly in the strangest of times with uncertainty everywhere. If you made it all the way down here, I hope you and your family are safe and I could contribute my part for you to get up on this challenge fast.

I’d like explicitly thank two guys Michael Trautmann and Christoph Magnussen here from which I sourced so many knowledge about this topic.

Let me also say some final words on our situation right now. This article is written out of the motivation to share experience and help. I think the faster we accept that this situation won’t end in weeks, the faster we can continue creating the visions of future, presence and past the world is admiring us for. The faster we accept and encourage everyone that this is the new normal the faster we all can adapt and get back on speed.

So don’t hide. Stand (virtually) together. Contribute and share knowledge. Innovate at even faster pace. Create even more stunning images. Innovations are mostly born in the heart of crisis’. This industry is packed with brilliant minds and breathes this unique “can do” mentality since its very beginning. I have no doubt we will all rise on this challenge and overcome this virus for good.

So get yourself some last rest, then get up and start this. We got some work to do. So let’s do this.

Many thanks

Nhat Quang Tran
London / Berlin in March 2020