What teaching my kids how to play tic-tac-toe taught me about user onboarding experience

Written on September 15, 2018

This morning when my kids asked me to play a game of chutes and ladders — a game that’s a little too complex for them and we all end up getting frustrated a few minutes into the game — I redirected to teaching them the game of tic-tac-toe since we had crayons and paper sitting in front of us.

I drew two, three-by-three grids. One for each of my kids. I instructed them that there were two players, one who would assume the role of circle (O) and the other ex (X). I would be one and the kids would be the other and we would take turns putting our marks on the grid until someone got three-in-a-row.

Since this was their first time playing, I used the first game as a practice run. Letting each kid win on each of their games. But for the second game, I had made a mistake. I decided that I would play a real game with my son, while I would let my younger kid win. Yup, I had inadvertently A/B tested against my kids.

I beat my older kid in his first official tic-tac-toe game, which resulted in him losing, while I let my younger kid win her game. Immediately after, my son was frustrated and didn’t want to play another game, instead scribbling the grid he had just lost. While the younger one, upon winning, wanted to play another game because it was fun.

The younger one and I played a couple of more games, which she all won. That is until, the older one let out his frustration onto the entire page of paper.

Frustrated tic-tac-toe board

Asking my son to calm down, I grabbed another sheet of paper and realized that I shouldn’t have let him lose so quickly. On this new sheet, I had let him win three games in a row, and then let him lose one. Even though he had lost, he was willing to continue to play because I had let him have some wins before actually playing and letting him lose. This led to a much better tic-tac-toe experience then what we had seen in the first sheet of paper.

Happy tic-tac-toe board

While my daughter, the younger one, was fine with losing because I had allowed her to win the first few hands of games and then she lost.

This game of tic-tac-toe made me immediately think about user experiences of software products. When introducing a new product or game, it’s important to onboard the user with some immediate wins and progressively introduce more complex tasks. By doing this it increases initial user confidence and could lead to a prolonged first use of the app. It also leaves room for the user to be more forgiving when the app doesn’t let them win, either by not fitting in their mental model for the task they are trying to achieve or in a game continuing to grind and stick with a game.

When I think about apps that I thought had really pleasing onboarding experiences, I think about apps like Basecamp or CodePen. Basecamp, upon first signing up, will have a test project created for you to go through and onboard the application. It does some hand holding and eases you into a complex piece of software. Unwrapping features as you stick with the system and dive deeper in integrating it into your workflow.

CodePen, on the other-hand, although didn’t have an onboarding experience when I first signed up. But the fact that it was an online text-editor was immediately a familiar interface for me and I felt comfortable with it. It also immediately rewarded me because, all those things that I would spend a lot of time setting up myself to experiment with, it would do for me with just a click of a few buttons. Such as including jQuery, compiling Sass on the fly. It allowed me to focus on an idea instead of setting up to execute on an idea.

The Basecamp and CodePen examples, I would think it falls inline to the experience my daughter had with tic-tac-toe, a lot of initial wins, that encouraged prolong use.

While I’d say my son’s experience is relatable to my initial experience with StackOverflow. A few years back when I first signed up for StackOverflow, the mechanics was pretty familiar in the sign up flow. Since StackOverflow has a reputation system, immediately after joining, they reward you with 100 or so points and then some for sign up and filling out your profile.

Outside of that though, I thought the experience went south quickly when I asked my first question. Upon asking my first question, it was downvoted immediately and then when I commented to ask why I was downvoted, someone responded with, it was a bad question. This confused me because, I thought it was a genuine question for something I was having problems with, but now I’m not only dealing with this problem I’m trying to solve, but I’m also dealt with apparently not being able to ask correct questions.

This has definitely led to me falling into the lurker/consumer bucket as a StackOverflow user.

If you’re someone who creates software, think about the user and what their experience would be like. In defining the user journey, see if you could delight the user by giving them a lot of wins initially. Such as making it super easy for them to get started with using your application to solve their problems or rewarding them if you have things like reputation.

If this game of tic-tac-toe is any indicator, in giving a lot of initial wins, it boosts user confidence in the software. Which could lead to prolong use and also user forgiveness if there is something introduced that might otherwise frustrate their experience.

Stay in touch

Thanks for reading this article. I'd love to stay in touch and share more tips on programming and side projects with you. Sign up and I'll send you my articles straight to your email, you'll also get a free copy of the light themed version of my Git cheat sheet.
Git cheat sheet preview image