This is the first of multi-part article describing the design and development of Fast First.
The idea for Fast First came about in July 2013. I'd been using an app with a spinner. Changing the number of players was always a bit twitchy. One friend, Leon, used an app where every player puts a finger on the screen, and then it lights up under one of the fingers after flashing around for a bit. I was generally unhappy with the options. Then a friend mentioned another app that was available on Android. As he described it, when started, you were presented with 12 button keypad with numbers on it. When you press a button, it tells you how many players around the table is the "go first" player. I found this intriguing. That's what started the ideas bubbling in my head.
It didn't take me long before I decide the concept could be improved on - why even spend the time to pick the number of players. Let's just answer the question for all of the inputs in parallel. In less geeky terms, answer the question for a 2-player table, a 3-player table, a 4-player table, etc. all at the same time. To do that, I knew I needed a good visual representation and I came up with the idea of a schematic representation of players sitting around the table. All I had to do now was build it.
In mid-October I started coding the app. From the very beginning, the focus was on speed. I’m not talking about optimizing code structure in order to shave microseconds. The measurement that mattered to me was from the time I loaded the app, how long until I had a first player. This concept, which I've begun to call time-to-first-player, would be the distinguishing characteristic for the app. I tried to keep that as a focus as I banged away at the keyboard. Four days later I had something with minimal functionality.
With time-to-first-player as a focus, I needed to remove the human from the process as much as possible. When the app starts, when the screen is unlocked, or if you switch away from the app and then return, I made the app re-randomize the tables. Knowing when the user needs a new start player is one of the keys to the speed. So I added that and eight days after I started I was ready for alpha testing.
One of my goals in alpha testing was to get visual design ideas. I’m not a great visual designer and I freely admit that. I had something that would work but it was very ugly. Still, I started using it when playing games, and I showed it off to a few people to get feedback. I knew it was ugly, so I sought design advice from another friend.
About a month later, I implemented a revised visual design. The new color scheme was a small change, but it had a big effect. Making the gap between tables the same color as the tables made the whole thing look so much better. The app spent another month with just me using it.
I was ready to expand my audience, but things were a little too cryptic, and I wanted just a bit more functionality. In late December I added four small features that I think helped make it complete:
- The drill-down to see complete player order (like you need for a game like Power Grid),
- The legend at the top.
- The verbal description of who’s first (partially added to deal with skeptics who might be sitting at the table).
- The tutorial. I love the way the app works, but I recognize that for a first-time buyer, it might not be clear.
With these four features added, the app went into beta-testing on Jan 6th. I had some friends agree to beta testing it and give me feedback. My plan was to spend a month in beta-testing, and then release it. 3 weeks into the beta test, I felt good. There’d been no bugs reported. I hadn’t gotten a lot of feedback, but Atlanta Game Fest (a four day board gaming convention) coming up was and I knew several of my beta-testers would be there.
(to be continued...)