开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《来找茬的 big-list-of-naughty-strings》
今日推荐英文原文:《29 Tips for Very Effective Remote Managers and Workers》

今日推荐开源项目:《来找茬的 big-list-of-naughty-strings》传送门:GitHub链接
推荐理由:一般来说,让开发人员为程序输入数据比较稳定,而到了正式使用的时候,就会有 99.99% 的非开发人员来输入数据——谁能肯定这里面没有什么人来给你整点新花样呢?这个项目是一个字符串列表,包含了各种可能带来异常的输入数据,虽然里面可能混杂了一些艺术成分……如果系统的输入处理模块连这些都能承受下来,那可就再好不过了。

今日推荐英文原文:《29 Tips for Very Effective Remote Managers and Workers》作者:Sarah Milstein

29 Tips for Very Effective Remote Managers and Workers

These days, there are lots of guides for remote work, with lots of good ideas. But the logistics and social dynamics of successful remote arrangements can be quite subtle.

I’ve been working on and leading remote teams for two decades, and I’m going to share a bunch of tips that I’ve seen covered rarely or never before. When you know these, you can be more intentional, and thus more successful, on distributed teams.

First, let’s note that not all distributed teams are the same. There are fully remote teams with no shared physical space; partially remote teams where some people work in an office and others work from home; satellite offices where people work in the company’s physical spaces but not in the same ones as their teammates; and various variations on these themes. Many of the tips here apply equally to each of these setups. But some setups — in particular those in which many people are in one office and others are not — require deeper diagnoses and more systemic solutions to really thrive.

In addition, there can be different roles in distributed work. They may include people who manage distributed teams or who manage individuals in another location; individuals who are remote from their team or manager; people at HQ who work with remote folks or people in satellite offices; and company leaders who can set norms. I’ve structured this piece by role, to help give you clarity about how you can have — and help create — the best experience.

If you’re in the office and you have coworkers who are elsewhere

Video is going to be a huge part of how you connect with people outside the office. Don’t leave it to IT alone to set things up. Instead, understand the big social differences that small technical changes can make and lead by example.

#1. Practice “one on video, all on video.”

This is one of the most powerful norms you can set in any situation where some people are colocated (i.e., in an office together) and some are remote. If you do nothing else, adopt this practice alone for huge benefits. In a nutshell: if even one person is joining a meeting via video, everyone else joins via their own camera, too (laptop or phone) — -even if a lot the attendees are in the same room and it has a video camera. The individual video is critically important to allow anyone remote to fully see the others and participate. A camera that shows the whole room inevitably cannot show everyone’s faces adequately, and it often cuts off some people in the room altogether. The people in a room together can share a speaker and mic from one laptop or the room system, if there is one. (When you’re sharing sound, everyone else should mute the speakers and mic on their laptop, or you’ll get echoes and ear-piercing feedback.)

I cannot overstate how big a difference individual video cameras makes for remote participants and meeting quality overall. While this norm requires that everyone schlep their devices to meetings (and that they learn how to reduce distractions from those devices, discussed below), it pays off in better and sometimes shorter meetings, as the remote attendees are able to understand and engage much more quickly and thoroughly. And, happily, it doesn’t lead to any change of connection between the people who are together in person.

#2. Make some meetings video only.

Again, if you have some colocated coworkers and some remote, it’s worth deciding which meetings are better held with everyone joining via individual video, from their own desks (even the people in the office). Contrary to what you might expect, many large meetings that tend to focus on presentations rather than discussions, like company or department all hands, can make for great all-video sessions. Rather than feeling like a one-way broadcast, a meeting where everyone joins via video can feel participatory, letting you see your coworkers’ faces. Plus, a dedicated chat — in the video software or the chat software — can bring additional energy and community vibes to these meetings, along with an easy way to share feedback or ask questions on the fly (designate a moderator or two for bigger groups).

#3. Designate somebody in the room to make sure all the folks on video can see, hear and raise their hands.

