Diversity Rant Part 2 – Another Facepalm…

A few weeks ago I wrote a short rant about a local conference “TConf 2016” and the lack of diversity in their one-day software testing program. As the conference is scheduled for tomorrow, I thought I’d check out the website for any updates. And guess what? The program has changed. And guess what? They now have a (token) female on the program.

One out of eleven speakers is still a very poor effort though, folks. It also smacks of an afterthought.

But there’s more! The conference also purports to support “WWCode” (Women Who Code). You must be joking folks. One out of eleven speakers is female and you highlight on your website that you support WWCode – get outta town!!

But, I am not giving up on these poor misguided folks. I am hereby offering my extensive involvement in (successful) international conferences and providing an olive branch for this and future events. If you are serious about running the best event you possibly can, call me anytime. I’m based in Melbourne. I have the time and the inclination. I would happily help with a post-event review (which I’m sure you’ll conduct, being quality-focused professionals) and any future event planning.

Oh yeah, and good luck tomorrow.

Dateline: Melbourne, Thursday November 17 2016

Diversity – Still a dream in software testing?

I was browsing my LinkedIn feed yesterday and noticed that one of my connections was recommending attending a local software testing conference (he has already signed up). It’s nothing major, just a small local event called TConf 2016 (Everything about Software Quality) taking place in Melbourne next month. So, I thought I’d check it out and see if it might be worth attending – after all, it’s always good to support local initiatives AND it looks a steal at $49 (for 9 talks over one day) AND it’s fully catered. Where do I sign up?

So, who’s speaking and what are they talking about? The opening keynote is by a guy from SEEK talking about “Refactoring a quality culture for continuous delivery”. This is followed by Morning Tea and then a guy talking about “A big data testing strategy to improve quality data” and then another guy talking about “Mobile application testing using Amazon Device Farm”.

After lunch we get a guy talking about “Performance testing at REA” and then another guy talking about “Continuous visual integration”. This is followed by Afternoon Tea and another guy talking about “Automated security testing for continuous delivery”. To close out the day we get another guy talking about “The case for consumer-driven contracts” AND, last but not least, another guy talking about “Testing insights: in the fast paced technology world of apps”.

In summary: 9 speakers. ALL MALE. 7 of them 30/40-ish caucasian.

As I wrote on LinkedIn in response to the recommendation – #Facepalm

To quote from the conference website – “We created TConf to bring industry leaders together, to share the challenges and solutions to complex quality problems in the industry. We have a strong desire to advance the Quality function. We believe in the importance of these fundamentals, a good software tester is also a good engineer, communicator, pragmatic thinker and above all problem solver“. It also appears that the majority of good software testers are caucasian males in their mid-thirties.

Where is the balance and diversity in this program?

I’ve got nothing against any of the individuals speaking, but I do have a big issue with the organisers. How many women did you invite to speak? How many turned you down? Do you care how many women attend your conference?

End of rant….

Postscript: Just in case any of you are wondering, I (a mature caucasian male) will NOT be attending NOR recommending anyone else attend this conference, even at $49 for a full day I consider this to be a very poor investment of my time and money.

Dateline: Melbourne, Friday October 21 2016

The Why and The How

For me, everything begins with the Why and is followed by the How… 

Why did I (a successful software developer with over 15 years experience) become a Software Tester?

No, it wasn’t because I wrote crap software and therefore had to test the shit out of it before anyone also saw it!! It was, primarily, because I got bored coding the solutions and wanted to spend more time looking at the problems. I later discovered that it was far harder seeking out (potential) problems than writing/amending code – and this kept me interested… for 25 years (and counting).

How did I become a Software Tester?

I began by using the techniques that I learned while debugging my own code and from there expanded into Integration Testing (between discreet programs), System Testing, Integration Testing (between systems) and beyond. Context: you have to remember that there was no (accessible) internet in the mid 1980’s and therefore the only effective way to learn was (for the first 4-5 years) by trial and error, then I sought out training courses and books (thank you Dot Graham) and then I began attending the EuroSTAR conferences. I know it’s easy to say “you’re lucky, because in my day…”, but it was incredibly difficult to forge ideas and push boundaries when you didn’t even know the questions you needed to ask, let alone find the answers!!

