Sunday, November 27, 2016

On the death of Fidel Castro

I have complex thoughts on the death of Cuban dictator Fidel Castro this weekend. Once upon a time there was a man who was so outraged by the Batista dictatorship that he rallied his people to revolution.

People flocked to him because people in desperation yearn for change, because change brings hope of a better future.

Unfortunately in what's a common pattern, such regimes bring a little change, before becoming stuck.

Suddenly all the talk of power for the people, is seen to really become power for one man and a limited family of cronies.

Karl Marx's writing, the original Communist, are about trying to create a fairer society.  One where there is less of a rift between the rich, and the poor workers who create that wealth.  They're not books written by a power-crazed individual.  He lived in a squalor that was responsible for the premature death of four of his seven children.  Fundamentally his writing yearns to address that terrible injustice.

Unfortunately, his writing is idea fuel for revolution against unjust regimes and those which create real suffering in the general population.  But we've seen such 'Communism' mis-sold throughout the world. No country which has called itself Communist has really addressed injustice or delivered on the ideals of a democratically elected and accountable government.

The litmus tests for such revolutions are if one man or his family stays in power too long, or if one family controls too much. No amount of 'on behalf of the people' can smokescreen this.

If a revolution promises to lift you out of squalor, but you find you still have to queue down the street for bread, something is wrong.

Especially if those in power, talking about 'for the people' live in excessive luxury.

Right now, a revolution of sorts has happened in America with the election of Trump.  A lot of talk from people who voted for him about how he will bring change, from not being part of the status quo.  They've placed a lot of hope in him, hope that he will bring change.

Never stop yearning for a better tomorrow, but be careful who you trust to deliver.

Friday, November 11, 2016

Sophie says, "buckle up"

It's been a difficult week for a lot of people, with the news of the victory of Donald Trump as future President of America.

To see someone get elected as the head of the most powerful country on earth, off the back of such a divisive platform is terrifying.  Much like Brexit earlier this year, the victory of a far-right agenda has sent a signal that it's okay to openly practice prejudice.

Many women, Mexicans, blacks, liberals, gays and transgender are terrified.  Trumps platform has sought to control and limit their freedom.  Sadly incidents like the one Angie Jones tweeted below have been common,

One of the reasons that my blog has been quiet of late is that I've been working on a book.  It's about a girl who moves to the Moon, gets bullied, and thinks about moving back to Earth.

Rereading a chapter, I thought it'd be good to share - it works out of context of the story.  Enjoy...

I got up early to write this – been thinking all night.  My CompPad is still not connecting, but last night felt like being reunited with two of my dearest friends.

My grandfather has a love of books – the old kind made of paper – and he has rooms just filled with them, on every kind of bookshelf that will fit.  He's passed on a lot to me, but I could only bring two.  Just two!  Being reunited with my case means they're back in my hands, and I sat up reading parts of them again.

'I Know Why The Caged Bird Sings' is a book by Maya Angelou, which is all an autobiography of her as a girl growing up in America during the early 20th Century.  It was a very different America to the one we visited in '81.  Being black was basically to be a second class citizen, little better than a slave.  And yet she and her family refuse to be beaten.

Being part-black, I'm quite glad that experience is so alien to me today.  I don't think our family ever settled in America.  We came from Jamaica – grandad keeps a lot of histories he's been told, and I really wish I'd written down.  He says there are stories of how when our family first moved to Britain in the mid-20th Century, there was a bit of segregation.  It wasn't unusual for there to be signs for 'no coloureds', and people did their best to avoid having a black neighbour.  I've read the famous speech from a British politician talking about 'rivers of blood' over the tension of having black people living with white as equals – it's really an ugly and shameful period.

My other book is about a scarier period, there was a very scary regime called Fascism which involved half the world in a war in the 20th Century.  It was vicious and brutal – it waged war, and systematically exterminated anyone they saw as different to them.

Against all that brutality was a girl, just a girl.  A girl who wanted to stand apart.  If I could have a time machine, and meet just one person, it'd be her, Sophie Scholl.

