Dear Savi,

I Think We Screwed Up Testing

Got a problem that needs solving?

I am a PM from Buffalo NY. I work in a financial services company. We are 11 months into an ERP replacement project with Salesforce.

The initial stages were positive – working out that we needed to move off our current ERP, working out what we needed, selecting, and onboarding a Salesforce ISV who is very strong in the market.

Even the opening stages of an Agile development cycle were solid – good sprints, high delivery, the right set of people watching demos and running blocks of UAT.

Initially, I could see the problem mounting when we started to see a more-than-average amount of queries being raised in UAT. But mostly these weren’t bugs – we were sweeping through items we knew we needed on top of what was a comprehensive set of RfP requirements.

But cash flow is good, and the company made a commitment upfront to getting this right even if it meant more investment. Our team was all warned against a half-cooked solution on Go Live Day.

Sprints are now completed, and we are into testing End 2 End. In short, after a couple of heavy months, I packed up last Friday, sat at my home desk and stared out the window and thought:

“I think we screwed up testing.”

You see, what we saw nothing of in UAT was whole batches of bugs hidden by the fact we were not using our entire dataset to test. We had uploaded a good size dummy dataset, focussing on a high volume of dummy transactions records. We were most focussed on how fast the system was going to process what is for us millions of transactions per months.

What the entire team did not see, me especially, is that the day-to-day elements of the system that need to fit our data standards – pipeline, real-time calculation, and forecasting – are all failing as we put the system together with our real data.

And it will fail again and again because half of the things we need aren’t there yet.

We’ve had summit meetings and Salesforce have thrown heavyweight resources at the problem: adding new user stories, helping us work out our own network of business rules.

But we can’t see our way out right now. We’ve done weeks of testing that has no predictable end and now our team is causing errors and sharing feedback that is wrong or confused. It’s making the problem worse.

What do you do in a scenario like this when smart people who are available and do test just aren’t coming up with the answers?

We are now under major pressure from our Board – getting it right did also mean not wasting the company’s money forever. We need a way out fast, and I just can’t see what fixes this.

Buried beneath data in Buffalo

GetSavi response:

Dear Buried beneath data in Buffalo.

Ok. Deep breaths. Testing is never easy and if one thing usually knocks it off course, it’s data.

It is a lesson learned. Your team is not the first to over-trust dummy data when you are reviewing development and conducting unit testing (testing the system in unit parts not as a whole)

But your team will remember this. That is a positive in the dilemma you currently face.

And don’t beat yourself up too much – you did have the right idea about ensuring your high-volume, financial processing got attention from the outset.

Testing is one of two areas in technology project management where you can find yourself deep underground for a period searching for a way out and through to Go Live.

Data is the other one.

Think about this as process not product for a (short) period. Both components must work well together, especially in your sector when one mistake can cost millions of dollars.

What I mean is: you are going to need to work like the amateur engineer, taking each system process apart with Salesforce to understand the root cause problems – why the engine isn’t going back together and purring into life. And you will then need to rebuild your testing pace again.

Senior management appreciate root cause thinking even if they don’t need the entire life story of what is failing. So, consider surfacing some of what you and Salesforce are discovering. This can reassure them you are the right people for the job, you are just hitting problems at depth.

Don’t refer too much back to your specification at this point, unless it is to pinpoint what you intended in any area of your system functionality. However, do ask more questions on what has been built, on its coding, on what it relies in the system. This is invaluable because with systems and data together, one extra option set value that has not been considered can cause a testing failure.

Accept that in certain areas this means more development to fix data-led problems and thus, more testing time, yet you should monitor each new change and its positive impact on fixing the problem. This is truly like untying a large knot – you find tiny moments where the problem loosens until you are holding the long piece of open rope in your hands.

Focus your team on more nor less discipline, cooler not hotter heads. A good way to is create if you did not create this before, or refine if you did, your acceptance criteria – what must work for the area of development to pass testing. And ask your team to cater for the edge cases in this work – those examples or scenarios you do not get every day which arise and are part of your business.

I say that as a piece of software with common data can often test out well, but it is when it hits the edge cases that it starts to produce failures.

And don’t be too humble to go back to your current system and if another 3rd party to your current provider. Albeit old or behind your company’s expectations, that system works right now! If they have created system logic descriptions for these problems and this was not shared or was shelved, it may well reveal some answers. Your current provider solved these problems themselves once upon a time, remember or at least some of them.

Finally, and it is an abstract point – the world is telling you to simplify. You may simply be seeking to build in or make work, those data or those scenarios that are not worth the effort, not producing the revenue or impact, versus all those hours tinkering away to get them functioning in the new system.

Make sure you are not simply doing this to make your lives easier. However, sure, removing some of the problem errors, subtracting these data examples from your testing, may well be the best thing to do so you have a smaller list of core scenarios to prove out in your final testing.

Appreciate the high endeavour of what you are doing. You are putting an 1100cc engine back together. You are making a fortress out of little sets of Lego bricks. Sometimes this takes time.

I hope we’ve helped here.

SHARE THIS STORY

Share your thoughts!

Add a Comment

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

Related Letters

Q-U-A-L-I-T-Y

Our whole team is writing to you here. In protest! Not against you (!) but against our current supplier. We will save their shame by

Read More »
Shopping Basket