Recently, Dutch television program Zembla aired a disturbing report about IT consultancy firm CapGemini. The episode, aptly called “The spaghetti code” shows the viewer in detail how companies such as CapGemini score multi-million Euro deals, while delivering software that isn’t even close to being considered good. These companies keep on getting major deals, while they continuously deliver bad software. So how is that possible?
IT consultancy back in 2000
It all reminded me of something I experienced back in university. When I was a sophomore, a job market was organized for students to find out what kind of jobs could be interesting for them. And for companies to market themselves, obviously. Nothing wrong with a good bit of matching supply and demand!
The job market hosted a lot of different companies. On one end of the spectrum there were the research institutes who seemed to have sent their shyest people to the fair, looking to score the interest of yet another beautiful mind. On the other end of the spectrum were the IT consultancy firms. With their slick suits and perfect brochures, they were looking to pique the interest of as many a student they could. IT was booming back in the early 2000’s.
So far, nothing was wrong. I could appreciate the diversity of jobs being offered, with the same degree of diversity in appearance somehow going along with it. What struck me as principally wrong only surfaced when I talked to some of the IT consultancy firms…
Cars, phones, laptops, even the rest of my university degree paid for by the company was offered to me, as long as I would agree to work for them part-time now and at least 3 years after I had gotten my degree. And it wasn’t just me they were offering this to, it was everyone. All students they could get their hands on got these sort of offers. Some of them may well have accepted the offer. After all, it sounds pretty nice, right? The problem here, for me, is that it just doesn’t add up.
I am a firm believer when it comes to information technology. It can, and does, help our lives get better every year. I am also not against making money. Even loads of money, no problem either. The point is that in my belief there should be a correlation between the amount of money earned and the value added. Yet these companies do not actually add value. They only make money, so much was already clear to me back then, as the papers were full of stories of IT consultancy firms failing to deliver the software they had promised. But they nevertheless send a hefty invoice.
The only reason to get as many students in, was to have them work projects that could be sold with extremely high margins. Even if only a few students would actually stay with them, they would already have earned at least twice as much as they would have to pay for the student’s education. And to me this seems wrong. Not because they earn money, but because the customer doesn’t know that students are doing the work, and that he’s paying a lot more than what he’s getting is worth.
IT consultancy these days
And that brings us back to 2015. A huge IT bubble and devastating financial crisis later, yet nothing has changed. Big IT consultancy firms still deliver bad software, and still earn a lot of money doing so. Zembla asked Graham Bolton, a software quality researcher, to take a look at one of the projects. As Graham stated, the quality was appalling.
The problem with software quality is a lot like the quality of a car. Most people take a look at the outside, sit in it for a while, make a short test drive and conclude that “this is a good car”, so they proceed to buy it. However, the true quality of a car is in intricate details about the engine, suspension, type of brakes used and so on and so on. You have to be an expert to know these things.
For software, it is the same. To really know the quality of software, you have to look under the hood. Because software quality, or rather the lack of it, only starts to show after a while. Like a low-quality car that requires major maintenance and replacements before it even does 50.000 kilometers, software with low quality will require a lot more effort to fix once defects are found. And that is not even taking into account evolving the software, which these days is a necessity since the world around us is changing very quickly and companies need to adapt.
Don’t play business poker
In the end it all boils down to the business model. The customer usually has a simple model; there is a business case which they want to implement. So certain costs should relate to certain gains in the organization, preferably yielding a profit or other advantage. Not so much for the supplier though…
IT consultancy firms earn their money per man hour. And so the more hours they spend, the more they earn. So it is not in their best interest to make sure that the customer gets the best business case possible. Rather, it is in their interest to get a business case that is just barely acceptable. But it is even more interesting for them, to play what I like to call business poker.
Business poker is played like this. First, the consultancy firm bets low, to make sure you stay on board. For most projects this means that they make sure they propose the lowest price possible. Alternatively, they could make an illegal price deal with competitors, as we see in other markets sometimes. Nevertheless, you go along, because it seems like you have a great hand!
And now they begin to slow-play their hand. Each little thing that is not exactly as stated in the initial requirements, will cost you a lot extra. And not only because they are slow-playing, but also because it will just take them forever to add it. Since the initial offer was so low, they will implement it with junior programmers, as Zembla has shown, which leads to hard-to-maintain software under the hood.
Finally, you are so committed to playing this hand, because you have already invested so much in this deal, you feel like you have to “play out your hand”. It is simply too costly to fold. And that is exactly what IT consultancy firms want. They want to hook you in a way you can’t get out of without throwing away a lot of money. It feels like it will be cheaper to call their hand, and have a slight chance of winning, then folding and knowing for sure you have lost your money.
Avoid misaligned business models
While the IT consultancy firms will probably never admit this, their goals are not aligned with yours. If it really comes down to it, they will choose their best interest over yours. And that is something that most companies would do, it is hard to blame them for it. So how can you tackle this misalignment in goals?
There is no way that a consultancy firm will be able to fully align their goal with yours, the business models just differ too much. But knowing this, means that you can at least dictate terms that force the consultancy firm has to deliver good, highly maintainable software. You can build this knowledge yourself, if you have at least intermediate programming knowledge. A great place to start is the book Code Complete 2nd Edition, which describes all of the important characteristics of well-written code in detail. Alternatively, if you do not want to internalize this knowledge or simply don’t have the means to, I highly recommend hiring a firm that can help you set up the right terms in your contract. There are many such firms, Graham Bolton’s SQMI comes to mind as well as QSM.
Ultimately, finding a solution that provides a completely aligned business goal is preferable. Companies that fully align their business model put themselves in a vulnerable position. They have to make sure you are successful in order to be successful themselves. This characteristic is more often found in smaller companies, which have a lot to gain from every customer that speaks highly of them, as well as companies that have a pricing model that scales with your actual use. Because if you are happy to use the software and it gives you an advantage, you will use it more, in which case it is fine for your supplier to earn more.