No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib/extreme_startup Added new line to yaml Oct 28, 2017
public change no-answer to no-server-response Jul 1, 2012
spec Removes rspec deprecation stub => double Feb 28, 2014
.ruby-gemset Moves from .rvmrc to .ruby-version Feb 28, 2014
Gemfile Make it bundle Sep 8, 2016
Gemfile.lock Make it bundle Sep 8, 2016 Create Feb 20, 2014 Fix broken Markdown headings Apr 16, 2017
Rakefile Add a rake task to run the tests Sep 29, 2011
player_x.rb Player x works in warm-up Sep 29, 2011
player_y.rb generate some simple "questions", pass them to the players, and check… Apr 6, 2011 add helper scripts for docker Mar 10, 2015 add helper scripts for docker Mar 10, 2015
web_server.rb Get one basic end-to-end test working Apr 18, 2011


This is Extreme Startup. This software supports a workshop where teams can compete to build a software product that satisfies market demand.

NB don't show the players the code for this project until after the workshop as otherwise they can cheat.

Getting started

  • Install Ruby 1.9.3 and rubygems

  • (For Windows)

    • Install Ruby DevKit
    • Extract to (e.g.) c:\devkit
    • cd c:\devkit
    • ruby dk.rb init
    • Edit the file config.yml (Add the locations where ruby is installed e.g. c:\Ruby193)
    • ruby dk.rb install
  • (For Ubuntu 12.04 onwards)

  • (For Mac (Xcode 5.1 onwards))

  • Install dependencies:

cd ../<extreme startup dir>
gem install bundler
bundle install
  • Start the game server
bundle exec ruby web_server.rb
  • Or the docker way
# The first time
docker build -t extreme_startup .
docker run -p 3000:3000 extreme_startup

and for warmup round

docker run -p 3000:3000 -e WARMUP=1 extreme_startup

For more information on How to manage docker read Docker user guide

Notes for facilitators

  • Run the server on your machine. It's a Sinatra app that by default runs on port 3000.

  • Everyone needs a computer connected to the same network, so that they can communicate. Check that everyone can see the leaderboard page served by the webapp running on your machine. Depending on the situation, we have used a local/ad-hoc network and that is ok for the game.

  • We have had trouble with things like firewalls, especially on some Windows laptops, so if there are problems, make sure you can ping clients from the server and vice versa.

  • Warmup round: run the web server with the WARMUP environment variable set (note that the result of running with WARMUP=0 is undefined):

$ WARMUP=1 ruby web_server.rb
  • In the warmup round, just make sure that everyone has something technologically working, you just get the same request repeatedly. @bodil has provided some nice sample players in different languages.

  • Real game: revert to using the full QuizMaster, and restart the server. This will clear any registered players, but that's ok.

  • As the game progresses, you can introduce new question types by moving to the next round. Visit /controlpanel and press the "Advance round" button. Do this when you feel like some of the teams are making good progress in the current round. Typically we've found this to be about every 10 mins. But you can go faster/slower as you like. There are 6 rounds available.

  • In case you want to 'stop the world' and reflect with the players during the game, you can use the "Pause Game" button in /controlpanel.

  • Set a time limit so you know when to stop the game, declare the winner, and retrospect.

-- Robert Chatley and Matt Wynne 2011.

People Who've Run Extreme Startup Sessions

If you run this workshop, please write it up on the internet and send us a link to add to this list.