17 September 2017

Commit to Review

  It starts, as these things often do, with a tweet:
  Which led me on to saying:
  Because there are many ways of using and abusing git rebase, I thought it a good idea to explain the use case I'm referring to in more detail.

  We work on branches, and once we've got them to the point where the work can go into master, we raise a merge request for it. This merge request acts as our code review stage. Questions will be asked, improvements will be made and it'll eventually be merged. My suggestion is, just before the merge is done, this is where an interactive rebase (or squash or amend, whatever change to the history is appropriate) and force push should be done in order to get the commit history clean.
  You often see commits that just say "typo" or "bug fix". If you are really lucky, you get a commit that actually has a message body, but often it is describing what has been done, not why it was done. By being able to review commit messages, point out these issues and have them be fixed, you will be teaching and learning what makes useful commit messages, and your log will be an easy to read story of the changes made.

  Code reviews are a way people learn to write good code. How are people going to learn how to write good commit messages if they can't also be reviewed?

P.S. My go to guide for how to write commit messages is by Chris Beams and can be found here

22 July 2017

An example failure

There is a problem I see when people write features. We all know, examples are powerful. They can make an explanation come to life in the mind of a reader. But, I too often see features written with the examples, but no explanations. Let us assume you are teaching someone how powers work in mathematics.

You would first explain what a power is:

Given a number
When I calculate a power of this number
Then it is multiplied by itself the power number of times to get the answer

Then you would insert examples:

Given the number <number>
When I calculate it to the power <power>
Then <number> is multiplied by itself the <power> number of times to get <answer>
| number | power | answer |
| 2           | 2         | 4           |
| 3           | 5         | 243       |

More often than not, the explanation behind the examples is missing:

Given the number <number>
When I calculate it to the power <power>
Then I get the answer <answer>
| number | power | answer |
| 2           | 2         | 4           |
| 3           | 5         | 243       |

The latter scenario does not explain the relation between the values in the examples, so how is someone supposed to write something that will work for values other than those given? You can't. Yes, in the earlier example you have to know what multiplication is, but that is a concept that would be explained elsewhere (no teacher would try to teach powers before teaching multiplication).

Remember, examples are concrete representations of a concept, but they are not the explanation of a conept in and of themselves.

At least I didn't admit this publicy where anyone could see it

It started on the testers.io slack. Heather Reid was saying how great it is that she is talking to her developers asking "So what do you want to see from testing?" and getting well thought out and useful answers. I wondered what I'd have said had I been asked, which led to this:
and then this:
The original version of the post was going to be me working through just that, but I had an epiphany whilst writing it and I know full well why I can't articulate it. It is because I don't wish to admit to the stupid (and I use the dictionary meaning here, i.e. lacking in intelligence or common sense) reason as to why I don't want anything from a tester.

It is simply, I'm big-headed and think I don't need the help of a tester because I was/am one.

Not only is this incredibly insulting to my friends and colleagues (to whom I apologise unreservedly), it is demonstrably false (even in the short time I've been developing, our testers has saved me from putting out bugs).

How could I possibly think that?

I believe it is because I don't like not being able to do things. Because I don't like to admit I can't do all the things I used to, I stubbornly try and do all the things I used to. And so, because I used to be a tester, I therefore don't need a tester.

So Angie, the barrier?

I'm a fool.

15 February 2017

A Sense of Community

I won't be attending Testbash Brighton this year. It'll be the first Brighton one I've missed since they started in 2013. I encourage anyone who can get to a Testbash to do so, purely for the number of amazing people you get to meet. Below is a list of those people I have met over 5 Testbashes (4 Brighton and 1 Manchester). I hope this shows the value of these conferences and gets across just how much fun they are and why I'm saddened by not being at Brighton this year.

Rosie Sherry
Danny Dainton
Dan Ashby
Mark Tomlinson
Richard Bradshaw
Heather Reid
Rosie Hamilton
Claire Reckless
James Christie
Vernon Richards
Abby Bangser
Martin Hynie
Ioana Serban
Matt Heusser
Matthew Bretten
Tracy Baxter
Kristine Corbus
Michael Bolton
Gem Hill
James Bach
Karin Basel
Simon Knight
Beren Van Daele
Kim Knup
Emma Keaveny
Lisa Crispin
Vera Gehlen-Baum
Kirstin Kerr
Simon Tomes
Jess Ingrassellino
Cassandra Leung
Marcel Gehlen
Patrick Prill
Dominic Kua
Nicola Owen
Gwen Diagram
David Williams
Tammy Lewis
Deborah Lee
Matt Frampton
Clement Pickering
Colin Piper
Mark Winteringham
Del Dewar
Neil Studd
Gary Shepard
Aine McGovern
Neil McCarthy
Ash Winter
Dan Caseley
Nathan Weller
Alan Richardson
Paul Berry
Rob Lambert
Adam Knight
Anna Baik
Daniel Billing
Chris Simms
John Stephenson
Elizabeth Fiennes
Raul Nicholas
Philip De Rop
Pekka Marjamaki
Huib Schoots

This is obviously not a complete list. I do tend to get a bit... far from sober at these events, so if I have met you and your name is not on here, I'm blaming loud venues and nice beers for your name not appearing.

See you in Manchester?