It’s been a quiet year hasn’t it Mike?

I’ve had a few people contact me through the year wondering why I’d gone a little quiet on the writing front.

I haven’t been writing as much on testing this year, although I’ve dusted off a few times an article I’ve had for a few years on the theory of variation in testing. It’s going to be a key work of mine, but something about it isn’t quite ready yet — darn it!

It’s been a relatively busy year for me, but it seems I’ve been pursuing other projects — some successful, some less so. At the end of the year it’s a great time to share some of them, and some of the frustration so you can use both when thinking of your 2019 goals.

So let’s start with the good stuff …

AI and testing and chatbots … oh my! The programs

Following on from a successful workshop on “Let’s build a chatbot” at Agile Testing Days, a local meetup group asked me if I could repeat this in Wellington.

I could have just copied and repeated, but I wanted to take the opportunity to really push myself on this one. I knew a good deal about AI and machine learning from some University research into intelligent sensors, and indeed worked a lot with mathematical algorithms in my initial programming years.

So I took my workshop and stripped it all the way down to start again. Something I’d noticed was just how much misconception there was about what machine learning is really doing, I wanted to build a “hello world” type simple example to demonstrate, and build several simple examples which people could understand.

With that in mind, I worked my way through a couple of courses on machine learning through Udacity. One was very theoretical and helped reinforce some of what I knew, as well as add some knowledge of how models have been used and evolved since the 1990s, the other was much more applied, which also helped me.

I’d had plans to create any machine learning program I needed to demonstrate using Java (my current programming language of choice), but it became obvious that the best libraries for machine learning are all in Python. So, I ended up picking up some books and learning Python on the way.

In the end, I created the following programs to support the workshop,

  • Toy car predictor. Could work out how long a car would take to travel a distance given data on how long it took the car to travel other distances.
  • Salary calculator. This was a program which determined salary purely based on years of service. This showed how bias could work in machine learning. Women would always receive less than men because in the data provided, they tended to earn less, and the machine learning saw that as a rule it needed to enforce.
  • Property predictor. This took data from property values around New Zealand. Given a location in the country, it could determine what the probable house value would be in that area. The data, when put through Excel, produced a “heat map” that looked like NZ, and where expensive areas like Wellington, Auckland, Christchurch showed up — which gave me confidence …
You can see the outline of NZ here, with high price dots showing where we’d expect them.
  • Fruit predictor. This didn’t make it into the presentation, but was me using some camera functions to capture images, and then sending them to a Google AI service for classification. The program then looks for keywords returned for which it has a picture / sound file for. The voice you hear is from .wav files, not my voice provided live.
That’s audio I’d prerecorded for the program, not my live commentary

Of course, what’s interesting for me was I could have just copied and pasted what I’d already done under “Let’s Build A Chatbot”, but instead used it to focus my energies to learn and apply myself more. It really helped put a rocket up my behind and “get things done”.

AI and testing and chatbots … oh my! The video

At the beginning of the year, I directed my team to create a video on “better unit testing”, for the Automation Guild. Although focusing on unit testing, it was fundamentally on peer programming/testing and how you create ideas for automation tests and was really well received.

I have a love of video — I used to run a YouTube channel with my son, and I’ve directed a short film as well.

I had an idea I called “the agile office” for some shorts films using animated toys. I used this format for a video promo for Lisa Crispin and Janet Gregory’s workshop at Agile Testing Days this November …

Video promo for Lisa and Janet’s workshop. My wife provided the voice of the tester.

For my workshop on machine learning and testing, I wanted to create fun little videos to help illustrate misconceptions and reinforce some items, such as …

As Lisa Crispin started work in a new role as a machine learning advocate, I had the idea to turn the whole workshop into a package … more video work! It’s no small thing to say I really love Lisa, she’s been both a great teacher to me and a stabilising influence on me, so I really loved sharing something back with her.

This idea ended up becoming a video series which Agile Testing Days hosted on their website. I have to say, I’m really proud of what I achieved here…

I also got a lot of help with this from my wife helping to film and doing voices, and additional voice work from a colleague named Nadja, by frequent collaborator Gaz (more below) and Karen Greaves

That said, everything which went into “AI and testing and chatbots … oh my!” was a considerable undertaking. Several months of learning, programming and video work. But I loved it — stretching myself and pushing myself.

As I’ve said it helped to have a goal to work towards to make all this happen.

Melody Harper’s Moon

The problem with me is I tire myself out reaching a goal, and unfortunately, the elation of reaching it feels very fleeting — it’s something I find upsetting at times. As soon as I achieve one goal, I find myself reaching for another one.

As soon as “AI and testing and chatbots … oh my!” was done, I was looking for the next thing, even though I’m trying to slow this down and properly celebrate my goals. This is really important to stop yourself forever feeling like you’re climbing a mountain with no peak in sight.

Next up, I decided to dust off Melody Harper’s Moon — it’s a concept I worked on since 2003. I restarted writing it in 2008, and my late friend Violet had some input in early parts. I ended up finishing in 2016, and putting out to beta readers in 2017 — and doing many, many rewrites.

