When the going gets tough – the tough get going. This next story is probably up there for the craziest experience I’ve ever had on a software project.
Have you ever been on a project where everything you do is scrutinized and the slightest misstep could be your last one?
A few years ago, I started on the United Credit project where things were immediately weird. On my very first call with the client, a direct competitor, we’ll call them Digital Works, joined us as well.
Dave, our client CEO at United Credit, let us know that this was a sizable project that he intended us and Digital Works to divide the work. This was not typical, and I wasn’t sure that Rajiv, CEO at Informulate, and the rest of our team were aware that this was the plan.
We hopped on a solo call with Dave to explain our concerns and hesitations, and to make sure that he knew this was likely not the best way to approach the project. The division of labor, while he might have been doing it to make it easier, could actually cause more headaches down the line.
Dave explained that he had been burned by a previous vendor who left him with an unfinished codebase after 18 months, so his decision to hire two software companies was intentional and gave him some insurance in the situation.
We understood, his mind was made up and the project commenced!
Right off the bat, we picked a development framework to use, and our friends at Digital Works immediately disagreed. What started off as a difference in opinion devolved into an all-out headbutting match with neither side compromising.
This was exactly the nightmare I had feared.
There was only one way to resolve this: pitch our frameworks to the client and see which one they preferred. We felt confident in our approach; it was modern, innovative, and met current industry standards while Digital Works preferred an older framework that they were comfortable with, but was outdated years ago.
It got more heated than I think anyone anticipated. In the end, our approach was stronger, and Dave decided in our favor. Of course, that was the first of many battles.
We broke up the feature set between the two teams and got to work. Over the next four months, we knew we would be scrutinized so we made an extra effort on quality throughout the project. Practically every meeting was stressful.
As deadlines drew near, client testing revealed a couple of dozen bugs for us, which we resolved quickly.
For our competitor, it was a disastrous story.
Their code was barely functional, and client testing revealed over six hundred defects. We knew right away that there was no way they were going to on time or on budget. The Digital Works team was in way over their heads. They clearly needed our help, and Dave appointed us to review their code.
We knew there would be a blowback, but we went ahead and helped them identify and resolve issues. This dragged on for another three months, and Digital Works chafed under the oversight from a competitor.
This added more fuel to the fire, and the meetings got more toxic, less productive, and very expensive.
Fun times must end though and eventually, Dave made the decision to cut Digital Works from the project altogether. Great! But then our team had to inherit all of their broken code and it took almost six extra months to clean up/repair it all.
Now, six years later, United Credit is still going strong and our partnership has taken their digital transformation to the next level.
All in all, there was a lot we learned. First, if you’re not a technical person, it can be hard to vet vendors, even harder if you have trust issues from past vendors burning you.
Even though this experience was stressful for all concerned, Dave got the result he wanted – even though it cost twice as much. I mean, imagine if Dave had hired only Digital Works? He’d have been burned twice on the same project and remained in software purgatory for who knows how much longer.
So all’s well that ends well… I guess! It was a real nightmare, but now I feel better equipped to handle tough situations.
Story by Tristan Mills, Tech Lead/Solution Architect @ Informulate
(Client and competitor names changed for privacy)