YOW! Sydney 2018

Last week I attended the YOW! 2018 Sydney Conference. I enjoyed the experience. I was able to host a track on the Friday, meet some awesome speakers and had taken some awesome sketch notes. Here are some selfies with the speakers as I gave them their sketch notes:

3x; Explore Expand and Extract by Kent Beck

https://www.youtube.com/watch?v=YX2XR73LnRY 


Kent Beck  is one of the original signers of the Agile Manifesto, Author of the Extreme Programming book series and rediscoverer of Test-Driven Development. Read up on the conversation; is TDD dead? Kent gave an inspiring talk of combining rapid exploration and maximum value adding extraction from his time at FaceBook.

1968 by Kevlin Henney  

https://www.youtube.com/watch?v=AbgsfeGvg3E

The premise of this talk by Kevlin Henney (go check out his blog on Medium) was that everything that is considered “New” is actually quite old. But this reminds me of a quote  from CP Grey;


We think of technological change as the fancy new expensive stuff, but the real change comes from last decade’s stuff getting cheaper and faster

http://www.cgpgrey.com/blog/humans-need-not-apply

All this “New technology” we have today is facilitated by improving hardware.

Breaking Codes, Designing Jets and Building teams by Randy Shoup

Check out Randy’s blog here

This talk was about how diversity, purpose and organisational culture can help teams achieve great things using examples from the code breakers of world war II, Skunk works jet building projects and Xerox Park. Randy also gave this other talk at YOW on engineering yourself:

Cloud Performance and root cause Analyst at Netflix by Brendan Gregg

Brendan’s Blog

This talk was a summary of all of the different tools used when doing a deep dive investigation of performance of the many micro services that Netflix uses. Similar vein to this talk:

Cloud, Containers & Kubernetes by Bridget Kromhout

Bridget had once spoken at 30 conferences in one year. Now she averages a more reasonable 2 per month on average. Containers will not fix your broken culture is an interesting follow up blog to read. It was along a similar vein of this talk:

Events and Commands for Asynchronous Microservices by Chris Richardson

Chris has a book on micro service patterns. You might enjoy this other talk by Chris:

Future of High Speed Transportation by Anita Sangupta

No Code by Advi Grimm

Advi asks, do you really need code to help you build that solution?

Shaving the golden Yak by Jessica Kerr

Jessica also gave a keynote on the overlap of opera and programming

The problem with pre-aggregated metrics by Christine Yen

Check out this interview with Christine Yen:

Top ten security flaws by Gary McGraw

Similar in vein to this video:

Conclusion

YOW! was a lot of fun with many highly regarded international speakers who write the books on these things. There were themes of an old analogy is seen as “new” (opera and programming, 1968, and breaking codes).  There’s many new tools out there to keep an eye on in the near future.

Back on the job market (again)

It’s only the third time this year I find myself job hunting (again). It was only back in June I found myself going through a break up from Campaign Monitor and in July I was starting a new role with a start up called Insight Timer that built a meditation app. I was just made redundant on Monday. I guess that’s #StartUpLife for you. Software Testers are expensive. I’m still fascinated that the CTO managed to convince the team they needed a software tester in the first place, even if it was just for 5 months. Redundancy is just another day in tech right?

I still want to do testing

This time last year I was thinking about becoming an Android Developer or a Product Manager. It seemed like the only way to progress my testing career was with Automation Testing or Management and I was not looking forward to any of those options. Over this year I have rediscovered my passion for testing and teaching. I want to combine the two. In a few years time I want to be running my own company where the focus is teaching testing skills. I’m not there yet but I’ve now got something I want to work towards. I’ll be looking for a position that has some strategic alignment with this goal. You can access an updated CV in PDF format here or as a Google Doc here. I’m hands on and very technical when it comes to my testing.

Goals

The goals I’ve set myself for next year do align with working towards my own company. I’d like to launch a wearable app, help my Nan with her digital marketing and continue to look after my health. You can read more about at at this blog post for my 2019 goals. Maybe I should add a goal, “Keep a job for 12 months?” 😭

Goal setting for 2019

I’m starting my goal setting early. I wrote this blog for goal setting for 2018. On reflection; I haven’t slipped back into obesity at least, which I was super concerned about as I spent the first six months of 2018 recovering from a broken ankle. Here’s my thinking behind my goal setting for 2019 and why I’m starting early.

Brainstorm everything I want to do

As an exercise, I listed everything I want to do and then asked myself, What do I have time to do? What is more important? What aligns the most with my personal values? I’ve had to eliminate a lot of extra curricular ideas and I still feel like I have a lot on my plate 🙁 .