Then began the process of sending out to publishers, which went nowhere. I’d like to call it rejection, but the fact is typically they say “if you don’t hear from us in a month, consider it a go”, so most writers tend to go “well … it’s been five weeks … maybe give it one more week?”.

I decided to go for it and just self publish through Amazon. So ended up doing just three more rewrites on it (just three), including using Grammarly to help me with some spelling and rules I struggle with.

The major issue was the cover art. I wanted something to capture the mood of the book and had hoped to be able to teach myself enough to pull it off! In the end, I managed to find a great artist to realise my vision who I could pay to make this a reality. I love that cover art so much.

It’s a tough book — it’s a coming of age book about a teen girl in space. So an odd mix of sci-fi with very down to earth themes such as feeling alienated, mental health, love. But I wouldn’t have written it any other way.

But again in the bitter-sweet category, as I published I realised this felt like the last bit of Violet that had gone unused. The book, unsurprisingly, is dedicated to her. And I know she would have loved it, and my friendship with her pushed me in certain directions with it, as seems fitting.

Although I wrote the book to complete its own story, I seeded it with material for the future if needed. I’m working on a follow-up and currently about 30k words in (that doesn’t mean they don’t need a lot of rework).

Organising my company tester retreat

This was a job and a half — and thanks to an unnoticed scheduling problem almost never happened!

Someone asked me why I didn’t seem to be doing conferences this year, a major reason was I was organising the company one. And wow I found it both challenging and rewarding.

As is a weakness of mine, I tried to do too much myself — from organising the conference, attendance, travel and finance. I managed to find space for anyone interested in presenting, and have a mix of talks and activities.

It was an amazing event, with great energy connecting us all together. We just need to build on it at work …

The Datacom Test Camp 2018 — great fun

My singing challenge

On Twitter in December, I’ve been doing a singing challenge to honour my Grandfather on what would have been his 96th birthday.

Primarily it was to allow me to reconnect with my memories of him to help cope better with his loss.

I found recording songs taking up a lot more time than I’d imagined — as soon as I hit record my throat would tighten through nerves. I questioned what I was trying to achieve a lot.

But as I got into it, I got better and really started to enjoy. Most of all, there were some songs I knew he loved that helped me think of our time together.

I thought a lot about just doing it privately — but recording it and sharing added a dimension to it. After all my Grandfather had no issue singing in public. Embracing that phobia in myself helped it all feel a little more real to me. And it stopped me from dropping out when I originally wanted to.

Okay — so not everything was a roaring success

If I cherry-picked all of the above as my year, it might sound like I went from strength to strength. And most of all it might alienate you to feel like “wow, I could never match that”.

That is absolutely not the take I want you to come away with, and I would hate for that. I hear so much from people who feel they should be doing more, learning more.

I ironically have a bit of a headstart on others — free time. My son is all grown up and I don’t watch much TV at all. I don’t watch TV because PTSD means a lot of violent TV makes me deeply uncomfortable, so I tend to avoid it.

This means I spend a lot of time being creative — it also means if I’m tired, I struggle to take an evening off and “not do stuff”. This mentality might sound great, but it’s not always healthy. It means, I’m kind of rubbish at relaxing. Something I’m working on improving.

Here are some endeavours which “went okay” at best, and weren’t roaring successes, along with some of the reasons why …

Learning the piano

Meike Mertsch talked me into trying my hand at the keyboard. Actually not so much “talked me into” as she was doing, and I wanted to join in.

I feel guilty I can’t play an instrument — although I’m reasonable at singing.

I ended up buying a second-hand keyboard — I can play around with it, and make something that’s okay to hear, but the moment I actually try and play anything, it becomes unrecognisable. It might be I need a better keyboard, but I suspect I’m a little tone deaf.

I’ve spent a few weeks trying different things, but I’m still struggling. Although I keep returning to it and having a go.

Drawing

I used to think I was terrible at drawing, but I find it really therapeutic. I’m not the best, but I do have a certain style to what I do.

I find I get into a bit of a zen state as I draw, so I’m surprised I don’t do more. I got some feedback from an artist friend who helped me improve an aspect of it. And the more I do the better I get at it.

Fundamentally I know it comes down to priorities. I can spend time drawing and getting better at it, but only at the expense at something else.

Which reminds me …

Tales Of The High Protector

Arjun, the cybernetic second-in-command in The High Protector

This time last year, I was looking back at a blog I’d worked on called President Sidious. It was a fun idea, but I found myself trapped by the Star Wars universe pretty fast and ran out of material.

So … I had another go at the concept. Instead of using the Star Wars Universe, I filled out the concept for a Space Opera universe which had a lot of very familiar elements to it.

The story would revolve around a bit of a spoiled brat of a dictator called The High Protector, who very much lived in his mother’s shadow. It would also use some of my drawings to showcase characters — explained in the story that The High Protector considers himself like so many other dictators to be a failed artist.

