Due to COVID 19, all workshops and courses are remotely given for the foreseeable future.

Janet Gregory: Agile Consultant, Trainer, Advisor, Writer, Speaker

For several years now, I have been tweeting or mentioning in conversations that I don’t like the term ‘shift-left’, and keep saying that I have to write a blog post on it. This week, one of my class participants called me on it, so I guess the time has come.

I think the first time I heard the term was in a talk by Paul Gerrard – perhaps a webinar for EuroStar in 2014.  In the notes I made at the time, I have this sentence “

Shift Left ??? – redistributing test activities … same thing we have been saying … why is he calling it shift left? I don’t understand this at all.”

I still have those same feelings to this day. There were lots of things in his talk I liked, but I got stuck on the phrase. The term didn’t resonate with me then, and still doesn’t.

By shifting left, it feels like the development process is a linear process, and it’s not. Lisa Crispin and I have been talking about testing early for years in our presentations, in our books, etc.

I think a better model is one that Ellen Gottesdiener and Mary Gorman use in their book Discover to Deliver, 2012. It represents an infinite loop, confirming continuously – which is how we really develop software.

discover-deliver2

 

Dan Ashby took a similar approach using this diagram in his blog post https://danashby.co.uk/2016/10/19/continuous-testing-in-devops/

Dev-Ops2

What I fear may happen using the term ‘shift-left’, is that some people will misunderstand the concept and go back to big upfront requirements that need to be tested before coding is even started. Shift-left also doesn’t include the idea of DevOps, so people have started saying shift-right, or shift-outwards.

I personally think better terms are testing continuously or holistic testing, taking into account whatever your context may be.

Facebook
Twitter
LinkedIn
Email

7 comments on “Shift Left – Why I Don’t Like the Term

  1. Good point. The shift-left term would only be true at one point in that continuum. It can also be used as an educate-management device.

    Once my manager asked “When do start testing?” My reflexive and somewhat surprised response was “Oh, we are supposed to stop testing?”

    Big projects with big up front processes and narrowly defined roles are rife with built-in waste.

    If course we always test. What else?

    • I like the term continuous testing as well, but I’m also think that we need to think about it holistically as well. Consider all the parts and how they fit together.

  2. Thanks for writing this! I’ve used the term “Shift-Left” on my last project to help introduce the idea of testing early and often. Working with the Dev Lead, we were able to have automated unit tests and higher level behavioral tests created and used throughout the execution of product construction. In that sense, we tested continuously which is what we, as a community, have been pursuing for a long time. One project at at time, I’m getting there; occasionally it needs a helping hand from short, engaging phrases.

    • I’m glad you enjoyed the post. Once you get your first success, it becomes easier to say the next time and have people participate. You are correct about finding the right words for your team. I caution to pick them carefully and make sure that people understand so they don’t put their own interpretation on. Slowly slowly, we are making progress.

Leave a Reply

Your email address will not be published. Required fields are marked *