This is a handwritten note of me brainstorming everything I want to do. I have things like learning Australian sign language, Japanese, podcasting, a masters in statistics and live testing as things I'd love to do but don't have the time for.
I don’t have enough time to do all the things I’d like to do

I then came up with the following list of things that are really important to me. They are themed around personal, career, family and financial goals:

  • Beat the overweight label (personal)
  • Maintain a daily meditation practice
  • Write a book (career)
  • Teach my Nan digital marketing (career and family)
  • Launch an app
  • Pay off half of my credit card debt (financial)
  • Speak at one international conference and take my Mum
  • Brew two whole grain beers
  • Keep Sydney Testers going
  • Create enough content to run a 3 day workshop

Why start the goal setting early?

I’m going to focus on developing my morning habit for the rest of this year. I’m going to get up early, meditate and write before heading off to work. If I can do this for the rest of the year, I’ll be in a good place to expand it come 2019. The green in the following table is this minimum commitment:

My ideal morning starts at 5:30, followed by exercise from 6 for up to hour. Next will be a twenty minute meditation from 7 flowwed by half an hour of writing from 7:30. I'll have breakfast at some point and be ready for work from 8:30 AM

I’ve put together an idea of what my ideal morning and ideal week looks like. If I do not put aside time to do things that are important to me, it’ll never get done. I reflected on what I could squeeze in. Unfortunately things like studying Japanese just don’t fit in financially and time wise. So here’s my ideal week to work towards in 2019:

My ideal week taken from a screenshot of a spreadsheet, please excuse the lack of transcribing here as I think the main information here is also covered in my external accountability section

There are some goals that I haven’t put aside any weekly or morning time for but they can’t easily be chipped away with a daily/weekly habit.

Keep goals measurable but hard to achieve

Everyone seems to be talking about Objectives and Key Results (OKRs) for goal setting these days. One of the important things with OKRs is that they are hard to achieve. When you reflect back on your goals you should be able to say you hit up to 80% of your objective. If you hit 100% you actually set your goals to easy. For example, I’m going to work towards beating the overweight label but I’m not going to consider myself a failure if I only get halfway there. By listing up my ideal morning/week it gives me an ideal to work towards but by highlighting my minimum commitments I won’t beat myself up if I have a bad week or two.

External Accountability

There’s no point in setting vague goals that you don’t tell anyone about. To ensure external accountability with my goals I’m going to;

  • Pay for a personal trainer for a twice a week weight lifting session
  • Go climbing with my partner every Wednesday and Saturday
  • Pay for a publisher’s time to help keep me focused on writing

How will you go about goal setting for next year? What measures will you take to ensure accountability? Please let me know.

Creating your own password algorithm

It’s pretty common to hear stories of passwords being hacked and it’s still surprisingly common for people to use the one password for everything. A lot of people use a password manager but if you are away from your regular device it can be a multi step process to log in.

I’ve been using my own password algorithm for a few years now. It means I generally have a unique password for each website and a way to remember what each password is. An algorithm is a set of rules applied to solve a problem.

Say I was creating a new account on Facebook. I would use the name of the website as a seed for the password. My rule might be; split the word Facebook up, swap the words, capitalise and then add a string that I remember. So a password for facebook becomes

BOOKFACEwordpass2018!!??

A password for LinkedIn might be

INLINKEDwordpass2018!!??

I might have to have an added rule, if I can’t easily swap the name of the website, just split it in half. So Twitter might be

TERTWITwordpass2018!!??

Now this algorithm isn’t perfect, one person could find one of my many compromised passwords on any number of services and figure it out. But this prevents your password being compromised everywhere and a internet bot cracking your accounts using a list of known passwords. It does mean if I create test accounts for the same service they tend to have the same password.

What do you use to manage your passwords?

Setting up a homemade charging station

At Insight Timer we’ve just ordered a whole bunch of refurbished second hand android phones from Green Gadgets Australia for testing our Android app. We managed to get 9 devices for under $2K and it also gave as a pretty good manufacturer spread from Samsung to Google. This blog is how I went about building a home made charging station for these phones.

First, finding and ordering the phones

 

look – shiny, the makings of a mobile device farm

Keeping all of these phones charged

The two tablets came in large boxes. I decided I wanted to convert one of those boxes into a charging station. All of the phones had bits of foam that were used to hold the phones in place. I cut up these pieces of foam and hot glued them into the box. I used the left over phone boxes to store extra cables.

However, I forgot to counter for actually plugging the USB’s into something. Next on the order list was a bunch of USB charging stations, extra cables and cable ties. All ordered via MWave.

Charging Station 2nd iteration 