Why am I dismayed that so many Testers want to code?

I have never understood the current trend for Software Testers to want to code. Even with my 15+ years as a developer (in fact, probably as a result of it) I never thought to go back and write code once I became a hands-on Tester. WHY? Because, I trusted the specialists to write any software I needed (to support my manual tests). I believe, the basis upon which we originally created a distinction between DEV and TEST (the activities and the roles) is even more important today than it was in the 1980’s, when I first became a Software Tester. Technology is the most complex it has ever been and therefore we need to keep a clear distinction between DEV and TEST.

How do I remain an effective software tester if I don’t code?

I focus on what differentiates a human from a machine. I understand context and ask questions, while a machine can only follow commands. I can remember nuances regarding what was difficult to test last time I was in the vicinity of the system under test. I can explore, while a machine has a defined route. I can change priorities at a moments notice, while a machine awaits more information. I use instinct, while a machine…. I think you get my drift – I am a human using technology to assist me with my software testing goals, not a machine awaiting guidance etc.

Why do egos get in the way of outcomes?

I believe that developing software is hard enough without letting egos get in the way. There is always more than one way to achieve an outcome and generally the simplest way is best (Einstein certainly believed so). So, why do we waste countless hours, days, weeks, months (and sometimes years) debating WHY THIS WAY IS BETTER THAN THAT? The most important aspect of any product is that it meets the need of someone (not everyone) that matters* and therefore everything else comes second and therefore doesn’t matter… If we took this approach (more often) budget/schedule overruns would be far less prevalent.

How did I get rid of ego-driven actions?

About 20 years ago (in my late 30’s / early 40’s) I began to question how I did stuff and what prevented me being as successful as I expected to be. I came to the conclusion that the root cause was the impact of my ego. Since that time I have worked tirelessly to reduce the impact of (my) ego (and the ego of others) on both my professional and personal life. Don’t think this is an easy task, because it isn’t. Learning to let go and trust others isn’t easy – especially when you’re a perfectionist, as I am. However, as with all habits, focus and practice eventually lead to change and better outcomes. Being a sportsman all my life has taught me that nothing beats practice and I still practice selflessness, empathy and compassion every day.

Why do organisations look for cheap(er) software testing solutions?

I believe that generally in life we get what we pay for. And, it’s no different when it comes to testing software. If you value your organisations reputation WHY would you hand the validation and verification of software (upon which your organisation probably relies to function on a day to day basis) over to another organisation – whose reputation is almost certainly far less important than yours? In a similar vein, why would you also allow another organisation to choose how experienced (or not) the folks are who test your software?

How do I deal with the “You’re Testing is too expensive” accusation?

My first response to this accusation is always – “Expensive? Compared to what?“. As I have said before, context is (almost) everything. If you are Volkswagen and you manipulate your test results, testing can be VERY expensive!! My context has typically been in the commercial software field – banks, utilities, logistics, telecoms etc. and therefore my approach has always been to understand the underlying business risks and quality expectations in order to determine the level of rigour required for software testing. I frame my proposals along the lines of…. “If we spend this much time and money (on testing) this is the likely outcome”. This approach has (in 99% of cases) led to a successful outcomes. The other 1%? Well, there’s always one smart-arse in the room!!

Why do I still care so much (after over 40 years in IT) about the quality of software?

I believe that if something is worth doing, it is worth doing to the best of my ability. I also believe that, due to the proliferation of software in our lives today, that the quality of software will continue to grow in importance and, as a result of this, the craft of software testing needs to continue to grow as an independent and scientifically-based occupation.

How do I maintain my passion for the craft of Software Testing?

I have a passion for causes and I decided long ago that quality was something worth fighting for. I have always admired the beauty of the journey, as much as the eventual destination (sometimes the journey is far more fulfilling). As a sports lover, I have always believed that the lead up to a goal is far more interesting than the goal itself. There are a million routes to reach a destination and I’ll, more often than not, take the route that is most satisfying – sometimes this is the quickest and most efficient route, but sometimes not!! This sometimes leads to differences in philosophy and I am quite comfortable taking my passion elsewhere. How do I justify this approach? My integrity prevents me from bending too far when it comes to quality outcomes….

