DEV Community

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

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

Michael Lee 🍕
Maker of things, giver of high-fives 🖐
・4 min read

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.

Originally posted on

Thanks for taking the time to read this article! I'd love to stay in contact and send you tips on programming and design, working from home and making side projects through my newsletter. Click here to sign up.

Discussion (10)

leoat12 profile image
Leonardo Teteo

This was a great reading, it is something natural, but we developer sometimes forget about it. A/B Testing your kids... Yes, I think it would be something I would do, sometimes I think about experiments a would conduct with my kids when I have kids, programming and language related experiments, nothing really bad. hahaha

The Stack Overflow problem... I have this problem, sometimes it happens that the answer is already there, but sometimes it is not, or are misleading, so I have to search for the entire internet before I think about asking on SO, sometimes I give up and try to find another solution. The word is frustrating indeed.

michael profile image
Michael Lee 🍕 Author

Hey Leonardo! Thanks for reading.

Yeah, I didn't mean to run the A/B test of my kids but was an interesting observation seeing the split difference in their experience because I had tweaked their outcome.

bernhardwebstudio profile image
Bernhard Webstudio • Edited

Great post, nice story, thanks! Just wondering: how do games like FlappyBird or Getting Over It fit this model? In these games, you can not win - or at least not in the beginning...

michael profile image
Michael Lee 🍕 Author

Thanks Bernhard. I'm unsure myself on these couple of games. I'm guessing it's the progression that you are improving your skills pretty quickly with each game. But it seems to be a balance between frustration and fun. Would love to know your thoughts.

ben profile image
Ben Halpern

This is a really great model

michael profile image
Michael Lee 🍕 Author

Glad you liked it Ben!

mfurmaniuk profile image

It works to get your kids interested in other games, I've done the same with checkers (and trying to lose intentionally at checkers with a kid who doesn't fully get the game is HARD!). I always think of everyone else as Users and Customers, but that's the mindset I code and review in so it works well at home as well when I apply it. Well done!

michael profile image
Michael Lee 🍕 Author

Thanks for reading Michael. Teaching games is definitely hard. Especially with each kid being different in personality. I never know which will get it and which won't and which will enjoy it and which won't. Will have to do checkers when they are a little older or at least with the older kid since he has a little more patience :)

inozex profile image
Tiago Marques

Very interesting :)

michael profile image
Michael Lee 🍕 Author

Thanks Tiago for reading. Anything in particular you found interesting?

Forem Open with the Forem app