Tell the people in Videoland who their designated rep is, and have that person tell everyone the best way to reach them if something goes wrong (e.g., Slack or Zoom chat).

If you manage distributed teams

There are lots of things to try — and you may need to experiment to find the systems that work for your team.

#4. Use meetings to connect with each other, not for status updates.

A short daily video call that you use for things other than status updates can make a huge difference in the cohesion and productivity of a team. You might try a running agenda of questions for the team; information people have discovered; small triumphs; lessons learned. Rotate who runs the meeting. (For status updates, try statusbot in Slack, or keep a running list in Trello, a Google doc, or wherever your team captures stuff.)

#5. Create an agreement about roughly what time you’ll all start and stop messaging and emailing each other.

The research on this is crystal clear: one of the things people most fear and dislike about remote work is that there’s not an obvious end to the day. Without a commute to break things up, or any other boundaries, you can easily work all night, especially if you’re receiving messages around the clock. Solve this with team agreements about the hours you’ll send out things on Slack, email and other communication tools. In other words, create a start and end of the day by drastically reducing or eliminating the incoming messages that everyone gets and by increasing the expectation that that time away from work is valuable. You can set these agreements by team or for the whole company.

For example, when I was CEO at Lean Startup Productions, we agreed that nobody would send anything after 7p on weekdays, in whatever timezone they were in, or on weekends. We made exceptions for the week or two before big events that we produced. We didn’t limit the hours people could work; if somebody liked to work evenings or needed the flexibility to get something done on the weekends, we had the freedom to do that. But our work couldn’t fill up anyone else’s inboxes during off-hours. Even though we spanned time zones, so you’d still get messages before and after your normal work day, you got far fewer of them — and our shared agreement that we wouldn’t see each other online during certain hours was a powerful incentive to stop working and spend time on our lives outside the company.

Software can really help you out here. In your email app, look for an option like “schedule send” or use a tool like Boomerang that will let you schedule messages to go out at a time you choose. Write messages during vampire hours, schedule them to arrive in your coworkers’ inboxes during normal work hours. On Slack or other messaging systems, look for “Do not disturb” settings to turn off notifications after hours. Conversely, when you can see your coworkers have those settings turned on, don’t worry about sending them messages! They won’t see them until they log in.

#6. Make it friendly.

Some teams find it helps them feel more co-present to say hello via chat when they log in each morning and goodbye when they head out each night. Agree on a standard and model it.

#7. Say hello to each other’s families and pets.

There’s a distinct kind of intimacy you get from seeing people regularly in their homes, among their things and beloved people and animals. Take advantage of that by encouraging people to bring their families and pets in front of the camera and to give tours of their homes. This can have the bonus effect of making parenting a more respected part of people’s lives, often a particular challenge for women. (Of course, be sensitive to people who don’t want to bring their families or homes onscreen. It’s comfortable for a lot of people, but not everyone.)

#8. Set up coworking time over video.

Book team time for long blocks (an hour or two) when you’ll all be doing heads down work quietly together. Sounds hokey, works incredibly well.

#9. Make it normal to jump on video to ask quick questions.

If your team is used to asking each other questions casually, agree that if you have something short to discuss, you’ll ping each other and ask for five minutes on video, rather than book calendar time or try to work out complicated things in Slack. (In Slack, use the command /zoom to get an instant Zoom link for anyone in that channel/DM.) Of course, if you discuss something that other people should know, bring it back to a team channel or meeting.

#10. Use software to suggest informal meetings.

Tools like Donut, which integrates with Slack, will automatically suggest coffee dates for coworkers. While colocated team members can go out for coffee, remote coworkers can simply share coffee over video or can jump on a call while you each take a walk in your own locations.

#11. Use standalone chat (like Slack) sometimes and the video system’s built-in chat other times.