Whilst the world was locked in one of the largest wars in history, she and her friends believed one of the most brutal and twisted regimes the world had ever seen could be undermined through non-violence and the truth.  Whilst others capitated, she resisted, and paid with her life.

In an era where depravity and genocide could show how low we could sink as a species, she showed the world how brightly we can shine.  She was just a girl.  A girl who wasn't afraid.

And she was right – non-violence was the way.  We saw it with Mahatma Gandhi taking on the British Empire, to secure freedom for India.  We saw it with Martin Luther King taking on the fight for civil rights which would consign Maya Angelou's experiences to the dustbin.  We've seen it in this century with Mesi Mawiyah and Namdak Bhuti.

She showed the way.  And damn it, I feel I know what she'd say to me about my situation – not to run away.  To give it my all, and try my best to settle here.

She'd also not be too impressed about the whole business of me punching one of my classmates.  It's not really very non-violence of me is it?

No – I'm not sure her or Maya would think much of me wanting to run away.  And I know they're right.  Here goes!

Read more about the amazing Sophie Scholl, and other brave members of the White Rose here.

Be inspired by Maya Angelou's I Know Why The Caged Bird Sings here.

Now playing - "Don't dream it's over", Crowded House

Monday, October 24, 2016

Culture - the "pass the salt" incident

I was incredibly fortunate to go to lunch last week with Kate Falanga, Parimala Hariprasad, and Stephen Janaway who were all in town for the amazing WeTest conference.

As you can imagine, there was an incredible amount of "shop talk" about testing, but a small incident, which proved to be thought provoking.  Food arrived.  I needed salt.  It was on the other side of the table.  Controversial!

So I asked Kate if she'd pass the salt, immediately wishing I hadn't.  For a moment, she waited for me to take it from her hand, before putting it down on the table.  I realised me waiting for her to put it down might have seemed a little rude, so explained myself.

"In England", then eyed up Stephen, who's from a different part, "or at least in the North of England, it's considered to be bad manners to take the salt from someone's hand".  I thought back to being childed by my grandmother (we called her "Grandee"), a veritable clone of the Dowager Countess from Downton Abbey, right down to the rules of serving tea.  [By the way, even workmen were served tea in china cups, due to her strict NO MUGS rule]

Supposedly salt was linked to warding off the devil, so to take it from someone's hand invited ill fortune.

This intrigued Parimala, where in India it's considered polite to put either salt or a knife down, rather than to pass directly.  Similar to me, she's raised up to consider how spilling salt is considered to be ... well she called it "inauspicious", I went "doom".

Representing as we did America, India, the UK and New Zealand, this led to a lot of discussion about culture, and how as a international community we need to not take lightly or assume someone from another part of the rules has our same values.

When something as trivial as passing the salt has different rules of ettiquette for different parts of the world, it's a reminder to take nothing for granted.  When talking internationally, it's always good to talk about our relative cultures - what's considered rude, what's considered polite - to avoid misunderstandings.  This is something we should be doing, whether we're talking about ourselves in a multinational setting, or about ourselves within a cross-discipline setting.  Sharing of our values, helps to form a common understanding of core values.

Sunday, October 16, 2016

You don't always need a justification for a test ...

I was just listening to a Neil Degrasse Tyson lecture whilst out in my garden stargazing, and he had this amazing story I knew needed to be added here.

As you can imagine - there's huge competition for time on the space-based Hubble telescope.  Not just anyone can use time on it - and typically you need to put forward a business case for it, something like,

  • We want to observe the following nebula, to look for any stars which might be in the process of forming
  • We want to look at this star over the following days to look for exoplanets
  • We want to get a better view of the following supernova remnant

Obviously the director in charge has to queue up these requests as best they can, but they're also allowed a small about of time, that they can allocate for any whimsical reason they want.

So the director tried something radical - they'd pick an area of the sky and stare at it for 10 days.  And for something even more daring, they're try to point away from the spiral of the Milky Way (our galaxy), away from any star clusters, or galactic clusters.

They'd try to find the most boring part of the sky, and just see what's there.

The area they looked at represents the amount of sky you can see through a narrow eyehole in a needle ... at arms length.

