Header tag

Wednesday, 4 January 2023

The Parable of the 99 Sheep

The parable of the lost sheep/good shepherd is very well known, especially in church circles.  I learned the parable in Sunday school, and I've heard sermons on it many, many times from many different preachers and teachers.  It's a reminder to the church that God, the Good Shepherd, wants to gather as many people into the church as possible, and it's frequently used as part of what might be called a recruitment drive - time to evangelise to neighbours, friends and family who aren't part of the flock.  After all, the sheep are all equally valuable, and introducing more sheep to the flock is a good thing.

Here it goes:

"Suppose one of you has 99 sheep, and you decide you want to increase your flock by one.  Would you not leave the 99 sheep in the open country, and go out to find a hundredth sheep, and bring it home on your shoulders with rejoicing?  In the same way, there is more rejoicing over one sinner who repents than over 99 righteous people who do not need to repent."


As you can see if you check your Bible, that's not what the parable says.  

But when it's read out in church, the message that often accompanies the reading is the 'recruitment drive'.  It's as if the parable says we need to get the hundredth sheep because the hundredth sheep is equally important to the 99 already safe in the flock.  And: we the church need to get the extra sheep.  I'm not saying that evangelism is unimportant (it's crucial), but there's another way of reading this parable:  what does Jesus say?

Then Jesus told them this parable: “Suppose one of you has a hundred sheep and loses one of them. Doesn’t he leave the ninety-nine in the open country and go after the lost sheep until he finds it? And when he finds it, he joyfully puts it on his shoulders and goes home. Then he calls his friends and neighbors together and says, ‘Rejoice with me; I have found my lost sheep.’ I tell you that in the same way there will be more rejoicing in heaven over one sinner who repents than over ninety-nine righteous persons who do not need to repent.

Matthew 18:10-14; Luke 15:1-7; John 10

At the start of the parable, the shepherd already has 100 sheep in the flock.  And the truth is that sometimes, sheep wander off.  It's in their nature - they keep their nose to the grass, and they follow their instincts towards what they think is the next best grass... the next thing they know, they're not in the flock any more.  And we are just the same.  Yes we are.  We go to church every Sunday, we join house groups and we attend the prayer meetings.  We all think we're so clever, and we know what's going on in our lives, but we get comfortable, and then we get distracted from where we're supposed to be going.  And then suddenly, we're not sure where we are any more.

It happens.  Christians get criticised for being willing to identify with sheep, but we people aren't half as clever as we think we are, and we follow the crowd far more often than we'd like to admit. 

Sometimes, even members of the flock need to be found. And it's ok if that's you (it's been me).  If you read the parable, you'll notice that there is no blame attached to the sheep.  The sheep isn't berated or criticised, because sheep are sheep (that's why they need shepherds).  Also: it's the shepherd who goes to search and retrieve the 100th sheep, not some of the 99

The parable isn't described as the parable of the bad sheep, it's the parable of the good shepherd - who cares when a member of the existing flock wanders off and gets lost.  He doesn't shrug his shoulders and say, "Oh well, a 1% loss is acceptable for this year's performance, I still have the other 99 and that'll balance the books."  He's searching for even one who goes astray, just as much as for the ones who aren't yet part of the flock.  

Other articles I've written based on Biblical principles