When you’re holding a big video meeting, designate where the group will ask questions, share kudos for presenters, share files, etc. While the chat that’s built in to most video systems is usually easier to monitor while you’re onscreen, it may have limitations: people might not be able to see the chat transcript from the minutes before they joined; the transcript may be automatically erased at the end of the meeting; it may not have good emoji support; it may not be well integrated with your file system; it may be hard to find. On the other hand, it can be hard to keep an eye on a second system that probably has all those features, like Slack. Decide which set of benefits and tradeoffs are most important to you and announce early and often in the meeting where attendees should join for chat. In most video systems, you can turn off the chat feature, which is helpful for larger groups that you want to steer to another system. Again, for bigger groups, designate a chat monitor or two.

#12. Use the video mute/unmute button to your advantage.

One the most useful things about video calls for smaller groups- — under about a dozen- — is that if everyone but the speaker sets themselves to mute, you can each unmute when you want to signal that you’d like to talk. In many meetings, this visual cue lends to smoother conversation, where more people can participate without interrupting each other to get attention. (In bigger meetings where it’s hard to see each other unmute, it’s often necessary to use the video system’s hand-raising function or chat feature to signal that somebody wants to chime in.)

#13. Hold team dinners over video.

A couple times a year, book an evening to join each other for dinner (or drinks) over your laptops, from home. Include family members, show each other what you’re eating (you can even all try cooking the same thing), and talk about anything not related to work.

#14. Play an online game together.

At Mailchimp, where I work now, many distributed teams are fond of online Pictionary-like games, like skribbl.io, for occasional bonding.

If you manage individual reports who are somewhere else

Bear in mind that you and your direct reports may have different ways of forming trust. You can be sensitive to those different styles and maintain good communication standards at the same time.

#15. Have one or two short video calls per week to talk about anything but work — especially when the relationship is new.

10 minutes is a good amount of time, scheduled.

#16. If you’re not clear what your reports are focusing on, set up a status bot in Slack or use another mechanism that automatically asks people what they’re up to.

It can ask for a sentence once a day, once a week, every other day — you get the idea.

#17. If you’re not clear what your reports are producing, agree on a standard for updates.

That might be a weekly bulleted list, a daily note, or links to work artifacts.

No matter where you are, you can use video better

These tips refer to Zoom as the video software. But most video systems will give you similar options.

#18. Fill your screen with the video display.

You’re in a video meeting, but maybe there’s something interesting happening in Slack! Your brain wants to check! It really wants to check! But your coworkers can tell — -no, really, everyone can tell — -when you’re reading something else. Colocated teams sometimes ban laptops and/or phones for this reason. But distributed teams have to sit in front of screens to see each other. Reduce the temptation to check messages and increase your ability to focus on your meeting by setting your display to fill the screen — ideally the screen with your camera, as noted above. If you need to have a document open for the meeting, try setting the video display and the document side-by-side, and using both to fill the screen. If you don’t want to fill the whole screen with video, you can achieve a similar effect by turning off or hiding all your other software. But I find there’s something extra effective about maximizing the video display.

(Bonus points for turning off distracting notifications from the rest of your software: email, Slack, calendar, etcetera. If you find you’re still distracted by the option to check your messages, lots of people say that taking notes, especially by hand, or doodling on paper during the meeting helps them stay focused. Just remember to look up regularly, especially in smaller meetings, so everyone else can see your lovely face.)

#19. Actively choose Speaker vs Gallery View.

Zoom lets you choose whether the screen is fully filled by the active speaker or whether you see everyone tiled equally in a gallery, like the Brady Bunch opening credits. (In the upper right corner, look for “Speaker View” or “Gallery View.”) If you’re in a 1:1, try speaker mode so that you aren’t distracted by looking at yourself next to your coworker. If you’re in a meeting that’s more than two, choose Gallery mode so that you can see how everyone else is responding to what’s being discussed. People often say that in remote meetings, they lose the ability to read body language; but if you use Gallery mode, you gain the ability to read more faces during the meeting .

#20. Screenshare with care.

In Zoom, when one person is sharing their screen, it blocks everyone from seeing each other readily. Turn on screensharing only when you’re actively using it, and turn it off as soon as the presentation is done or during any mid-game discussion so that everyone can see each other. Alternatively, have everyone following along in the deck or doc you’re presenting, rather than screensharing it.