After the USB charging stations, cables and 2 more phones from a Chinese supplier turned up I got to work on organising cables. We now have an Xaomi and a Lenovo in our device list.

 

I even have all of the cable types segregated, so there’s spaces to charge some of the test iPhones we have floating around too.

Conclusion

I’m quite pleased with our spread of devices and the budget of this set up. These devices aren’t exactly the highest end phones today but it’s a good thing our developers love to have the latest and greatest tech toys so they already have the high end covered. I might add one or two more phones that represent tiny screens. Have you built your own device farm before? How’d you keep all of the phones charged?

Visual thinking with sketchnotes

I’m a visual learner. I like to draw things as I absorb information. I enjoy doing sketchnotes while I’m at a conference. See YOW! Sydney 2018Australian Testing days and Agile Australia as examples of these sketch notes in practice. It helps keep me in the moment and focused on the talk material. It’s also a nice thing to hand to the speakers as they get off the stage. Here is my workshop material for learning sketch noting:

Everyone can draw

You brain is a pattern recognition machine and will turn almost anything into something you recognise. Even your random squiggles can turn into birds. Try this squiggle birds exercise out as a warm up:

Mindmapping

Mind mapping is a good way to start with visual thinking. You have your central idea in the centre of the page and all of your ideas related to that idea radiating out if it:

Source: https://www.mindmeister.com/blog/mind-maps-essay-writing/

You can use a mindmap to brainstorm ideas like, “How do I test a username/password field?”. Michael Bolton has a this fabulous mindmap just for this problem:

A Michael Bolton mindmap

Sketchnotes

you can do sketch noting without drawing. You can start with lettering and things like bullets, frames and connectors:

 

I use banners everywhere

You can even find youtube videos for doing these banners

Build up a library of icons

There are many common icons you’ll use. I often draw light bulbs, locks, poop emoji’s and tools (what does that say about the state of technology?). 

Use colour to highlight ideas

It might feel like you are back in primary school colouring in borders but I love adding shadows and some colour highlights to my sketchnotes to really make them stand out/seem more 3D.

Practice your stick figures

people are often used to communicate abstract ideas. There’s lots of different styles out there and you will find your own.

Give it a go

The next time you are watching a lecture/presentation on youtube, try and take some sketch notes and let me know how you go.

Australian Testing Days – Sydney Conference Overview

I had a blast at Australian Testing Days Conference in Sydney on Friday. It’s always good to get reconnected with some colleagues and to make new connections. First up we had Jennie Naylor go over how to use OKR’s to drive the Quality Onwership:

Using OKR's to grow quality ownership - sketchnotes

The OKR (Objectives and Key Results) framework has been in use since the 70’s and is used by companies such as Google, Uber and Facebook to set their organisational goals. OKR is a framework that can be used at any level within your organisation. This presentation mention how to use OKRs to help improve quality and ownership in a team.

Key Takeaways

The key takeways I got from this talk was how to use OKRs to determine if experiments are successful or not and getting the whole team involved in quality and product ownership.

AI and the impact on QA

Given by Chhavi Raj Dosaj who proposed the question, can AI can the landscape of testing?  Chhavi had a big topic to fill. I think his main point was a little lost because he spent too much time going over the basics and he wasn’t able provide compelling examples of where AI could benefit the QA process.

One of his examples was using an unsupervised learning algorithm to select the top manual test cases to execute in the next testing cycle based on past performance of said test cases. Anyone who primarily uses test cases to manage their testing work and reporting is using a pretty dated testing practice that doesn’t scale or make sense in the Agile world. You can read more about my thoughts on the end of manual testing. I also wish he asked me for feedback on his slide design before he got up on stage. There were some presentation sins committed in his slide deck.

dev Ops Testing Strategy

DevOps Testing strategy by Amit Kulkarni fell victim to the old bait and switch presentation sin. The title didn’t match up to the content. My key take away from this talk was, “there are tons of tools out there you can use in a continuous testing way”. There wasn’t any DevOps in this talk at all. 

Performance Testing in CI

Andrey Pokhilko gave an engaging talk on Performance Testing in CI using opensource tools. I learnt the name of a new tool; Taurus. Which can be used on top of JMetre and is a little easier to use than the good old JMetre.

State of BDD

As I’ve already done Gojko Adzic’s spec by example workshop offered through YOW! a few years ago, I already had a decent idea where this talk would go. Bria Grangard was engaging and gave a good update on the state of this field.

Transforming Testing

Bruce McLeod gave an engaging talk in business strategy and how it will transform testing. This was one of my highlights of the conference. Bruce goes over how testing needs to change from a culture of “protection” to a culture of experimentation using the Netflix chaos monkey as an example. 