The Tales Of The High Protector was actually a lot of fun to write, and unfortunately, I was about to introduce one of my favourite characters — a wealthy heiress who is a clone of her companies founder, whose business is entrusted to herself through her clones (“she bequeathed her fortune to herself in perpetuity”).

Fundamentally though, as I talked about with drawing, my time is a limited resource. To achieve some of what I did this year, some things had to be put back into the backlog. And one of these was The High Protector.

Hopefully, I’ll pick it up again some time, because I did really love the format.

April Fool … on me!

I’m a great fan of April’s Fool — as you can read here. I had a really interesting idea for an April Fools piece which was a faked experience report — but to work I really needed someone to publish it for me.

I asked around in January, a few people weren’t sure about it so passed. I managed to get a website interested in it, and we worked on the concept.

It required a lot of work — quite a few evenings over three weeks. Not just writing and rewriting suggestions from my editor, but also setting up a fake Twitter account and going to the extreme of setting alarms to create an account which looked like it was being run in UK time.

The article which evolved took a fantastical idea, but broke it down into small bite-sized chunks to try and sell it to you a piece at a time. I was really pleased with the finished product.

Then three days before publication, I got an email which said they’d done a sudden about-face and decided not to publish. It was incredibly frustrating and really upset me. The time to have cold feet is really at the concept stage, not when you’ve got someone to develop a finished project!

Worse still, the whole article was developed around April Fool and Easter coinciding this year, so it was unusable next year. It also wouldn’t work posted on my own blog.

It had just been a monumental waste of my time (as you can see from the above, time I would have rather spent on other things).

On the scheme of things, it’s not the worst thing in the world, but I get into a bit of a decline when I have people waste my time. Mainly because I feel I’m someone who tends to be good-natured, and hence easy for people to take advantage of if that’s the way they operate. I’ve also previously had people interview me in the UK and it turns out the role was already filled (as of the day before), but “they thought I would appreciate the experience) — this happened to me twice, and both times I’d had to use leave to cover attending the interview, so really did not appreciate it. It just feels a very disrespectful way to treat people.

I had a few people who reached out to me, and it was really appreciated. Special mention goes to a friend named Gaz, who I occasionally do voice work for his project. He’s very much a kindred spirit in his desire to be creative.

So at the last minute, we formed a new April Fools, “Shakespear With Stuffed Toys” Theatre Company …

My original post
Gaz helping to support me

The only problem is, “Shakespeare With Stuffed Toys” is a GREAT idea.

By the way — this sense of being upset and having my time wasted is a very important core emotion to me. I’ve helped out both as an article reviewer and conference program reviewer. I use these knocks and how badly they felt to make sure as much as possible other people don’t feel the same.

That doesn’t mean I’m going to say “yes” to everyone, but I will try and be constructive and most of all kind in how I reply to people.

So take-homes from my year?

Manage your time

Probably one of the most obvious — our time is a resource, and we have limited free time. The most things you try and do, the less success you’ll feel. Hence why I stopped doing some activities.

What doesn’t come across above — I worked on the machine learning workshop THEN the video of it THEN Melody Harper’s Moon … and during the singing challenge, I stopped writing book 2 (working title Melody Harper’s Baby).

But also it’s important to find time to relax as well — probably why I take things like what happened over the April Fool’s to heart.

Set your expectations

It’s okay to fail. But it’s also okay to reach a certain level and stop. Drawing wasn’t really a failure — I got to a point where I enjoyed it, and I was okay with it.

Likewise, I haven’t finished the machine learning courses, but I got most of what I needed from them. I will finish them when I’m ready.

Likewise with Melody Harper’s Moon — in the end I’d have about 16 drafts and still found occasional minor mistakes. There comes a point where you have to overrule the perfectionist in you and embrace that right now it’s good enough.

Don’t be afraid — have fun

Yeah — rejection sucks, and it wasn’t limited to just the April Fools this year. But it’s important to try things out as much as you can.

In my career, I’ve been a bit of a chameleon — learning new domains, technology, approaches. I’m a high performing generalist — I can do a lot of things, and I’m always learning new things.

Trying new things helps me to get used to just being a little outside of my comfort zone — just enough that I’m in an area I’m likely to learn in. It helps me to keep growing. It also helps me to remember how to learn — as I’ve said before many people feel they don’t learn as well as adults as when they were children. This is nonsense, we’ve just forgotten quite how slowly we built up concepts in school. I know this as I’ve been both a student and more importantly teacher.

An important thing for me is trying to make things fun — for machine learning my program projects kept me engaged, for the associated video I obviously love playing with puppets, even back in my “let’s learn Java” series in 2016 I kept a playful sense of fun in the examples we used.

And if you find yourself downbeat and feeling in the dumps like I did, do reach out to your friends! We forget that an important part of school and university life was the fraternity which kept us afloat in tough times.

Celebrate!

As said, if you’re jumping from one challenge to the next without taking pause to recognise what you’ve achieved, you’re always going to feel a bit empty. Celebrating and relaxing are important. Celebration reinforces that you’ve achieved something.