I used to think that stats worked like this: Unfortunately the real world isn’t like that. Instead it’s more like this: You don’t have direct access to the Glorious Truths because there is the Impenetrable Wall of Ignorance in the way. Your only hope is to punch through the wall with some Stats Machinery. One … Continue reading Stats: Through a Glass, Darkly
UX Design: Good out of bad
Jared Spool has an excellent technique for helping people of varied backgrounds work on improving user experience. He starts off by deliberately pointing them in the wrong direction, gets them to enjoy themselves being nasty to their users, and then turns that into improvements.
How to mess up A/B tests
An excellent talk about A/B tests from someone who knows - Martin Goodson. My favourite part is an A/B test that found a 2.5% improvement to (sales) conversions between the two versions of the software being tested. Unfortunately there was a bug in the A/B testing framework, such that the old version was being tested … Continue reading How to mess up A/B tests
Guest slot on Boagworld podcast
Have you ever wondered what regular expressions are? Do you have trouble falling asleep? Paul Boag runs the excellent podcast Boagworld (plus a UX and digital transformation consultancy), and opened up the podcast for a season to anyone and everyone. The idea was about 10 minutes of stuff per person, and he and his co-host … Continue reading Guest slot on Boagworld podcast
Taming Combinatorial Explosions in SpecFlow
The Problem Imagine you are using SpecFlow to test a REST API. In the common REST way, the URL is built up of 1+ units, where each unit is one of these: Give me a list of X; Give me the instance of X that has id Y. You could easily have up to 3 … Continue reading Taming Combinatorial Explosions in SpecFlow
An excellent approach to product strategy
From UIE and also Medium, Melissa Perri (Product Management Consultant, etc.) has written a very interesting article on product strategy. It should grow out of business goals, and concentrate on outcomes rather than deliverables: What is Good Product Strategy?
How to make your code 500x faster*
(*Sorry, the techniques I describe don't apply in all circumstances.) This graph shows the time taken by 8 different ways of doing exactly the same thing: retrieving the details of 20,000 orders from a database. The taller the bar, the more time it took. Unfortunately I had to use a log scale because the range … Continue reading How to make your code 500x faster*
Designing your system for when it fails (which it will)
A couple of excellent related videos from Goto Conference 2017. Some highlights are below. Metrics are better than nothing, but some context will make them much more useful. (My queue is filling up - is that because more things are arriving than I'd expect, or things are leaving more slowly?) Alerts and logs better than … Continue reading Designing your system for when it fails (which it will)
Make your test data more vicious
Imagine you have some code that works with data from a table that stores customer orders. Unfortunately your code has a bug - instead of using CustomerId for something it uses OrderId instead (both are fields on the table). What's worse, your tests pass and the test coverage looks fine. What's up? I'll assume that … Continue reading Make your test data more vicious
Here be dragons: testing your error handling code
Who tests the error handling parts of their code? You might want to start doing this after watching this very interesting video from Goto Conference 2016. Among other things, the speaker summarises a paper that investigates catastrophic failures in things like MapReduce, Cassandra etc. 58% of the catastrophic failures could have been prevented by testing … Continue reading Here be dragons: testing your error handling code