Lonely working from home? Try Twitch

Twitch, traditionally a game streaming platform with over a million average viewers and almost a billion hours watched each month, can help address the isolation and loneliness that can accompany the dream of working from home. With the Coronavirus (COVID-19) pandemic, many software developers are forced to work from home, often for the first time, and as any remote developer will tell you, loneliness can be one of the biggest obstacles you face. Twitch, and other live streaming platforms like it, such as YouTube or Mixer, contain not just gaming streams, but also a growing number of live coding streams, where you can connect with game developers, startup entrepreneurs, front- and back-end developers, graphic artists, and other people, in your field or not.

twitchextrudedwordmarkpurple

While I’ve been fully remote for over eight years now (and love it), I do miss working in the office. I miss the buzz—the energy and excitement of people building things. I miss the hallway and lunchroom conversations about what we did over the weekend or our latest hobbies. I miss pairing with people and learning new tips and tricks. Until recently, I thought it had to be a choice between human interactions and doing what was right for my myself and my family, but with Twitch, that choice is less harsh. I’ve started using Twitch in the last few months, both as a viewer and a streamer, and I’ve found three benefits for viewing that I want to share:

  1. Keeping focus
  2. Live interactions
  3. Learning something new

Keeping focus

One of the biggest challenges with remote work, particularly working from home, is keeping focus. The usual tips such as finding a private workspace and keeping a set schedule are important but they don’t address maintaining a source of productive motivation and this is where live code streaming can come in. By half-listening to someone being productive, I find I’m more motivated to be productive myself.

A good live coding streamer will not only code but vocalize the thought process they’re going through. This includes both instructive tips and frustrated “Why won’t this work?!?” outcries that are common in software development. I find there is something comforting about hearing I’m not alone as I’m celebrating a feature working or struggling with a flaky test.

Furthermore, a good small channel will not just talk about what they are doing, but will be interactive, sometimes to the point of holding you accountable, and that gets me into my next benefit.

Live interactions

What makes Twitch, or any stream, different than something like YouTube is that what you are watching is happening live. Even more interesting, you can interact in real time with the streamer by asking questions, providing tips, or just sharing what is going on in your life. For a coding stream, you could ask why they did something a certain way, suggest a library they hadn’t thought of, or maybe respond to their weekend plans with your own. To do this, you can “talk” to the streamer via the text chat and they’ll usually respond by talking back. This starts an interesting asymmetric relationship between you and the streamer that can grow into a genuine friendship.

Interactions aren’t just limited to between you and the streamer. A coding streamer also creates a small community of like-minded people that you can interact with. In busy streams, other viewers are the primary type of interaction you will have. These friendships can break out of the bounds of the stream and into other channels such as Discord, LinkedIn, or even in-person meetups.

Learning something new

One of my favorite benefits of pairing with another developer is picking up new tips and tricks. Live coding streams can fulfill this need as well. Maybe one day I learn a new editor shortcut or another may teach me about a new library or design pattern I hadn’t heard of.

Live coding can also provide unique insights that pairing cannot. Pairing is usually limited to folks in your team, which can already have pretty homogenized work patterns and tools, but developers on live coding streams can be from any walk of life, working on any type of project, with a completely different set of skills, coding styles, and experiences. One day, I may decide to listen to a C++ developer writing a game engine; on another, I may tune in to a startup founder working on their landing page optimization.

Getting started

So if you are struggling with loneliness, motivation, or focus, consider tuning into a live coding stream. Here is what I do:

  1. Go to the “Science and Technology” category in Twitch and browse the channels. You can click on the “Programming” or “Software Development” tag to help filter out the weird chicken and earthquake streams. Another good source of streamers is Reddit’s r/watchpeoplecode subreddit.
  2. I like to pick chill streams, often with soft music in the background or at least with a soothing voice, suitable for running in the background.
  3. Subscribe to your favorite streams to be notified when they start streaming. I turn off notifications for most channels on my phone, but with a few, I still want to be alerted. I like cmgriffing, maryjostaebler, anthonywritescode, and lana_lux, to name a few.
  4. Start chatting. With Twitch, you can either use the browser or your favorite IRC client. Some channels, usually busy ones, have their own rules or at least conventions for chat, such as no sharing URLs until you are trusted, and to understand the mess of “emotes,” I recommend reading this guide.

Consider streaming yourself

This only gets better with more streamers, so if you can share your day job or side project, consider streaming. In addition to using Twitch as a consumer of live coding streams, I’ve been live streaming part of my working day when writing Python code. I’m a co-founder at Sleuth, a software deployment tracking tool, and am using Twitch to not only meet interesting people, but also as a form of “rubber duck programming” to help keep focus; more on that in a future post. tl;dr; it is full of unexpected delights.

Lonely working from home? Try Twitch

Provide everyone in your team with the right information

Software development teams are much larger than the engineers that write code. Writing and deploying code are often only the tip of the iceberg. A well oiled software team will often consist of:

  • Development Engineers
  • DevOps Engineers
  • Support Engineers
  • Development Managers
  • Product Managers
  • A Marketing Team
  • A Sales Team
  • Executive Management

All of these people need to know something about what the software development lifecycle is producing and shipping but the level of information can vary dramatically based on a team members position. Sleuth was built to automatically generate information to satisfy each team members needs.

