At the next exit, turn left: Shift-Left

Written on
21 February 2024
by
Richard Dekker
Software Tester
Share
When you read a Gantt chart from a typical software project, you'll often find test activities somewhere on the right side, near the live date. The shift-left approach is actually looking for opportunities to carry out tests at an earlier stage. Actually, it makes sense when you think about it. The sooner you look for problems and errors, the easier and cheaper it is to fix them. That is the core of the shift-left approach. Test earlier and test more often. In this blog, I'll tell you more about it.

What does a bathroom have to do with this?

Last summer, our bathroom was extensively overhauled. Move walls, install floor heating, new floors and, of course, tiling. We chose the option “We vacation, you work hard”. While we were in France with the motorhome, we received a call from our hard-working contractor:

  • “I'm taking a good look at those tiles you want in the shower” (oh my, what's wrong)
  • “And I would like to have a chat” (Well, burn out. I wonder how much more work this will cost)
  • “Because they are not baked flat and are rather small, it will not be possible to put them straight on the wall. You will occasionally see a jump and therefore the joint won't be perfectly straight either.” (phew that's not so bad!!)

For us, this was not an issue. The contractor said that customers sometimes only see problems afterwards, when everything is ready. So it's quite logical that he just gave a call based on what he had experienced before.

In the IT world, it's not uncommon for a customer to suddenly run into a problem where we almost roll our eyes and think: “Couldn't you think of that before?”. But then I remember that my client isn't busy with software development every day. Sometimes I really need to take the step to explain things or suggest options.

Just like with my contractor. He could easily assume that I, the customer who chose the tiles, would understand how they would get on the wall. But he decided to do another check. That small effort of 10 minutes ensured a satisfied customer and prevented possible hassles. Because imagine if I didn't even want those tiles to be slightly crooked? They weren't installed yet, so there was still time to possibly choose other tiles. Perhaps not the easiest route, but certainly cheaper than tearing everything off later and installing new tiles.

Shift-left approach & bathroom renovation

This is an example of the “shift-left” approach to bathroom renovation.. The sooner you identify potential problems, the easier and cheaper it is to solve them. Imagine if the contractor had not called us and we would only review the work after the holidays. Then we had roughly three scenarios:

  1. No problem, I love the tiles and I expected those few crooked tiles myself.
  2. When I get home, I see crooked tiles and the contractor explains why this is the case. I remember that he's actually right, that it's my fault and I accept how it looks now.
  3. I find the crooked tiles unacceptable and want new ones. There's going to be a debate about who's to blame. Can't the contractor tile? Is this part of the tiles I chose? Is this a bug or a feature? The contractor has 3 extra days of work to remove the tiles and stick others. The trial over who pays is still ongoing...

Option 3 is what we're all afraid of. Bug fixing is expensive and even though most bugs don't take three days in software development, you'll be surprised how much time they take. Plus, how often deadlines have to be postponed because issues don't come to light until late in the process.

Shift-Left approach in practice

How does this work in practice? There are various examples of shift-left in practice. As a software tester, I have a rather low level of trust. This means that when I see requirements, I do not assume that those requirements are 100% correct. Even if a customer or business analyst has thought about it extensively. Double-checking requirements can prevent problems later in the process.

What also often happens is that we intuitively wait to test until the entire flow is ready. We then think that we are making good use of the available time, because at the end we can carry out as many checks as possible in the shortest possible time. The disadvantage of this is that we encounter problems at a late stage and therefore deadlines are at risk. That's why it's sometimes necessary to go against our intuition.

Sticking to principles such as “Test early and test often” can help us do this.

Agile testing & shift-left

Back in the day, when we were still working in waterfall projects, they had already discovered the shift-left approach, but they didn't call it that yet. A check moment was also built in for each phase.