Ditch that intro slide

Australian Testing days is off to an awesome start. I always enjoy the community vibe at these events. However there’s tons of poorly designed slide decks out there. Here’s some advice. Ditch the intro slide with your picture on it. The audience doesn’t care and we know what you look like. You are standing right in front of us.

Chhavi Raj Dosaj gave a good introductory talk on “on practical AI for the tester”. I have the sketchnotes here:

However, I just wish I could have walked him through my workshop material on giving better technical presentations before he got up on stage. This type of mentoring is something I offer for free. I love helping people improve their technical presentations. It makes every conference experience better for everyone involved. His slide deck could have been better. For example;

This intro slide

We don’t need a slide with your picture on it. You are standing right in front of us. We know what you look like. Keep this for the offline version for sharing if you like but you should never have a slide with your picture on it when standing in front of a crowd. This is my personal opinion, but do you think this adds any value?

There are too many words on this slide

Can you read what’s on this slide from that photo? no? me neither. Only the people in the front row would have been able to read this. Anyone further back in the crowd can’t. Also when people read they stop listening to what you are talking about. Think of your slide deck as a good user interface, your goal is to teach us something new. Not cause us to be distracted from reading your words when you want us to focus on what you are saying. Wordy slides are good for offline sharing. They aren’t needed in a physical presentation. Slides are free. If this content is important use the slow reveal technique to build up. If not, dump it. You have already established you credibility. the audience doesn’t need your words to figure out you are competent on stage and that you know the material you are presenting. You are already standing in front of us and we are already seated. Waiting to hear your insights on the topic.

Don’t put anything important on the bottom third

Only the front row can read this content. Everyone else has to strain or just completely ignore any information you put here.

In summary, ditch that intro slide. The audience already knows your name; it’s on the schedule. We are already convinced of your value; we are sitting in the audience. The audience just wants you to get to the learning material. Want a challenge for slide design? Try the Takahashi minimalistic slide design or a presentation using only images, it will force you to focus on your story over your slides.

Getting Started with Google Cloud, App Script and BigQuery

The humble spreadsheet is one of the most versatile digital tools that any tester has in their toolkit. I’m working on a data analytics project at InsightTimer where we are doing event tracking across our android and iOS apps using MParticle and BigQuery. I want to do some data analyst on the events coming through for new android builds. “Basic Sanity” testing of events is my goal. My first step towards this is to create a Google Sheet dashboard that integrates with BiqQuery via a javascript-esk language called App Scripts. App scripts is an amazing extension of the humble spreadsheet, it really adds a lot of extra functionality. I’m going to walk you through how you can get started with a similar project of your own.

1. Sign up for a google cloud trial

I used a test account; sammy.test.cloud@gmail.com to explore this for you and I collected screenshots along the way.

Navigate to https://cloud.google.com/ and sign up for all that cloud magic.

 

You will get $300 worth of credit to explore the cloud

 

You will be asked for credit card details 🙁 but at least there is no auto charge if you forget

 

Woot, the default project name is “My First Project”

 

Go to https://console.cloud.google.com/bigquery?p=bigquery-public-data to test out your big query set up. BigQuery should be enabled for new projects by default.

There’s a whole bunch of public data sets for you to explore

 

We are going to explore the hacker_news datasets in this example. This is actually a collection of the data (comments and articles) from this Hacker News website.

Previewing the table is a handy feature for getting an idea of the structure of the data

The preview gives you some sample data, an idea of columns and a way to explore

 

If you wanted to find the top ranked comments for author ‘4ad’ you can run a query like the following (remove the \ characters if you are copy pasting this query):

SELECT
  author,
  id,
  ranking,
  time_ts,
  text,
  parent 