And what did they find?  Galaxies ... thousands of them ...

This went on to become known as the Hubble deep field, and for some is considered one of the most important discoveries in the lifetime of the telescope.  It confirmed and made real what we'd suspected about the sheer size of the cosmos in which we live in.  Every one of those points of light is a galaxy, comparable to our own of hundreds of billions of stars.  So many thousands of galaxies, all seen through the eye of a far away needle.

And this discovery wasn't one that you could have been able to justify the business case for.  It was whimsical, but NASA allowed it, because they know sometimes you find amazing things, just giving some time for curiosity.

It reminds me of something James Bach told me earlier in the year, you don't always need a justification for a test.  Indeed sometimes if you're about to try something and someone says "what problems are you expecting", it's easy to talk yourself out of it.  But it's important to give ourselves a little bit of time to try things out.

As long as it's not an unmanageable portion of your day, there's always time for a "I just wonder if..." experiment.

Now Playing: "The Universal", Blur

Saturday, October 8, 2016

Practice what you preach!

I think sometimes life has a weird symmetry - this week had an excellent example of this.

My son is in his first year at Victoria University in Wellington - he's done well, but not sure if he wants to do a second year without a considerable rethink.

He recently had an essay for Classics returned to him with some comments, for which he was allowed to make changes and resubmit.  He got a C-, but as he pointed out "it's still a pass", and wasn't so keen to redo it.

I had a chat with him - it's so rare to get useful feedback on something we've done.  Of course we all really want to be "done with" projects like essays or documents so we can just move on with our lives.  But applying those comments would help him think about what he's written, how to present a better argument, how to do it better.

Without feedback, we keep doing what we're currently doing, but it's unlikely to get any better.  We read through the comments together, he formed a plan of what to do, and resubmitted it yesterday.

During the week, one of our lead developers emailed me about my blog series looking at Java basics.  There were a few things I'd done which whilst not big things, would be considered bad practice in the team.  Would I be interested in the feedback?

My stomach turned - it might mean a lot of rewrites, and I'm working on my astronomy series right now.  And yet, although that series is meant only as an introduction to some key concepts, I wanted it to be as good as I can get it, without compromising the "sense of fun" I like to include in most of my writing.  [Although of course, this wasn't much "fun"]

So of course I wanted to know.  His comments were useful, because it made be think about some aspects I'd not thought about in detail,

  • Class names should be Capitalised, this makes it easier to tell them apart when declaring.
  • All code blocks should use braces "{...}" to contain statements, even if just one line.  I'd not used them in a few  DiceClass methods just to show that they're not mandatory (if you have a single line).  I changed all bar on, just to prove this, added a comment to the relevant blog, then never missed the braces afterwards
  • Some methods such as diceOnOrOver returned an integer, but should return a boolean.  I'd cheated there, because I knew I'd wanted to add the integer returned at a later date, but he was right, it should return true or false.  I know it's tempting to go "but I just need ...", but it can be a bit of a slippery slope.
  • I was using ArrayList, but I should declare them as a List not ArrayList, because ArrayList is a kind of List, and you want to keep the List interface.  StackOverflow discusses this here.

All told, with changes, retesting, committing to GitHub and blog modifications it took a few hours, but it did reinforce those points.  I don't think I'll ever forget to use a capital for a class name ever again now.

It's also a reminder to hold ourselves to the advice that we council others - and yes it's so rare to get good feedback, it's always useful to apply it so we learn from it and make the best essay/document/code we can.

Now playing: "River deep, mountain high", Ike & Tina Turner

Friday, September 30, 2016

Disposable automation ...

I had an interesting opportunity to play around with something useful today ...

We're currently doing a couple of sprints to change some look and feel to enhance our web page for mobile.  It's been a weird mix of interesting, and boring so far, and I want to share an approach I've taken.

Because our goal for our sprint is to tidy up the mobile experience, which involves a huge amount of changes, I'm being for once somewhat overwhelmed by builds being dropped into my test environment.

