Coder Social home page Coder Social logo

sbrauner-z / wheel-of-misfortune Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dastergon/wheel-of-misfortune

0.0 0.0 0.0 211 KB

A role-playing game for incident management training

Home Page: https://dastergon.gr/wheel-of-misfortune/

License: MIT License

HTML 46.25% CSS 25.74% JavaScript 25.40% Jsonnet 2.61%

wheel-of-misfortune's Introduction

Wheel of Misfortune

Wheel of Misfortune is a game that aims to build confidence to oncall engineers via simulated outage scenarios. With the game, you practice problem debugging under stress, the understanding of the incident management protocol, and effective communication with other engineers of your team and organization. It is a great way to train new hires, interns, and seasoned engineers to become well-rounded oncall engineers.

The game is inspired by the Site Reliability Engineering book.

The demo website is available at: https://dastergon.gr/wheel-of-misfortune

Instructions

Terminology

  • Scenario: A past or fictional incident case.
  • Game Master: The host-coordinator of the session.
  • Volunteer: The trainee oncall engineer.

Feel free to fork the repository or download the stable release. Insert your incident scenarios into the general_incidents.json file inside the incidents/ folder.

The file has the following format:

  • ID: the unique ID of the outage (you can just auto-increment).
  • title: the title of the incident.
  • scenario: the description of the incident. It is useful to include URLs from monitoring systems, dashboards, time-series databases and playbooks.
  • inkstory: the path to an Ink story file in JSON format.

You can also use general_incidents.jsonnet as an example, in case you want to generate your incident scenarios using Jsonnet.

Ink

Ink is a scripting language for writing interactive narrative stories. It enables us to write interactive incident response narratives for team or individual trainings. You can use Inky to write an interactive narrative for an incident and then export the story as JSON. Then, you can store the story file inside the incidents/ folder and associate the Ink story file with an Incident scenario using the inkstory key. You can read an example incident narrative here.

Role Playing

Game Master

  1. Choose a volunteer to be the primary oncall engineer in front of the group.
  2. Find a balance between volunteer's experience and incident's difficulty.
  3. Assist volunteer by answering questions that may arise in each theoretical action or dashboard observation.
  • Engage with the rest of the team and ask for different ways to debug the problem following the volunteer's explanation.
  • Team members may be made available over time for assistance in various topics.
  1. At the end, have a debrief on the learnings of the session.

Volunteer

  1. Spin the wheel and attempt to fix the theoretical outage scenario.
  2. Explain to the Game Master and the rest of the group what actions you would take (lookup queries, checks in dashboards, etc.) to find the root causes, and eventually solve the incident.
  3. Always keep an eye on the time, since it is simulated incident response scenario and not a routine troubleshooting process. During a real incident you might have an SLA or SLO breach and therefore you should take timing into account.
  4. Engage with the rest of the group. Keep them in the loop. Ask questions to different members depending on their expertise.

Most importantly, have fun!

You can read a comprehensive example on how to conduct the exercise in the Google SRE book.

Resources

wheel-of-misfortune's People

Contributors

dastergon avatar dgzlopes avatar nikomiso avatar jamestelfer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.