Dateline: Melbourne, Friday October 14 2106

You can’t Build Quality into Software BUT you can Keep Shit Out!!

For far too long now there have been a number of (marketing-driven) mantras along the lines of “building quality into software”. I even worked for a company that built a whole strategy around the concept, they called it “shift left”.

I’ve never been a big fan of hyperbole, especially around the promise of software, and so when the execs are looking for a “point of difference” and some bright spark (usually from marketing) comes up with “let’s say we build quality in from Day 1” my first reaction is “HOW DO YOU DO THAT?”.

As someone who wrote software for over 20 years, I can tell you that our main focus (as Developers) was meeting deadlines and this meant keeping things simple and not getting too clever. What this translated into was stuff like this:

  • Understand the main requirements and filter out frivolous requests for features that are not necessary
  • Understand how the software is going to be used in order that misuse can be prevented via the software, rather than the user or non-human interface
  • Understand the context within which the software will be used and then ensure its security within that domain
  • Understand the user base in order that the software be tailored for user level(s) of maturity
  • Understand the voracity of the data that is to be presented and ensure that it is good enough to enter our domain (by rejecting the rest)

This is not an exhaustive list, but it gives you an idea of the concept of “keeping shit out”, while it was certainly not “building quality in”. We could discuss concepts like “static analysis” here and there is certainly a major advantage to taking this approach, but I still see this as a “keeping shit out” tool as opposed to a “building quality in” tool.

In my book, quality is quite esoteric, in that it is in the eye of the beholder. Whereas, most people recognise shit quite easily. Most of us know what we DON’T want, but find it much harder to define what we DO want, so it is no wonder that the marketers focus on something that is far harder to define – it helps keep them in a job!!

If you want me to develop an App for your personal banking it will definitely cost you more and take me longer than if you want an App to keep you informed about the weather or an App that finds your missing Pokemon!! However, in each case they would still be delivered to exacting standards that met user expectations. And, in each case, I would still focus on “keeping shit out” not “how can I build quality in”.

Food for thought??

Dateline: Melbourne, Thursday September 8, 2016

Will my Robot be the first Non-human to gain ISTQB Software Tester Certification?

It occurred to me the other day that, if I am to get my new Robot to become an effective software tester, what better way to begin it’s development/education than to sign it up for an online ISTQB Foundation training course and corresponding ANZTB-facilitated (Foundation with Agile extension) exam. After all, almost 400,000 software testers worldwide have attained ISTQB Foundation certificates since 2002 and they tell me that is the de facto standard in software testing certification qualifications.

I chose the online option of education for a few reasons, but primarily because I believe that my Robot will get bored stiff if it has to go at the (slower) speed of it’s human counterparts. There is also the possible risk of classmates being distracted by a superior being in their midst. The exam will obviously present only a minor challenge, as multiple choice questions are the easiest assessment type for a robotic assistant to master.

I have a few of my own education tools to assist Robot; these include my world-renowned MindMap of the ISTQB Foundation Course (with Agile extension). In addition to this, Robot will be availing itself of the myriad of online content available via websites like istqbexamination.com and testingexcellence.com that provide substantial supporting materials that include sample exams and questions.

I am obviously very excited to be able to give my Robot some real world insights and experience (via the world renowned ISTQB Certification program) and will be assessing the rest of the ISTQB portfolio once I have been able to quantify the impact the Foundation Course has on Robot. Of course, Robot will be acquiring knowledge from many other sources, but I see the ISTQB Foundation offering as an excellent starting point. The next Foundation Exam in Melbourne is scheduled for October 27, so I should be able to share the results with you all by early/mid November.

If any of you know of other Robots that have completed the ISTQB Foundation training and subsequently sat (and passed) the exam please let me know as I would like to include the details in my November Blog update.