10 things I learned from not quite reading the Bible in a year
Advent and a Trip to London
Advent: Names and Titles
Reading Matthew 1
My reading of Matthew 2
The Parable of the 99 Sheep
Why I Like Snow (it's not as crazy as you may think)

Wednesday, 28 December 2022

First Times of 2022

In what is becoming an annual tradition (here's the 2021 list), here's my list of 'things I did for the first time this year', which shows no sign of getting any shorter, even though I'm getting older.  

1. I taught someone how to tie a necktie.  It wasn't complicated, and my student was a very capable learner who simply hadn't needed to learn how to tie a tie before.  Took us about three minutes.

2.  I taught someone how to tie their shoelaces (because Velcro has been around for a while now, but hasn't taken over completely).  It took us five minutes: four minutes for me to analyse and work out how I've done it on autopilot for the last 40 years, and then one minute to demonstrate it step by step. 

3. I dressed up as Darth Vader.  Quite a few times, in fact, starting off with comic conventions initially, then a few charity events, but later in the year I also then attended a birthday party as an invited guest.  I mean, they weren't inviting me, they were inviting Darth Vader as part of my local Star Wars group and it would have been rude not to accept.  We attended a birthday party for a young man with cystic fibrosis, and for his friends, some of whom had other disabilities. 

And to complete the year, I attended a Christmas Carol service as Darth Vader, playing the role of King Herod, sharing the stage with a ballet dancer who played the role of the Angel Gabriel.  Not something I'd anticipated at the start of the year!


4. I spoke at my church on a Sunday morning.  I was invited to speak for 10 minutes on one of the Fruits of the Spirit, and chose patience (because people think I'm patient when I'm actually just very good at not speaking out). I've spoken at Sunday evening youth group meetings, but that was 20+ years ago, and this audience was a little more mature. I enjoyed it (I wrote and practised for weeks) and might get to do it again next year.

Here's the link to the video recording: Youtube Link

5.  I became a Trustee at my church.  This means I have responsibilities (legal responsibilities) for the finances and legal behaviour of the church.  I'm not the only Trustee - we have four in total, plus the senior minister- and the others have all been in the role for several years. I'm hoping to get up to speed pretty quickly.

6. I found, and completed, a South Korean "K-Drama" series which I selected.  As I mentioned last year, my wife introduced me to K-dramas in early 2021, and we watched "Crash Landing On You" which is one of the best drama series I've ever watched - her suggestion.  We also watched "My Love From The Star" which was good (after CLOY, the others tend to pale by comparison).  

This year, I found "Extraordinary Attorney Woo", which is set in a South Korean law firm. Attorney Woo has autistic spectrum disorder, and is a spectacular law student who's just graduated and started work practising law.  It's dubbed, but you soon forget that as the production and sound is exceptionally good.  I recommend it, it's heart-warming and life-affirming.

Here are some other K-dramas that we've watched and enjoyed on Netflix

Crash Landing On You - the original and best

My Love from the Star - an alien lands on Earth, and doesn't age.

Extraordinary Attorney Woo

7. I taught myself to solder.  Yes, I'm a late developer, but I taught myself out of necessity. I needed to fix my Darth Vader voice box, and didn't want to wait until I could get somebody else to do it.  I have since soldered a couple of other small electronics items, and only burned myself slightly once, on my thumb.

8. I taught Ben to play a piece of music on the piano. In early September, he came home from school with music homework: perform a piece of music to a backing track.  Ben won't mind me telling you that he has zero interest in music and hence no experience or musical knowledge.  However, by clever planning and careful choices, he learned to play firstly Twinkle Twinkle Little Star, and then the main theme from Star Wars on the piano, single-finger melody, in a weekend (and then practised it for the next two weeks ready for his music lesson).  

A piano will always play the same note when you hit the same key (unlike a violin, which requires skill just to extract a sound from it), irrespective of which finger you use or how close you get to the middle of the key.  This makes it ideal for a beginner who is going to play through a brute-force memorisation exercise. It was a triumph of perseverance and determination for both of us, but for Ben especially. Music is already one of his least favourite subjects at school (what other subject expects you to take the end-of-year test before teaching you the course material?).

I'm pleased and surprised at how I'm still learning, teaching and doing new things. I wish you a happy 2023 and many more new opportunities!

The Lists of Firsts

A first time for everything: 2018
2019 in reflection
First times in 2021 list
First times of 2022
First times in 2023
Things I did for the first time in 2024

Friday, 18 November 2022

The BBC Micro and sums of 2^n

Our first home computer was an Acorn Electron. Not as widely known as the Commodore 64 or the Sinclair Spectrum, the Electron is most easily described as a cut-down version of the BBC Micro (which was extremely common in schools).  The Electron ran BBC BASIC, which made it relatively user-friendly. There was a full BASIC manual in the box, along with a book containing some relatively simple games and programs, and using the two together it was relatively easy to enter and the customise the games.

In particular, it was possible to modify the games' graphics, and the character sprites.  Each component of the game (a gameplay character) was made either from a combination of simple ASCII characters >->  o<-< or from user-defined graphics.  And the way that you defined the sprites used some simple maths based on a grid and the powers of 2 (1, 2, 4, 8, 16, etc.).  The grid is 8x8 pixels, and each column has a value.  The sum of each row gives its overall value.

Here's an example:


In order to program one of the game sprites, you take each row one at a time. You identify which of the columns have been filled for that row, and then sum their values (based on the column heading).  The first row in the example above has the two central squares shaded, and these have the values 16 and 8; the sum is 24.  The next row has four squares shaded, and these are 32, 16, 8 and 4.  The next has the central six squares, where 64+32+16+8+4 = 126, and the fourth row has all eight squares, the sum is 255.

The heart shape has some new and some familiar combinations, but the same principle applies.

And this walking stick-man has an asymmetrical arrangement, but this is no problem as the same principles apply.

Admittedly I was 8-10 years old when I was programming these sprites, but it never occurred to me that each combination was represented ny a unique sum, and conversely, each total could only be shown by one combination of pixels.

Why? In base 10, each number can only be expressed as a unique sum of 10^0s, 10^1s, 10^2s... and so on.  We call these units, tens and hundreds, and each can hold a value between 0 and 9. So, 9 x 10^0 is 9, and if we want to show an additional unit, we have to add this as an increment to the next column, and have 1x10^1 + 0 x 10^0.  Each number can (and must) be represented by a unique combination of digits in the hundreds, tens and units columns.

The same applies in binary, base 2, which is the underlying basis of the pixel grid. Each pixel can be either 1 or 0, with 1 representing a pixel, and 0 representing a gap.  And every number can be represented by a unique combination of 1s and 0s - binary is just the same as decimal counting, its just the digits that are different!  This time, the values of each column aren't 10^0, 10^1, 10^2 and so on, but 2^0, 2^1, 2^2, 2^3, 2^4 and so on. 

Naturally, the Acorn Electron was also fluent in hexadecimal, but that's a whole other story.

Other similar posts that I've written

My Life in 10 Computer Games (including a few that I played on the Acorn Electron and BBC Micro)
Sums to Infinity and Refuelling Aircraft (based on a puzzle from a BBC Micro coding book)
And this post: The BBC Micro and Sums of 2^n

Monday, 14 November 2022

How many of your tests win?

 As November heads towards December, and the end of the calendar year approaches, we start the season of Annual Reviews.  It's time to identify, classify and quantify our successes and failures opportunities from 2022, and to look forward to 2023.  For a testing program, this usually involves the number of tests we've run, and how many recipes were involved; how much money we made and how many of our tests were winners.

If I ask you, I don't imagine you'd tell me, but consider for a moment:  how many of your tests typically win?  How many won this year?  Was it 50%?  Was it 75%?  Was it 90%?  And how does this reflect on your team's performance?

50% or less

It's probably best to frame this as 'avoiding revenue loss'.  Your company tested a new idea, and you prevented them from implementing it, thereby saving your company from losing a (potentially quantifiable) sum of money.  You were, I guess, trying some new ideas, and hopefully pushed the envelope - in the wrong direction, but it was probably worth a try.  Or maybe this shows that your business instincts are usually correct - you're only testing the edge cases.

Around 75%

If 75% of your tests are winning, then you're in a good position and probably able to start picking and choosing the tests that are implemented by your company.  You'll have happy stakeholders who can see the clear incremental revenue that you're providing, and who can see that they're having good ideas.

90% or more

If you're in this apparently enviable position, you are quite probably running tests that you shouldn't be.  You're probably providing an insurance policy for some very solid changes to your website; you're running tests that have such strong analytical support, clear user research or customer feedback behind them that they're just straightforward changes that should be made.  Either that, or your stakeholders are very lucky, or have very good intuition about the website.  No, seriously ;-)

Your win rate will be determined by the level of risk or innovation that your company are prepared to put into their tests.  Are you testing small changes, well-backed by clear analytics?  Should you be?  Or are you testing off-the-wall, game-changing, future-state, cutting edge designs that could revolutionise the online experience? 

I've said before that your test recipes should be significantly different from the current state - different enough to be easy to distinguish from control, and to give you a meaningful delta.  That's not to say that small changes are 'bad', but if you get a winner, it will probably take longer to see it.

Another thought:  the win rate is determined by the quality of the test ideas, and how adventurous the ideas are, and therefore the win rate is a measure of the teams who are driving the test ideas.  If your testing team is focused on test ideas and has strengths in web analytics and customer experience metrics, then your team will probably have a high win rate.  Conversely, if your team is responsible for the execution of test ideas which are produced by other teams, then a measure of test quality will be on execution, test timing, and quantity of the tests you run.  You can't attribute the test win rate (high or low) to a team who develop tests; in fact, the quality of the code is a much better KPI.

What is the optimal test win rate?  I'm not sure that there is one, but it will certainly reflect the character of your test program more than its performance. 

Is there a better metric to look at?   I would suggest "learning rate":  how many of your tests taught you something? How many of them had a strong, clearly-stated hypothesis that was able to drive your analysis of your test (winner or loser) and lead you to learn something about your website, your visitors, or both?  Did you learn something that you couldn't have identified through web analytics and path analysis?  Or did you just say, "It won", or "It lost" and leave it there?  Was the test recipe so complicated, or contain so many changes, that isolating variables and learning something was almost completely impossible?

Whatever you choose, make sure (as we do with our test analysis) that the metric matches the purpose, because 'what gets measured gets done'.

Similar posts I've written about online testing

Getting an online testing program off the ground
Building Momentum in Online testing
Testing vs Implementing Directly


Sunday, 30 October 2022

What is the highest product of numbers that sum to 10?

 I'm always on the lookout for maths puzzles, especially ones which can be described simply but require some work to find the solution.  The most popular article on my blog is the one "Can you use the digits 1,2,3 and 4 to make the numbers from 1 to 50."  It's depressingly popular, when I have spent so much more time on many of the other posts here.  Ah, well, that's life.

A puzzle I found recently goes like this: "What is the highest product (i.e. multiply them all together) of numbers that sum to 10?"

Simple enough. 

I started with the pairs, 1+9, 2+8 and so on:

1 * 9 = 9
2 * 8 = 16
3 * 7 = 21
4 * 6 = 24
5 * 5 = 25

Well, there we are.  The answer so far is 25.  The highest value we can reach for x (10 - x) is when x = 5 and 5 * 5 = 25.  We can even prove this, using differention:

If y = x(10-x) = 10x - x^2  

then dy/dx = 10 - 2x 

And the maximum value is when dy/dx = 0 and if 10 - 2x = 0 then x = 5.  QED

However, there are multiple other ways of making 10 by summing numbers together; nobody said it had to be just two numbers.

For example, 4 + 4 + 2 = 10, and 4 * 4 * 2 = 32, which is higher than the 25 we achieved previously.

A few more examples:

2 * 4 * 2 * 2 = 32
2 * 3 * 5 = 30
3 * 3 * 4 = 36

The highest that can be achieved, it seems, is 36.

Let's try another number - let's try summing to 15, and see if we can find a pattern.

3 * 6 * 6 = 108
5 * 5 * 5 = 125
3 * 3 * 3 * 4 * 2 = 162
3 * 4 * 4 * 4 * 4 = 192
3 * 3 * 3 * 3 * 3 = 243

Summing to 15, the highest product we can achieve is 243.

Summing to 19 (if you fancy a challenge) is 972, where 3 * 3 * 3 * 3 * 3 * 4 = 972.

Proof (or general principle)

When forming the product with the highest value, the highest value can be achieved by using 2s and 3s.

Every larger number can be broken down to 2s and 3s which will multiply together to form a larger product.

For example, 9 can be be broken down to 5 and 4, which will multiply to form 20 (which is higher than 9).

9 --> 5 * 4 = 20

5 -->  3 * 2 = 6

9 --> 3 * 2 * 4 = 24

4 --> 2 * 2 = 4 (hence it does not matter if we choose a 4 or two 2s).

7 --> 3 * 4 = 12

6 --> 3 * 3 = 9

Any number n can be broken down to 2s and 3s which will multiply together to form a product which is greater than n.  Hence, the largest product we can obtain for 10 is 3 * 3 * 3 * 2 = 18, and the general principle is to break down the sum number into 3s (and 2s if the number is not a product of 3) to obtain the highest product.













Wednesday, 21 September 2022

A Quick Checklist for Good Data Visualisation

One thing I've observed during the recent pandemic is that people are now much more interested in data visualisation.  Line graphs (or equivalent bar charts) have become commonplace and are being scrutinised by people who haven't looked at them since they were at school.  We're seeing heatmaps more frequently, and tables of data are being shared more often than usual.  This was prevalent during the pandemic, and people have generally retained their interest in data presentation (although they wouldn't call it that).

This made me consider:  as data analysts and website optimisers, are we doing our best to convey our data as accurately and clearly as possible in order to make our insights actionable.  We want to share information in a way that is easy to understand and easy to base decisions on, and there are some simple ways to do this (even with 'simple' data), even without glamorous new visualisation techniques.

Here's the shortlist of data visualisation rules

- Tables of data should be presented consistently either vertically or horizontally, don't mix them up
- Graphs should be either vertical bars or horizontal bars; be consistent
- If you're transferring from vertical to horizontal, then make sure that top-to-bottom matches left-to-right
- If you use colour, use it consistently and intuitively.

For example, let's consider the basic table of data:  here's one from a sporting context:  the English Premiership's Teams in Form:  results from a series of six games.

PosTeamPPtsFAGDSequence
1Liverpool61613211W W W W W D
2Tottenham6151046W L W W W W
3West Ham61417710D W W W W D

The actual data itself isn't important (unless you're a Liverpool fan), but the layout is what I'm looking at here.  Let's look at the raw data layout:

PosCategory
Metric
1
Metric
2
Metric
3
Metric
4
Derived
metric
Sequence
1Liverpool61613211W W W W W D
2Tottenham6151046W L W W W W
3West Ham61417710D W W W W D


The derived metric "GD" is Goal Difference, the total For minus the total Against (e.g. 13-2=11).

Here, the categories are in a column, sorted by rank, and different metrics are arranged in subsequent columns - it's standard for a league table to be shown like this, and we grasp it intuitively.  Here's an example from the US, for comparison:

PlayerPass YdsYds/AttAttCmpCmp %TDINTRate1st1st%20+
Deshaun Watson48238.95443820.702337112.42210.40669
Patrick Mahomes47408.15883900.663386108.22380.40567
Tom Brady46337.66104010.6574012102.22330.38263


You have to understand American Football to grasp all the nuances of the data, but the principle is the same.   For example, Yds/Att is yards per attempt, which is Pass Yds divided by Att.  Columns of metrics, ranked vertically - in this case, by player.

A real life example of good data visualisation

Here's another example; this is taken from Next Green Car comparison tools:


The first thing you notice is that the categories are arranged in the top row, and the metrics are listed in the first column, because here we're comparing data instead of ranking them.  The actual website is worth a look; it compares dozens of car performance metrics in a page that scrolls on and on.  It's vertical.

When comparing data, it helps to arrange the categories like this, with the metrics in a vertical list - for a start, we're able to 'scroll' in our minds better vertically than horizontally (most books are in a portrait layout, rather than landscape).

The challenge (or the cognitive challenges) come when we ask our readers to compare data in long rows, instead of columns... and it gets more challenging if we start mixing the two layouts within the same document/presentation.  In fact, challenging isn't the word. The word is confusing.

The same applies for bar charts - we generally learn to draw and interpret vertical bars in graphs, and then to do the same for horizontal bars.

Either is fine. A mixture is confusing, especially if the sequence of categories is reversed as well. We read left-to-right and top-to-bottom, and a mixture here is going to be misunderstood almost immediately, and irreversibly.

For example, this table of data (from above)

PosCategory
Metric
1
Metric
2
Metric
3
Metric
4
Derived
metric
Sequence
1Liverpool61613211W W W W W D
2Tottenham6151046W L W W W W
3West Ham61417710D W W W W D


Should not be graphed like this, where the horizontal data has been converted to a vertical layout:
And it should certainly not be graphed like this:  yes, the data is arranged in rows and that's remained consistent, but the sequence has been reversed!  For some strange reason, this is the default layout in Excel, and it's difficult to fix.


The best way to present the tabular data in a graphical form - i.e. putting the graph into a table - is to match the layout and the sequence.

And keep this consistent across all the data points on all the slides in your presentation.  You don't want your audience performing mental gymnastics to make sense of your data.  It would be like reading a book, then having to turn the page by 90 degrees after a few pages, then going back again on the next page, then turning it the other way after a few more pages.  

You want your audience to spend their mental power analysing and considering how to take action on your insights, and not to spend it trying to read your data.

Other articles with a data theme

Thursday, 25 August 2022

Testing Towards The Future State

Once or twice in the past, I've talked about how your testing program needs to align with various departments in your company if it's going to build momentum.  For example, you need to test a design that's approved by your site design and branding teams (bright orange CTA buttons might be a big winner for you, but if your brand colour is blue, you're not going to get very far).  