FROM 
\`bigquery-public-data.hacker_news.comments\`
WHERE
author = '4ad'
AND deleted IS NULL
ORDER BY
ranking desc,
time_ts
LIMIT 10;

 

2. Setting up Google Sheets with App Script

Create a new sheet in your drive folder, I’ve named mine BigQueryTest. Open up the tools > Script Editor:

 

You will see a blank script editor. Copy & paste the code from https://developers.google.com/apps-script/quickstart/custom-functions 

Save, the first time you save it will ask you to name your project

 

I ended up calling mine BigQueryAppScriptIntegration, original I know

 

Run the onOpen function. The first time you run this app script it will ask you to set up permissions

 

Review the permissions

 

select your account

 

More Permissions

 

Whew, done. Now if you navigate back to your spreadsheet you should see some added menu items:

 

What happens when you click on the Prepare sheet… function?

Huh, fancy that. Our spreadsheet is updated

 

Then how about the Generate step-by-step function?

 

That’s pretty cool a new tab is added

 

You don’t need to understand google’s code to explore this. I find it’s better to learn by starting from scratch. This code gives you a guideline for what you can achieve but you will have a better understanding of how app script works by building out your own.

3. Enable App Script APIs in your google cloud project

Navigate to your google cloud console: https://console.cloud.google.com/apis/dashboard and click on enable APIs and services

 

search for App Script and click enable

 

4. Enable BigQuery APIs in your App Script

Navigate back to you App Script and go to Resources > Advanced Google settings

 

Enable BigQuery APIs

 

Delete your old app scrip code, copy and paste the first code sample from https://developers.google.com/apps-script/advanced/bigquery

Replace the XXXXX string with your project id, you get this from your google cloud console

 

 

Replace the query with 

'SELECT COUNT (DISTINCT id) FROM [bigquery-public-data:hacker_news.comments]'

 

Save and run the runQuery function. You will also need to set up permissions again the first time you run this.

 

Huh, that’s a new screen. I clicked on “Advanced” to see a similar permission screen I had previously encountered

 

Dam. I got another error message:

When I click on the details it gave me a handy url to navigate to

 

I went to the suggested URL and it turned out I need to enable another API somewhere else. That makes me thing I did it in the wrong spot in step 3, maybe that step wasn’t needed?

 

I wait a few moments and go back to my app script. I click on “Run Query”. No error messages this time. If you go to your drive folder you should see a new sheet called “Big Query Results” with one row of data:

 

You can test out this result is roughly correct by running the query directly in your google cloud query editor:

 

Now you are all set up with your API integrations. Next lesson will be building out your own dashboard that puts this set up into practice.

Sydney Testers and Money

We have a Sydney Testers evening with James Bach coming up soon and you might be curious to know why we are charging $5 for it when it seems we have a sponsor for the event (Campaign Monitor). There are actually a few reasons to try this model that I will explain in detail.

Ongoing costs

prices from meetup

Meetup charges US$14.99/month for any big meetup and the organizing committee often foots the bill for this. There were times we were buying name badges and accessories for events. There’s been a few occasions when the organizing committee have footed the bill for food (I paid for the pizza for Michael Bolton’s talk expecting to be able to claim it back later but couldn’t). Sometimes we have sponsorship for food scrape through at the last minute. For example our bug bounty discussion panel at Prospa, Prospa did an awesome job of hosting us but didn’t have the budget for food and drinks. We had Bug Crowd confirm the day before the event that they were able to sponsor food and drinks. It would be nice to have some buffer of money/sponsorship so these moments aren’t as stressful. Our average meetup generally costs our sponsors anywhere from $200 to $500.

Meetup’s view of the money portal

Turn out rates

The meetup average drop out rate is around 50%, plus or minus 10% depending on things like the weather and location of the event. This can have an impact on food budgeting and moral. With a paid event the drop out rate is expected to be around the 20-30%. It makes it easier on organizers who are catering food to organize if the RSVP numbers match up to reality. We also get a better vibe. Imagine expecting to turn up to an event where 100 people RSVP’d and only 40 people turned up. You’d feel a little disappointment with the turn out. As an organizer it would suck your motivation for running future events too.

Lost funds

The previous committee had a paypal account set up and linked to Meetup but when the organizer left, the paypal account left with them and that means any previous funds we had raised (like when Michael Bolton came to Sydney and we charged $10 per person for) we actually never saw that. Which is a sucky situation to come to terms with but it’s the current situation. That’s why we haven’t charged for anything since then because we wanted to try and sort it out. This time we’ve just started from scratch with a write off for the previous balance.

Paypal setup

Paypal takes a 4.4% cut out of every transaction so for every $5 ticket sold we get $4.57. Currently I re-jigged an old business account I had set up for my tutoring services. The account has been shared with the committee so if one person leaves existing members still have access. You might see Sam’s Tutoring on your receipts until we update the details.

please don't be concerned if you see my details on the receipt
Example PayPal receipt

Free events

We will continue to run free events that benefit members, if you want to help organize any or have ideas for events that you’d like to attend hit us up. We are always open for ideas. The CV clinics we’ve been running this month came about from discussions in the pub. So please, suggest your ideas, we’d also appreciate if you helped with an event or two.

Any profits will be donated to charities

For James Bach event, Campaign Monitor has selected the drought appeal where profits will be contributed. You don’t need to worry about me profiteering from this event.

Investing in your education

Isn’t it worth spending a few dollars to support the community, your education and the drought appeal? These are just our first steps towards managing this meetup just a little better. We are always open to suggestions.