Riot Games boosts its software development cycle with Slack
Mục lục bài viết
Key lessons from deploying Slack at Riot Games
Byron Dover, an engineering manager and team captain of IT applications at Riot Games, shares his playbook on managing software development in Slack:
-
Adopt best-in-class Slack apps like
Sentry
and
PagerDuty
to reduce incident resolution time.
-
Give your developers a “single pane of glass” into their build pipelines to reduce context switching and time wasted.
-
Automate support intake and on-call assignments so the rest of the development team can stay focused on feature delivery.
-
Leverage
buttons
,
dialogs
and
workflows
to enable your developers to take action directly from Slack.
-
Balance use of public-channel and direct-message integrations to improve focus and reduce noise.
Riot Games is the studio behind the mega-hit League of Legends, officially the most-played personal computer game in the world, and a key driver behind the explosive growth of electronic sports, or e-sports. At a game development company with thousands of employees in dozens of offices around the globe, strong alignment and communication are key to hitting important release dates and keeping millions of players happy.
Riot Games has used Slack, the channel-based messaging platform, for in-house communications since 2015, and it became one of the first Slack Enterprise Grid customers in 2017. Today, more than 8,000 of its employees and partners collaborate in Slack channels—digital spaces to send messages and files—and rely on nearly 1,000 different apps in Slack. Software engineering teams at the company also use a variety of custom and off-the-shelf Slack bots to test, deploy, plan, and manage operations within a Slack workspace.
At our annual Slack Frontiers conference, Riot Games gave us a tour of how it uses Slack to bring beloved computer games to life for fans all over the world.
Shipping quality code faster with build and release pipelines in Slack
One of Riot’s releases is Legends of Runeterra, a digital collectible card game that supports PC, Android and iOS devices. Making sure new software versions are available to players simultaneously across all three platforms takes serious coordination, which is why the company’s build and release process is a complex one involving Docker and Jenkins software tools.
Riot engineers have developed custom Slack apps to provide visibility into game builds and deploys in real time. Whenever a Legends of Runeterra build starts, a new message is posted into a Slack channel. If a build fails, an alert is automatically posted that includes a detailed accounting of what went wrong. It even @mentions the developer responsible for the last code change to begin immediate triage.
Riot also uses interactive buttons to surface specific actions available to developers, offering shortcuts to the context they need to solve problems quickly. Clicking a button to view error logs is much more efficient than switching between myriad different continuous integration tools to better understand the status of their releases.
“Slack has had a dramatic effect on engineering productivity at Riot. We’ve seen a reduction in iteration-cycle and bug-resolution times and increases in feature delivery velocity since moving to Slack.”
Byron Dover
Software Engineering Manager and Team Captain of IT Applications, Riot Games
Keeping developer teams productive and aligned with custom Slack apps and integrations
Another game from Riot, Teamfight Tactics, also supports PC, Android and iOS cross-play and benefits from sharing much of the same build and release infrastructure. To reduce noise in Slack channels shared by large developer teams, Riot engineers have developed a Slack app called Game Build and Deploy (aka “GBaD Bot”) that sends them direct messages when they break a game build and lets them know once they’ve fixed the issue. This keeps individual build notifications out of public channels but still reaps the benefits of the automated build and deploy applications.
GBaD Bot for Riot games in Slack
APP
Lee Hao , Your Check-in Failed to Build
Build log for CL 3108961
Project:
Code_CI
CID : Feedback? #ask-lol-build-deploy
APP
Lee Hao , Your Check-in Fixed The Build.
Build log for CL 3108973
Project: Code_CI
CID : Feedback? #ask-lol-build-deploy
Riot Games continues to develop its own Slack integrations, with some teams even publishing game artifacts directly to private Slack channels. Teams can then conduct real-time reviews and provide any feedback using Slack threads.
Riot Games UI in Slack
APP
Arcadio Buendía has created a new ticket from tmp-rdx-support-bot
I can’t merge my blueprint
I can’t merge my blueprint
Classification
Live
Product
pending
Created By
Arcadio Buendía
Assigned To
unassigned
RDX Ticket Queue | Today at 10:04 AM
Solve support issues faster while improving service reliability
To augment its on-call support teams, one of Riot’s most popular Slack apps is for developer team support. The app listens for specific emoji reactions on messages in support channels, which then kicks off a triage workflow. Reporters are prompted to categorize an issue based on the original message, and the Slack app uses that information to automatically notify the correct on-call engineer with an @mention. This all happens in a threaded reply, where the conversation can continue between the two Rioters as usual.
Riot Games Slack Channel with PoroBot
tmp-poro-techblog
PoroBot STG is here to help
3
APP
Thank you for choosing PoroBot!
PoroBot is a handy helper for managing your Slack Channel
Send a welcome message to users
Create a ticket from user messages in your channel
Sync messages and attachments from Slack with created tickets
Configure automatic responses for common asks in your channel
PoroBot is currently in beta. If you invited the bot by mistake, please use the controls
below.
tmp-poro-techblog
Messagetmp-poro-techblog
Riot has also started building Slack bots that use artificial intelligence. One of the latest is PoroBot, which helps manage incoming support requests. PoroBot is trained to recognize questions asked in Slack channels, where it triages and classifies support tickets and provides answers previously provided by the relevant on-call team. Behind the scenes, the app leverages a natural-language machine learning model for pattern recognition and classification.
Riot Games has developed a number of custom bots and apps to integrate its software tools, but it also sees plenty of benefit from using the following apps from the Slack App Directory:
- Sentry provides expert robust crash analytics and diagnostics and integrates directly with Riot Games’s operations and monitoring channels. The app automatically captures an enormous amount of valuable information when a player experiences a game crash, including screenshots and the actions that occurred directly before the crash. Those event summaries are automatically posted to actively monitored Slack channels where on-call engineers can use buttons to assign them to colleagues, click to learn more, or resolve incidents directly.
Sentry use at Riot Games
APP
ServerAntiBotlmpl::RegisterClient
Fatal Error: EXCEPTION_ACCESS_VIOLATION_WRITE
environment
HN6
game.mission
CLASSIC
version.number
10.16.330.9186
LOL-GAMESERVER-PUBLIC-1YF via Game server crash | Today at 3:13 AM
- PagerDuty routes alerts to dedicated notification channels created for each team at Riot. From there, teams can escalate as needed to a channel shared across all workspaces, which is actively monitored by their global network operations center.
PagerDuty app use at Riot Games
APP
#100028: Competitive is having issues bringing…
Harry Boone
RDX Operabiility (OP) – Team
++15558675309
lets.meet
More actions…
- Jira and ServiceNow capture Slack conversation threads associated with the outages, for future reference.
Slack for software development and beyond
Developing video games isn’t just about shipping code; it involves humans working together to design and create incredible player experiences. This naturally entails a lot of complexity, and that’s where Slack comes in—giving Riot Games employees a robust shared place for their most important work.
Channels let Riot mirror its organization in a digital workspace, while Slack’s powerful APIs allow it to deeply integrate its game delivery engine in Slack. No matter how many tools you use at whichever stage of development, Riot Games shows how Slack can bring them together.