#21. Split Zoom to see the meeting participants and the screenshare.

If somebody is presenting in Zoom, you can split the screen so that you can see at least some of the people. First , choose Gallery View (in the upper right corner). Next, once somebody has started screensharing, mouse over the right edge of the shared area to get a little bar that you can grab and slide to the left. That lets you reduce the screenshare window and see more people. Or, if you have two monitors, Zoom video settings let you have dual windows open- — one for seeing the other people, and one for seeing the presenter or shared screen.

#22. Look in or at least toward the camera.

A common problem: you have two screens set up, and the thing you’re looking at — the display of other people or the meeting notes or screenshare — -appears on the screen where you don’t have your camera. So what other people see is you looking away from them, or they may be staring up your nose. I hope it’s obvious that this is bad for teamwork. You can solve this problem by intentionally looking at the camera, especially when you’re speaking (this appears to them as if you’re making eye contact, which is desirable!). Or you can find settings that ensure the display you see and your camera are on the same screen. In some cases, you may have to drag the display into the right spot.

#23. Avoid backlighting.

When you’re in front of a window or bright light, your camera will focus on the lighted area, and you’ll appear dim, sometimes to the point of being impossible to see, as if you’re in witness protection. (Click around to see yourself on camera — -in Zoom, Gallery View will show you everyone in the meeting, including yourself — -and gauge whether you need to move.)

#24. Add your full name to the screen name other people see.

Displaying names is especially important if you’re in meetings where the participants don’t all know each other.

#25. Add a photo of yourself to your profile.

Sometimes you’ll need to turn off your camera for bandwidth, or because you’re moving around and don’t want to make everyone else seasick. In those cases, seeing a picture of you can help others feel more connected to you than staring at a blank screen or anonymous avatar.

Four more good ideas

Here are a handful of additional ideas to try to improve the dynamics of your distributed workplace.

#26. Meet in person sometimes!

If you have the budget and coworkers who are able to travel, encourage periodic team meetings in person, and consider an annual company all hands in person. Generative meetings — for planning or other creative work — are particularly good candidates for getting together, especially if you need to spend a full day or more on the topic. With a baseline of in-person interactions, your distributed communications will feel deeper and easier.

#27. Hold an internal conference via video.

To help generate good energy across the organization, book a four- or six-hour internal conference once or twice a year, and do the entire thing over video. Pull together an organizing group with input from different departments. Pick some themes you want to emphasize. Let people who don’t normally get a lot of air time hold lightning talks for everyone and run discussion sessions in breakout video rooms. Designate Slack channels or other spots for chatter throughout the day. I’ve run these at Mailchimp and 18F. They’re a low cost way to have a high impact on company cohesion, and we always get a lot of requests to hold them repeatedly.

#28. Change starts at the bottom and the top.

Many of the tips I’ve described here work best when company leaders are modeling them and the practices are widely adopted. But if you’re not the CEO, you easily start using some of the tips at the team level or even for your 1:1s. Often, grassroots efforts pay off, and when other people see small-scale successes, they start trying the tactics, too.

#29. Change is hard!

I’ll end with a very useful meta-tip. Let’s say you want to try something new to improve your distributed practices — maybe “one on video, all on video” — but your coworkers are resisting the change because they don’t want to carry their laptops to meetings, and they don’t see the benefit of individual video. Change is hard! You can lower the risk that they’ll wind up committing to something they hate, and thus lower their impulse to say no, by asking them to try the new approach for a limited period of time (three weeks, or three months, or whatever makes sense for your situation). You’ll put a date in the calendar for the end of that period, and at that point, you’ll all discuss whether and how the change is working.

At the end of the time period, not only will you have more relevant experiences to draw on, but you’ll also all have a chance to be more intentional about how you’re creating your distributed environment. Ultimately, that’s the key to making any workplace work well — and you’ll gain that advantage almost incidentally.