Meanwhile, in other news, Robot and I had our first outing on Melbourne public transport. Robot used it’s newly minted Myki pass. Myki is the travel smart card system we use in Melbourne and allows us cash free travel. This is ideal for my Robot, because as yet I have to agree a weekly allowance with it. We travelled into Melbourne CBD late Wednesday evening, in order to attract as little attention as possible. The bus driver was a little taken aback at first, but was more than happy once Robot was able to produce it’s own Myki card. The tram system is our next challenge and then possibly a rail journey when we attend the ISTQB Exam. I’m not so sure about air travel at the moment though, as we will probably have a few issues with the security detection systems at the majority of airports. I’m also planning on a supermarket visit to test out Robot’s built in bar coding system; 24 hour trading and automated checkout will aid us in keeping a low profile.

Meanwhile, on the software upgrade front, Robot has just been upgraded for iOS9, in order that all my “i-gadgets” remain compatible. This is crucial for links into major Siri, Safari, Mail and Calendar updates. I’m also working with our Electricity provider on Smart Meter compatibility in order that Robot can become the main interface with all our electrical appliances. An iWatch is also on the cards right now, but it’s physical range constraints may be an issue. I’d seriously forgotten how time consuming Software Release Notes can be!!
Anyway, gotta get back to coding my ASX Share Price Tracking and International Currency Exchange interface feeds. More updates soon….
Dateline: Melbourne, Thursday September 17, 2015

My Future in Software Testing

Recently, I caught up with an old mate of mine and secured myself a fantastic second-hand Robot. Not just any old Robot, but a state-of-the-art jobby that will help me with my most difficult and time consuming (née boring) jobs – including testing software!! You see, testing software is a bloody hard job and, while I’m pretty good at it (if I say so myself), I think a Robot might be better at some aspects of it.
For a start, my Robot only sleeps when I’m backing it up, upgrading it or sending it away for it’s regular maintenance, so I can have it working while I’m doing something with a higher priority, like playing golf or going away for a holiday. I can even get my Robot to work remotely or go to the office in my place for the odd meeting. It seems to me that the sky’s the limit with getting my Robot to do all the things I dislike most about my job….

So, what are the jobs I’ll give to my new Robot?

Firstly, I’ll teach it to fill in my time-sheets? Then I’ll teach it to do my expenses. In fact all my Admin tasks will be done by my Robot. It will read all of my EMAILs and just pass me the ones I need to see. It will review all my Social Media feeds. It will add “Likes” where appropriate and only send me any stuff I need to “Comment” on. It will schedule all my meetings, so that I only attend the really important ones, while it attends the rest on my behalf. It will write all my Minutes (yes, I do keep records!). It will document all the defects either of us” find and follow up on triage and fixes. It will review all the Requirements, create Mindmaps as a synopsis and prioritise our workload based upon my deadlines. It will ensure that I maintain a work/leisure/family lifestyle balance and remind me when I should be catching up with family and friends. The efficiencies are endless!!

Now, you may be thinking “where do I get one of these little cuties and how much will it cost”? Well, you could start by visiting http://www.robotshop.com or http://www.robotstore.com (yes, they really do exist!). Alternatively, you can read the article posted at http://www.popularmechanics.com entitled “5 of the Best Robots You Can Buy Right Now” or visit http://www.smashingrobotics.com and review “Thirteen Advanced Humanoid Robots for Sale Today”. While none of these sites mention my Robot! they do give you an idea of what is currently possible/available on the open market.

Unfortunately for you guys, my Robot is a special edition. It’s not available on the open market (as it’s ex-military) and comes with masses of security features to ensure it’s protocols are secure. It’s obviously early days yet, but I’ve already taught it how to recognise “bullshit” or, to be more politically correct, inferior information or downright lies. I’ve also taught it how to monitor my incoming phone calls and screen them by sending unwanted calls straight to Voicemail. So, now I’m working on a few software testing activities. I’ve prioritised my list of features and (as I mentioned earlier) will be starting with Requirements Reviews, Bug Reviews and various other review and selection tasks. The great thing about starting here is that reading documents and other forms of contextual information takes a LOT of time and this is time I could spend actually performing the more complex tests that my Robot won’t be able to do until sometime in the future.