Or what happens if you test a design that wins but isn't approved by the IT team - they just aren't heading towards Flash animations and video clips, and they're going to start using 360-degree interactive images?  The answer - you compiled and coded a very complicated dead-end.

But what about the future state of your business model?  Are you trying to work out the best way to promote your best-selling product?  Are you testing whether showing discounts as £s off or % off?  This kind of testing assumes that pricing is important, but take a look at The Rolls Royce website which doesn't have any price information on it at all.  Scary, isn't it?  But apparently that's what a luxury brand looks like (and for a second example, try this luxury restaurant guide).

  Apart from sharing the complicated and counter-intuitive navigation of the Rolls Royce site, it also shares a distinct lack of price information.  Even the sorting and filtering excludes any kind of sorting by price - it's just not there.

So, if you're testing the best way of showing price information on your site while the business as a whole is moving towards a luxury status, then it's time to start rethinking your testing program and moving into line with the business.

Conversely, if you're moving your business model towards the mainstream audience in order to increase volumes, then it's time to start looking at pricing (for example) and making your site simpler, less ethereal and less vague, with content that's focused more on the actual features and benefits of the product, and less on the lifestyle.  Take, for example, the luxury perfume adverts that proliferate in the run-up to Christmas.  You can't convey a smell on television, or online, so instead we get these abstract adverts with people dancing on the moon; bathing in golden liquid or whatever, against a backdrop of classical music.  Does it tell you the price?  Does it tell you what it smells like?  In some cases, does it even tell you what the product is called?  Okay, it usually does, but it's a single word at the end, which they say out loud so you know how to pronounce it when you go shopping on the high street.

Compare those with, for example, toy adverts.  Simple, bright, noisy, clear images of the product, repetition of the brand and product name and with the prices (recommended retail price) running constantly throughout, and at the end.  Yes, there are legal requirements regarding toy adverts, but even so, no-one would ever think of a toy as a premium. Yet somehow, toys sell extremely well year after year, whether cheap or expensive, new or established brand.

So, make sure your testing is in line with business goals - not just KPIs, but the wider business strategy, branding and positioning. Don't go testing price presentation if the prices are being removed from your site; don't test colours of buttons which contravene your marketing guidelines for a classy monochrome site, and so on. Business goals are not always financial, so keep in touch with marketing!