Even when it appears to be blue skies and smooth sailing, storms can show up. How you react in those situations makes or breaks relationships. Integrity is everything. Every leader will get punched in the mouth at some point, what defines them is how they come back.
This story begins about a decade ago – Pearson & Hardman had been a client of ours for over a year. During which time, we had build great credibility with on-time delivery and high quality. We then earned a larger project – migrating an old legacy application that was core to their business.
We headed into this new frontier with confidence and Rebecca – the project leader from Pearson & Hardman – had high expectations from us.
Informulate had put together a team of 5 of our most-trusted and skilled developers and for the first few months, everything was going great. Demos looked good and features worked as desired. P & H was pleased, new features were coming out at a consistent rate, and it was a great success. Blue skies and smooth sailing.
Then we started User Acceptance Testing (UAT). For the first time, the application was set up in a test environment with real production data and we were hit with a cascade of issues.
Initially, we thought it was just a few code bugs that we could take care of, but as the client kept testing, we kept finding more issues. Every week, more were discovered.
Things slowed down. First by 2-3 weeks. Then 4 and 5 weeks.
We were drowning. The planned QA timeline and budget for UAT had doubled.
As you can expect, Rebecca and her team were frustrated at the continued extension of the timeline and the extra billing they would have to incur to finish. We were not meeting the deadlines we’d set, and while there were valid reasons for the issues, repeating the same story was starting to sound like excuses.
Finally, Rebecca called me into a meeting – and I was dreading it.
“Hey Rajiv, you know we like and trust your team, you’ve done great work so far” She started.
“But I need to know what’s going on right now,” she started, “We’re five weeks past the deadline and I feel like we hear the same thing every week.”
“I understand, Rebecca. Sometimes things take longer than they should, but 5 weeks is outside the norm. Honestly, the way that development was going, this has taken us by surprise – let me dig into it in more detail and can I get back to you later this week?.”
“Of course. You know we appreciate everything you’ve helped us with before, the last year or two we’ve increased the volume of work because its been a great relationship. You and your team really seem to understand our business. But right now, I gotta tell ya – you are getting attention and it’s not the right kind. We’re still a small business and outside of employee payroll, the next biggest chunk of expenses is you.”
She was not letting up either, “The CEO is asking me questions, and I don’t know how else to respond. Budget and timeline are overshot, and we cannot keep resetting every week.”
I was chastened. Just a few weeks ago, this was a very trusted client whom we have worked very hard to build a relationship with. Who would have recommended us freely to their peers.
And now this, so I had to get to the bottom of this.
In my analysis, I learned of some testing shortcomings. But the smoking gun was the data. There was a lot of bad data from the old system that pre-dated our work, but we were only discovering them AFTER we had built these new features.
Worse, there we had many different types of data integrity issues, with dozens of individual data mismatches for each type. There was no way to batch correct them or work particularly efficiently.
Now that I was caught up, I head back to Rebecca. “So Rebecca – as promised, I dug into the issues. Some of the issues are code bugs but most of it appears to be caused by bad data in the database.”
“Okay, I’m not too technical but why didn’t you guys expect that?”
“Fair question, your database has millions of records, so it wouldn’t have been possible for us to verify integrity on every row of data in the estimation process. However, we should have warned you that data issues could have existed.”
She wasn’t softening. “Exactly – you did the analysis. You did the estimate. You missed the deadline and now my team is paying for the overages. And I’m feeling the heat from the CEO for overseeing this. ”
“Rebecca – I understand. While we didn’t cause the issues, it was our responsibility to set the right expectations and raise the potential risks. For projects with existing data, there are unknowns involved and I take full responsibility.”
“I appreciate you saying that, Rajiv. But what do we do now?”
It was time to step up. “Given our history and relationship, I’m going to do what it takes to make it right. As of today, I’m going to stop any further billing on this project. We will pause UAT, I will keep the full team allocated and we will test and resolve all issues.”
“That… sounds good. So another week you think?”
“I will be honest, Rebecca – I don’t know. We are seeing new data integrity issues as we dig deeper because the old system wasn’t designed with the better constraints we have now. I’m going to say 4 weeks and we will get back if we get done earlier”
“So you’re not billing us for a whole month?”
“That’s right. We will get it resolved at no cost”
With that, we dove straight into getting their system up to standard and ready to launch. Detail oriented mode on full blast. We brainstormed potential issues, created scripts to find bad data and more scripts to fix them.
We completed the project in just over a month and relaunched UAT. This time, their testing was successful and we finally launched the application.
Where are they now? With our collaboration, Pearson & Hardman has grown to over 3 continents and hundreds of employees. And 10 years later, we are still working together.
So – what’s the Takeaway?
Most importantly, set your client’s expectations reasonably and don’t set yourself up for failure before you begin. Raise risks and propose mitigation.
If we had been a little more attentive before, we could’ve done a better job setting the timeline and saved ourselves the stress of disappointing a good client.
And if you make a commitment (even a bad one) you have to step up and make it right.
Treat your client fairly, and assess your responsibilities objectively. If you don’t meet your own standards – make it right!
Story by Rajiv Menon, CEO and Founder @ Informulate
(Client and character names changed for privacy)