Paint Brushes With Empty Notebook

Late last year I was invited to my daughter's kindergarten to deliver a presentation about our profession. I thought it would be an interesting challenge to explain "Software Craftsmanship" to 4/5-year-olds and capture their imagination.

The structure

As with any presentation, the keys to success are: knowing your audience and preparing engaging content that will resonate well. Keeping in mind that the attention span of small kids is short (the rule being to multiply their age by 2-5 minutes), I was aiming for roughly a 15-minute talk.

To make the talk entertaining, I decided to follow two basic principles that work great for kids: play a game and give everyone presents.

Here is a brief overview of the structure that I was about to follow:

  1. Start with content. In my case, that was the slides. I knew that the slides would quickly bore the children, but still, I should deliver my core message. The kids would be most focused during the first 5 minutes, so I needed to limit the number of slides as much as possible and present relatable concepts with pictures.

  2. Show & play a mobile game. The best way to illustrate your profession is to show off the products it produces. In my case, I decided to show a simple mobile game that the kids could play on a couple of devices I brought with me.

  3. Give presents. Give away something tangible that the audience can bring back home.

The slides - framing the message

Usually, presentations start with a few words about the speaker. This one was no exception. I presented myself as Elitsa's father (Elitsa is my daughter). This had a couple of benefits: first, every kid knew who Elitsa was, and second, she would feel proud that her father was there in front of her pals.

Now to the main message. It turned out it was far easier to explain "software" to young kids than I anticipated. In the past, I have tried to explain what I do to my grandparents, and I felt miserable. With the kids, it was simple:

We all have mobile phones - those are hardware devices. Every phone has icons with applications and games - this is software.

...and that's all - they got it.

Stefan giving a talk on Software Craftsmanship for Kids

Explaining how we craft software was a little bit trickier. This was where having good storytelling helped a lot. It went something like this:

You already know what a language is - you are speaking Bulgarian and English. We use similar languages while we craft software but we call them programming languages. We use the same letters from the alphabet.

And it's like painting on a white canvas, but instead of brushes, we use laptops and text editors.

Do you want to see all this in action and play a game?

I guess you already know what the answer to this question was - a screaming YES!

The game

Demoing a real mobile game would be the coolest part of my whole talk, so I spent a lot of time looking for the right game.

I had a couple of requirements for the game:

  • It should be simple so that the kids could get it out of the gate.
  • I should use Xcode because it has a big play button in the toolbar (the kids already know the play button from their beloved YouTube).
  • Inspired by the great talk from Bret Victor, I wanted it to have some moving visual objects. By increasing their sizes, I could illustrate how a simple number change in the editor could significantly alter the game behavior.

Using the advanced search capabilities of Github I was able to find SaveTheDot, which was perfect for my scenario. Here is a preview of the game from the project's README:

SaveTheDot game play

The whole game is implemented in a single Swift file, so it was easy to find the constants that defined the Player's dot radius. This way, I could manipulate the dot size and illustrate how we could change things.

You might have guessed how this all ended up - the kids asked me to increase the dot size so that it became enormous and filled up the entire screen 😂.

The presents

To make a talk memorable, the audience should be able to take something away. For grown-ups, the best you can do is to challenge their way of thinking. For kids, it should be something tangible like a present.

I took a bunch of cool ST6 stickers with me, which was a two-fold strategy from my side. First, kids love stickers. And second, they would bring them home where their parents could look at them, which would grow the ST6 brand awareness. Touché.

A pack of ST6 stickers

Final thoughts

If you love your craft, you will preach it with all your heart. No matter if you are presenting at the biggest software developer conference or in front of a couple of kids. The rule is the same - Craft with Passion.

Craft with Passion logo

P.S. You can download the slide deck I have used from here.