Project dashboard

The project dashboard is great for getting a quick sense of what’s been delivered in a period of time.

img_screenshot_mainThis is where a Development Manager can get a real sense of how their team is running. How often are you shipping code? Who’s getting work out? What exactly are you shipping? How many deploys did it take to get a stable code change out? Are you putting out large changes or are they small, incremental changes? The dashboard allows you to see answers to all these questions quickly and easily.

Email reports

Sleuth can generate and send email reports for every deploy, all deploys in a day, in a week, in two weeks or four weeks. For support engineers it’s important to know when customer facing issues are resolved. Subscribing to every deploy allows these team members to be immediately informed when a change is rolled out. Product Managers are often concerned with the wholistic view of a project. A weekly rollup of everything deployed is a great way for them to stay abreast. Marketing, sales and execs need to stay on top of the zoomed-out big picture, bi-weekly or monthly updates provide them with exactly what they’re looking for.

ChatOps release notes

Sleuth can be configured to post a deploy summary into your ChatOps channels via Slack or HipChat.

slack_notification

This lets your Development engineers know when their code has shipped and alerts your DevOps engineers to be on the lookout for any site reliability issues related to the change. It’s also a wonderful way to inform your wider organization about changes being made to your production environments.

Powerful search

Being able to narrow down deploys by date is what the project dashboard is all about. For Developers trying to track down a new bug it’s important to find the code that that created it. However, sometimes you remember the pull request title, or maybe the commit message for the change you need to track down. This is when search comes to the rescue. All pull request summaries, commit messages, issues titles, filenames changed and authors are indexed so it’s simple to quickly find the deploy you’re looking for. Want to know when you rolled out the Django 1.9 upgrade, just head over the search page and find out.

Provide everyone in your team with the right information

One of the hardest things about shipping software is communication. Providing different team members with the right information isn’t always easy. If you’re tracking your work using GitHub or Bitbucket then let Sleuth do the heavily lifting of putting that information into your software teams hands.

Provide everyone in your team with the right information

Track what you’re about to deploy

One of the best things about tracking deploys is knowing what and when code is shipped.

Just as important is knowing what you’re about to ship. Now when you push code to your deployment branch Sleuth will show you what you’re about to ship.

img_screenshot_main

When your project has undeployed code you’ll be presented a notice that allows you to browse your undeployed changes. All the goodness you’ve come to expect from your deploy view, pull requests, commits, issues, files and authors are there to inform your upcoming deployment.

If you’ve setup your ChatOps integration then Sleuth will ping your deployment room 30 minutes after it’s detected the change, everyone needs some time to let their builds pass, right?

Happy deploying,

The Sleuth team

Track what you’re about to deploy

A deploy-based view of your software

It’s reasonable to say that we’re currently living in a world where continuous delivery is best practice for software development and delivery. However, in a world where we’re deploying software anywhere from once every two weeks to ten times a day, our tooling for truly understanding what’s being shipped has lagged behind our process. Sleuth was built to bridge this gap and to make this information available to your entire software development team.

If you’re not familiar with continuous delivery there’s an excellent summary from ThoughtWorks Chief Scientist Martin Fowler:

You’re doing continuous delivery when:

  • Your software is deployable throughout its lifecycle
  • Your team prioritizes keeping the software deployable over working on new features
  • Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them
  • You can perform push-button deployments of any version of the software to any environment on demand

Let’s assume that you’re doing it all, continuous delivery, frequent deployments, your code lives in Git, it’s being written and reviewed via pull requests, and you’re referencing issues in your commit messages. How do you answer the question of what, exactly, shipped today? How about this week? How many times did you deploy code this week? When exactly did the resolution of issue #134 find it’s way into production? Who were the authors of all those changes?

Existing tools such as GitHub and Bitbucket do an amazing job of storing our code, providing the facilities to do meaningful code review and allowing us to track our issues. All of the raw data we need to answer our deployment questions are there. What we need, however, is a deploy-centric view of our code base. One that developers, product managers, support staff, management and our customers can easily grok and consume.

Sleuth integrates with your GitHub or Bitbucket repositories and provides the deploy-centric view of your code that allows you to answer the question, what’s shipped?

img_screenshot_main

By making a simple POST to Sleuth or setting up your project for auto-tracking you tell Sleuth each time you deploy a revision of code. Sleuth then analyzes your code changes to extract the pull requests, commits, issues, files and authors that made up your deploy. A deploy-centric summary is created for each deploy. It includes quick links to the full code diff on either GitHub or Bitbucket and indexes all of the information so you can quickly search and find the deploy you’re looking for.

The real power’s revealed over time and with aggregation. You can easily see how often your team’s deploying, how many pull requests you’re shipping and what your bug fix cadence looks like. Execs can subscribe to a weekly email digest that provides them with a zoomed out view. Marketing can stay abreast of what the development team is shipping. Managers have a great view of their teams “real” delivery cadence. Developers can see when their code ships to production and what changed on the day a new bug was reported. Support teams can easily search to see if a bug fix has shipped to customers. You can pipe each deploy into your ChatOps rooms for broad visibility. Your entire team is empowered with information.

Knowing exactly what shipped and when is power!

Start tracking your deploys on Sleuth and fill in the missing tool for your continuous delivery.

A deploy-based view of your software