I came up with a checklist of things to cover which includes,

  • confirm all key fields are present
  • confirm error text when mandatory fields missing
  • confirm error text when junk input given for fields
  • confirm error text when duplicate entries (re-enter your password etc) don't match
  • do all this on multiple browsers
  • do all this for mobile and desktop settings

At the end of day one, we'd had 3 builds delivered.  I'd been really dutiful and methodical for the first build.  But by human nature my concentration was going on the huge checklist.

My concern was by end of sprint I might be getting a bit blase about it all.  Ironically it's the end of sprint the find details of the checklist matter the most.

The problem is our automation checks we can perform business flows, it doesn't check the fine details of what's on the page.  But that was kind of what I needed.

So I wrote my own using WebDriver, but here's the thing, it'd replicate all the above checks, but I acknowledged this was only to help us through the next few sprints whilst we put it through some UI changes.  Afterwards it would be just deleted and never used again, because it didn't make sense as ongoing regression.

It'd do all the checklist "ticks" for me, but leave the browser in a state for me to run my eye over for anything out of place, and allow me to do a little bit of playing.

Cool features it had would be,

  • Using multiple drivers for different browsers, so it'd check across browsers for me (mobile-proper would still be manual, but hey, it's freeing my time)
  • I would use the Selenium setSize command to mimic either mobile or desktop settings in my tests

I time-boxed myself to no more than 2 hours on this - I delivered what I wanted in 1.5 hours.  As usual I had a lot of ideas for enhancements, but reminded myself that would take me away from testing (which I was trying to save time on in the first place), and ultimately these pages being checked for content in this depth were not the kind of critical tests we'd need within our suite.

As expected, we had another 4 releases today, and it allowed me to keep better pace with them, whilst focusing my time on key changes for each task as delivered.

It was a good example of how you can knowingly break a lot of key rules of automation (I for instance use methods, but not the kind I break down to use on more detailed functional testing).  And yet keep to the fundamental one - let automation deal with anything which looks like an item to check, and leave more freedom to explore to the manual tester.

Now Playing: "History", The Verve

Thursday, September 22, 2016

Some personal thoughts on agile and letting go

I've been thinking a lot in this vein the last week, and really wanted to commit these thoughts down electronically.

I've spoken in the past about quite a traumatic event in my early 20s where I saw someone killed.  As you can imagine, it wasn't very nice, and there was a whole personal journey dealing with the post-traumatic stress of that.

The last few years however, I was very aware of something that lingered from that experience.  What is so troubling about an incident like that where you have flashbacks, is the sense of only witnessing, and being powerless.  It's had a knock on effect on my whole life where I always try and do something over nothing, because then I felt a sign of ownership in whatever outcome occured.

This is me on waterfall

In waterfall, that means I was a really proactive, guard-dog of testing and all aspects of quality (this really isn't the blog to have the argument about quality though guys).  Playing the superhero role whenever I could, I was always trying to be that guy who makes things happen, that guy who fixes it all.

In our agile transition at work, I've had some really great mentors.  First of all, don't get ideas that out of waterfall I don't care.  But I've learned to focus much more on those items which are expected of me, and doing the best I can about them, and learning to escalate up any problem which falls outside of that.  And to do that in such a way that it doesn't feel like I'm "telling tales" on other people - to escalate in a supportive way, but acknowledging I'm not always the right person to solve all the project's problems.

Sometimes to fix something properly, good intentions aren't enough, and you need the appropriate expertise, and I've learned to set aside my male pride and accept it's not always me.  [You should see my attempts at plumbing before I realised this]

But most of all, I've learned with fortnightly sprints, I don't have to be the attack terrier trying to keep everything on track.  We can and should be daring and try new things, even challenge "sacred" taboos every so often - the worst that could happen is we mess up a sprint, all of 2 weeks lost.  But just maybe we might also find a better way to do something which will help sprint-after-sprint.  Or learn a good reason for why we always should do X that no training course could have got across.

Far from not caring, it's allowed me to focus my energy so much more on areas I'm relied on much more, and actually enjoy what I'm doing.  But it's allowed me to accept that letting things play out isn't always a fraught case of life-and-death.  And to me, that's something more important than you can imagine.

Now Playing: "Sulphur", The House Of Love