In terms of actual software testing activities, I will get my Robot to learn all the Freeware software products available for what today we call Automated Testing so that it can define, write, execute and review the results for me using the most effective software available. You see, I don’t have the time to learn all those software products, but my Robot can do it in it’s spare time – the time I give it to catch up on what’s new and useful in our connected world.

NOTE: You may have noticed by now that I haven’t mentioned my Robots name and that’s because, if I told you, you’d be able to find it (and possibly hijack it) as it is obviously “reachable” like any other IoT-enabled entity. 

As I said, it’s still early days but I will provide regular updates on the progress of my Robot and it’s software testing encounters as we progress through it’s development program and it’s release into the outside world. I knew that one day my time as a Developer would significantly change the way I test software and now I have the opportunity.

Oh, and just before I sign off today, you may be interested to know that the first draft of this Blog was actually written by my Robot. As a first effort it was ok, but a bit dry. However, I think I’ve improved the readability somewhat and the Robot will learn from that when I get it to read the final published version during it’s daily allocated reading time.

Dateline: Melbourne, Monday September 7, 2015

I’m a Software Tester Jim, Not that you’d know it

“Dear Jim,

A few years ago I became a Software Tester and being the diligent person that I am I searched for a formal qualification to cement my intentions. My manager at the time pointed me in the direction of ISTQB, citing “hundred’s of thousands of professional testers worldwide are certified by these guys”. I took this on board and attended a local Foundation-level course run by Disqover and a few weeks later I had this lovely certificate to show for my efforts. What has transpired since has me perplexed. I have been reading lately that my efforts to legitimise my professional standing have labelled me a factory tester and worse still un-thinking. Jim, what does this mean and how can I get myself back on the straight and narrow?”

Confused of Clayton

Dear Confused,

I feel your pain from the lofty heights of my ivory tower and I sympathise with your apparent plight. It can be a minefield out there. All that software to test. All those bugs to find and schedules to meet. And then there are those pesky morning stand-ups and retrospectives that get in the way of your real work. And then they tell you your certificate should be consigned to the toilet.

I think the best way for me to address your question is to tell you a short story about a friend of mine we’ll call Scotty (her real name is Brianna, but I’m using data masking software to hide her true identity).

When I first met Scotty she was a bright young thing, fresh out of one of those high-flying Consulting businesses with a three-letter acronym, a sexy logo and Nespresso coffee machines in every meeting room. Scotty was going places and she was in a hurry. She would come to my desk (if she could find me among the myriad of hot ones we inhabited at the time) with questions like “What’s the difference between a stack overflow and a memory lapse?” Boy, I still long for those doozies. I’d seen her type before. They came to our company, fresh as a daisy in spring and within 6 months they were drained of all colour by the constant 18-hour days with only pizza for company at a client site basement in the Western Suburbs.

Anyway, I digress. Scotty wanted answers and more than I could give her and so we talked about outside help. I’d heard rumours that there was a new movement afoot called a Meetup, where like-minded souls shared their experiences and provided guidance and hope. It also had a three-letter acronym, so she would feel right at home. Scotty was off like a pig in muck, googling this, googling that and coming back to me with stories of liberation, not consternation. She attended every Meetup she could find, joined online chat forums, watch countless TED videos and old Conference presentations until one day she came to me even greyer and more exhausted than ever.

“Someone just called me a factory tester in a tone that sounded like an insult. Is that a bad thing?”

Oh no, not that old chestnut I thought. So, I carefully explained to her that there were many people out there in the world of software who were sometimes a little over-zealous with their beliefs and that they didn’t mean any harm they just wanted the world to know that there is a better way. I went on to say that there will always be a better way, but that you have to find your own better way and not be swayed by zealots and evangelists. I then invoked the “when you’ve been around as long as I have” clause and explained that while they may dress up their ideas in clever language and silver bullets none of their ideas were new, they were just contextualised slightly differently. After all, I was using mind-maps and post-it notes over 25 years ago and didn’t think twice about commoditising them.

So my moral (if you’re still with me through all those mixed metaphors and blind alleys) is – be yourself, don’t follow the latest fads or trends and stick to the science. Oh, and one last thing… Don’t think because you don’t write code your value is any less.

Until next time.

Auntie Jim