Thursday, January 7, 2016

Why I am tired of having to justify testing's existence ...


It sometimes seems that there is nothing more turbulent and egotistical than the music industry.  I know this having friends who've been in bands, and indeed following the troubled life of some of my favourite bands like The House Of Love.

It's an all too familiar scenario - put so brilliantly to celluloid in films like The Commitments and This Is Spinal Tap.  Recurring motifs seem to be,

  • The guitarist who thinks the songs should be built around his sound
  • The singer who things they ARE the band
  • The bassist who just does their own thing
  • The drummer who gets dirty looks and the blame if someone messes up a song, and who occasionally somebody would be cheaper to replace with a drum machine.


Egos galore - everyone thinking that it's their instrument and talent which is/should be dominant, and the cause of success.  The hardened truth is that the band's sound is a contribution of all the talent at work, not just one element ...

  • A Freddie Mercury song doesn't sound quite the same as a Queen song (and they certainly don't sound the same without him).
  • The Smiths last album didn't sound quite the same without the guitar of Johnny Marr.  Likewise for The House Of Love when Terry Bickers left.

Much like for agile teams, there is no "magic line-up" for a good band.  The one thing that seems to be agreed though is you need some kind of variety - even an acapella band which has only singers has singers with different vocal ranges!

Rivalling the music industry for turbulence though has to be the IT industry, especially with agile groups.  This really shouldn't be a surprise - the same human dynamics and egos are in play, the fact that it's a different field changes the context a little, but there are surprising similarities.  As was reinforced to me this morning.




Bob Marshall generally tends to talk a lot about his values of non-violent communication when it comes to dealing with developers such as himself.  I've however found his attitude a bit frustrating, summed up best by Lisa Crispin ...





I have to say Lisa's responses really summed up a lot of frustration out there.  I've noticed a bit of behaviour similar to this on Bob's Twitter before, where I've felt he's been playing the role of prima donna developer a bit too much, and has shown behaviour which has felt like being a borderline troll at times.  This is especially as he believes in non-violent communication ... but only when it applies to managers telling developers what to do.  Ultimately though, I'm reminded of the pig Napoleon from Animal Farm, who wants to do away with manager-led dictatorships, and replace it with a developer-centric one.

I want to be fair to Bob, because he did do a very similar Tweet about "funny how few devs/managers question the basic premise of their trade", however this was very after-the-fact, and did not include the tirade against testers which I've found a little too frequent on his Twitter of late.

I'm sorry, but I side with Lisa on the complete frustration on this one.  I have had to come up across similar attitudes, and often from developers about how little testers contribute.  And I'm getting a bit tired of having to have it - ultimately the best way to judge the value of testers is to try delivering to production without one, and let me know how that works out for you.  Most of the cautionary tales around the IT industry tend to revolve around "we didn't test enough ... but got it into production on time".  But we still seem to occasionally have someone who thinks it won't happen to them or that "testing costs too much, and gives very little value".

What we're left with then is very much the rock star band model above.  We have a small group, but big egos.  We're used to the idea of the lead singer / "software manager" who thinks they run the group, and their word is law.  Sadly Bob is not alone amongst the developers I've met (thankfully far from all), who is a guitarist who thinks the best kind of band would ONLY have people on guitars, because guitars are cool.


Sadly I feel sometimes we testers are considered to be the Spinal Tap drummer of the group, who can be easily replaced, perhaps with a machine (sound familiar?).

One problem with perceptions of testing is one I've been talking a lot on Twitter about.  When I learned software engineering from a book by Michael J. Pont (I am a programmer remember), I still remember the opening which talked about increasing complexity in software (and this was back in the 90s).  The core to being a software engineer is about managing that complexity and breaking it down, further and further until you were left with something simple.

Now - and this might be a shock - but the same is true of testing.  Testing is a big, complex, amorphous heap of unknown.  As testers we use experience, inquiry and investigation of every possible aspect of a piece of software and form a strategy to break this down.  I was pleased to read Sami Soderblom's post which repeated this theme.

You might use a matrix or a mind map or even a test planning tool.  But sooner or later you've broken it down to the simplest unit you can - a test scenario.  And sadly on seeing this simple, individual test scenario, the reaction is all too similar "anyone could do that" (execute the test scenario).  Without appreciating that the skill in testing is being able to apply strategy to come up with those scenario.

Working alongside good agile teams, I'm often hit with the same comment from developers - that we test scenarios and find problems they just wouldn't have thought of doing.  This is because knowing the strategy and application of heuristics is as skilled as any subtle programming language.  And many of us have learned this by using software over decades.  And like any trademan, what we do looks incredibly simple, until you have someone inexperienced try it.

But for some reason we don't see this in reverse.  If a developer broke her hand, and I had to help her meet a deadline by typing the last line of code,

