Lessons in software development from a 3 year old

March 12, 2008 at 8:20 pm In Getting Things Done, Rants, Work, 1 Comment

I was sitting playing with my two daughters the other day, whilst reflecting on software development (as you do) and I found myself finding valuable lessons. It could have just been my brain looking for substance in-between block building and colouring in.

Lesson # 1, The lines are more of a guide when it comes to colouring in.

My daughter Holly is a firm believer in this principle, as it is clear from our shared attempts to colour in the penguins in her book. When I would pick penguin-like colours and apply them within the penguin-like outlines on the page, Holly would grab purple and apply liberally to it’s face. At first I tried to provide guidance to show her what I thought was a more realistic application of colour, but then as Holly insisted that her way was best I began to wonder if she didn’t have a point.

Sometimes when you are writing software you do think, “wouldn’t it be cool if instead of spitting out just an invoice from this method, it could also optionally spit out a pdf too”, thus giving your penguin an extra purple head. What Holly wanted was her penguin to look different to the spec. It is okay to stray outside the lines now and then as long as you colour in the penguin.

Lesson #2, Building with the blocks too small takes longer and makes weak towers.

Building towers is one of my favorite games, and as the control freak I am I tend to hog all the blocks and make elaborately balanced block multi-plexs with appendages and pointy bits. By carefully selecting all the blocks and arranging them just so, my towers were never very robust. Meanwhile Holly had gotten fed up with me not letting her have all the blocks, and she went about making a new tower out of the coffee table, books and a doll. My tower had a million pieces, hers had six. Mine fell over with a gentle tap. Her’s didn’t.

Sometimes you should pick the bigger blocks to build with. Don’t get too carried away custom building everything or another kid will just build a taller tower in half the time.

Lesson #3, Asking “why” 100 times is annoying but valuable.

While arranging the plastic farm animals about the plastic farm, I was trying to get my daughter to put all the cows in the fenced compounds (that I had just carefully constructed).

“Why Dad?”

“Because thats where cows live”

“But why?”

“Because they do”

“But why?”

“Ahh, because they always have”

“Why?”

“good question”

So we set the cows free, and still had fun. Challenge the status quo and you may find a pleasant surprise. Just because that’s how you have always done it doesn’t make it the best way. Especially when translating business processes into new software, making a screen perform like a paper form may not make the best sense.

Lesson #4, A horse built out of twigs and playdoh, is still a horse.

I was trying to make a realistic horse with realistic muscle texture in the playdoh, a real looking mane with carefully cut wool, small beads for eyes. Holly smashed one together in under a minute, with sticks for legs, a rolled lump of doh as the body, with another making a head. She provided the accompanying neighs and whinnies and was off galloping around the garden while I was still crafting hooves. For the purpose of the exercise she had her horse and it was doing the things horses do.

Understanding when enough detail is enough means you can get your horse out faster.

Lesson #5, Cuddles are cool.

No analogy. I just love cuddles with my girls.

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^