obj.sum = value_1 + value_2;

It could be argued that the line is very simple, and easy to understand.  So maybe development isn't so hard.  Heck - maybe because I could type that line, I should say we don't need developers any more if it's so simple?


Fundamentally any team like any band needs some kind of diversity of skill within it.  Coding is an obvious must.  Testing not so obvious - but believe me, if you have no-one skilled in testing, eventually you'll know about it, and it probably won't be pleasant.

Finally ...

I got the following response from Bob this evening ... obviously he has some super-secret recipe for success if you'd like to try it ...

Or else he's just leading a lot of his followers into dangerous waters ...


Additional reading

Since I've written this article, a number of people have given me similar articles they've blogged about, and I'm going to include them here ...




28 comments:

  1. Nice post and an annoyance that most testers will have experienced at some point. I don't take comments like Bob Marshall's too seriously. When tools sprang up creating code directly from requirements and design it would have been equally ridiculous to ask "Do we still need developers?".

    As a side note, I believe Ministry got on stage with 9 guitars creating a huge wall of sound in their days. They still also had a heavy bass and drums though. What experienced bands going for speed know that in order to be considered fast you need to have breaks or slow passages to contrast the speed. Maybe it's an idea to contrast good and bad development against testing and vice versa and see how that may help.

    ReplyDelete
  2. That Bob Marshall comment sounds exactly like the kind of bullshit that thoughtless managers who have never done a decent day's work in their lives come up with.

    Someone I know was at a company when it took on a high-level manager he'd worked under before. This guy was an unpleasant and not very useful creature, disliked by almost everyone, but still covered in that magical Teflon that made him look like some kind of genius to all the other idiot managers.

    He gave his first talk to the workers and said "We're not taking enough risks - we're doing too much testing"

    His first project destroyed everything so badly that the company were hauled up before the industry ombudsman.

    ReplyDelete
    Replies
    1. Thanks Robert.

      Yeah - I've always found Bob Marshall's comments on Twitter to be wierd. I've tried to engage with him and his philosophy, but as mentioned I just find him to behave in very much the manner of an internet troll. To the point where I've just given up after his last comment and unfollowed him - something I'm really loath to do. But really I feel he has a weird idea that agile = dev centric.

      It's more annoying because he has a lot of developer followers, and is setting an example that programmers can be spoilt prima donnas, because "they're the talent". I can tell you in my youth I was one of them, and it's not very helpful to your career - no-one like to work with someone who is difficult unless you are that good there's no-one else.

      Delete
  3. Great post. That comment from Bob annoyed me intensely. For someone who supposedly thinks a lot, he seems to have failed completely to understand his metier. IMO we'll automate coding before we automate testing.

    ReplyDelete
    Replies
    1. Thanks Paul - yup, really annoyed me too, hence the unusually emotional post from me. I've tried to engage and give him the benefit of the doubt, but his voice is one many testers, esp Lisa Crispin has had to battle a lot.

      Delete
  4. Really good post. I share your frustration too.

    Unfortunately we (testers) need to look at ourselves too. There is quite a few 'black sheep' which indeed don't add much to agile teams...

    ReplyDelete
    Replies
    1. If you've seen my Project Balto challenge, I absolutely believe that testing needs to evolve, change and be adaptive. We can't just keep doing a model of testing and justifying it by "we've always done that".

      BUT - and I tried really hard with Bob - he's not saying "testers need to change", much of what he says (as the last response shows) is "we don't need any testers or testing". Okay then, good luck Bob.

      Delete
    2. Yeah, you are right. It seems like Bob has never worked with good testers and he's view is skewed somehow.

      Btw. he may be happy temporarily that no one asks 'what if' questions, but he will have to answer them eventually.

      Delete
  5. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. As a tester I have critical thinking skills. And thus I'm very suspect of any individual like Bob who goes "testers - you don't need testers, I don't" without backing a statement with a lot more of a breakdown of his approach or even some evidence of some kind.

      So far he has said he doesn't need testers, or anything "testing-like", but is very quiet of what he does use. My critical thinking sense has a needle, and it's pointing towards BULLSHIT.

      Delete
  6. I often find Bob's comments about stuff useful, which is why I continue to read his blog and follow his twitter even when he comes out with stuff like the above. He frequently comes up with stuff that causes me to think about why I/we work in certain ways, though he can be blind to his own accidental trolling.

    I kind of disagree with the 'breaking it down' parts above. I see (some parts of) testing as understanding the complexity using mental models, rather than (just) simplifying our understanding (reductionism). It's a small difference but worth considering - I like a whole-view (holistic) approach to system testing that complements developer-led testing (units). I think the larger value of testers is here.

    Nice post by the way - love the metaphor

    Dave

    ReplyDelete
    Replies
    1. Hey Dave - thanks for your comments, and useful to get another opinion.

      Before this I was hoping to do a series on testing strategy in a few months to cover "how we break down testing into components". Where I'll be able to go into this in more detail. It'll probably be put into Testing Circus. And I would love your response to it when it's done there.

      Delete
    2. Sounds like something I'd be very interested in - will look forward to it :)

      Delete
  7. Nice analogy Mike - really made me smile. Giving it some thought, perhaps testing is less like drumming and more like being behind the mixing desk, making the mediocre appear amazing.

    No one acknowledges a sound engineer or a producer when they do their job exceptionally well, but when they 'phone it in'...well...perhaps testing just needs a few more of its own Mark Ronsons?

    ReplyDelete
  8. NB: as a developer of the 90's, who didn't have the luxury of testing, business analysis, agile frameworks, I can't understand why anyone would want to head in a direction away from supported development. I certainly didn't feel like a rock star writing my own code, testing my own code, debugging my own code, deploying my own code live, trying to work out why my code didn't work in live when it worked on a test box (on my own), fixing the live config/db issues on my own and getting a bollocking on my own.

    Truly, it wasn't, a golden age!

    ReplyDelete
    Replies
    1. No it wasn't. I remember a tester = "some developer who hasn't got work to do", and it was as random as that.

      If there really was a method to get rid of testing as a principle, you know I'd be interested. I'd want to know how it'd work, and how to make it happen. But I'd want serious proof and an actual plan.

      I'm an ex-developer, so if testing vanished I could turn back into one. But I chose testing. I chose to do testing because it interested and challenged me more, and because I found that developers weren't really very good at it, but with my science background I was a decent way there.

      Delete
    2. That is "no it wasn't a golden age".

      Delete
  9. Thank you, Mike! Back in 2000, Ron Jeffries told me face to face that "Anyone on an XP team who doesn't write production code is a useless fifth wheel". Given how much he helped with my first book _Testing XP_, I think I can safely say he changed his outlook. I hope Bob Marshall will too, or at least, adopt his "non-violent communication" attitude when he thinks about testers in the future. I have lost the respect I had for Bob, I must say.

    ReplyDelete
    Replies
    1. Thanks Lisa. What annoys me is forever having people come up with this comment returns us to having to justify our existence in software development. Instead of talking more about where we need to take testing.

      Delete
  10. Hi Mike, I don't find this stuff raises my hackles as much as it used to, although I don't agree with Bob either.

    I blogged about my reaction to his #NoTesting thread a year or so ago here: http://qahiccupps.blogspot.co.uk/2014/12/gotesting.html

    ReplyDelete
    Replies
    1. Great post Thomas, and thanks for bringing it up - I've tweeted about it myself.

      Delete
  11. Hi, Mike.

    Yep, sometimes we choose to respond to trolls but it is annoying.

    I saw the "Flowchain sensei" being silly like that the last year and engaged him via twitter as well. The guy was evasive. He failed to provide his definition of testing. His statement was that dev teams "should just get it right and there will be no waste like testing".
    So I blogged: Why Can’t They Just Get It Right? http://automation-beyond.com/2014/11/27/why-cant-they-just-get-it-right/

    ReplyDelete
  12. I almost laughed at Bob's comment until I remembered it's not nice to laugh at ignorance.

    Who are the Royal 'we' in his questions? Interesting how he didn't ask "Do I / Could I" questions.

    How has he come to the conclusion of "so few testers"? How many testers are there in the world and how many has he actually asked?

    He claims things worked just fine without a tester but failed to quantify that statement. My mind boggles. I'll take that to mean he was able to flush the loo all by himself to make his bullshit disappear without requiring the services of a tester.

    ReplyDelete
    Replies
    1. Thanks. I think we need testers - I've said why in my book How To Test.

      I am however always open to new ideas. I wasn't sure of agile at first when I first read about it. But really what I need from Bob is more case studies and less jingo-ism. I'm aware since posting of a lot of people wanting more information about it, but he never comes up with anything beyond "I have never needed testing".

      Delete
  13. This comment has been removed by the author.

    ReplyDelete
  14. Risky betting with a better bet.
    Holiday Palace It is another site that has launched a variety of online casino games, a variety of new games, which can make the bet to meet you every game. Our online casino games site is ready to offer real money to bet. You can use the service at any time and want to play it just you have only internet. Many casino games that bring amazing entertainment to you. We offer you to enjoy online casino games as fully as you want, because our online casino is open every time. So players are betting on our online casino every game and every time. Enjoy your favorite bets and earn lots of gold from our games. All of our online casino games are designed in real-time to allow players to place live casino games online. With all the live betting you will not miss the fun. Go with your favorite online casino games and favorite sites. Holiday Palace

    ReplyDelete