an obession with first principles

Opposite Incentives In Client/Vendor Relationships

Posted: Monday Sep 17th | Author: JohnO | Filed under: Leadership, Management | View Comments

I’ve been an individual contributor software consultant/vendor for roughly ten years now. In every industry vendor/client relationships require careful management and can easily fall apart. However, I think there is something uniquely difficult when it comes to software. The software industry is barely getting started when compared to other industries like commercial manufacturing (Henry Ford), or civil engineering (the Romans). That something is a massive knowledge gap. And in my opinion it eventually creates opposite incentives.

The reality that software has zero tangible presence to humans in this world is what creates this massive knowledge gap. We’re barely are the beginning of creating truly re-usable and truly working building blocks of the software industry. In construction you take for granted that you just have nails, screws, 2x4s, 4x4s, as well as building codes designed by mechanical engineers that say “You will not do …” and “You will do …” otherwise we slap your project with a failing grade.

We don’t have nails, screws, and 2x4s. We might have something called `Screw`, and within it there is every single possible option a screw could have (length, thread width and spacing, head type, finish, which metal it is) and every single time you want to use `Screw` you need to make all those decisions. Some you care about, some you don’t, and if you’ve ever wandered the halls of Home Depot some things you’ve never even heard of before!

When it comes to the building code your client decides what you’re building and whether you get a passing grade. But they have no idea what is involved with their project. After all, they’re the client and they’re paying you — if they could do it themselves they would! Knowledge gap. On the other hand, if they were looking at a mass produced children’s plastic toy, with some common sense, they’d roughly know how it was put together, how many pieces there are, and have a feel for how “cheap” or “sturdy” it may be based on how heavy and pliable it is.

The client, due to this knowledge gap, is generally unable to give you the most important pieces of information you’re going to need to make something that just works. This is why our software elders always say: “Build the first iteration knowing you’re going to throw it away.” Because they know this knowledge gap is real, and its better starting over with what you’ve learned that trying to fight against the grain of what you’ve built.

First Order Incentives

Clients pay you to just do what they want. They have zero incentive to understand what their vendors are doing. They just want results. Developers have every incentive to believe their clients, that they are a good and truthful people who understand their business, their processes, and what they want at the end of the day.

Second Order Incentives

When developers finally get to the underlying truth of the matter, they have every incentive to explain what is happening to their client. However, the client has no incentive to believe the developer understands their issues — just do what I say. Otherwise, it would be an admission that they were wrong. I’m not paying you to tell me I’m wrong about my own things! This isn’t a car where you can take out the broken water pump and show them, or point to the transmission fluid leaking out through a hole in the line. The client has every incentive to believe in forward progress just like every other industry. After you’ve instructed the factory to create one widget, making 1,000 widgets is a lot faster and easier right? There is no incentive to go back to the drawing board.

Ultimately

It comes down to trust, just like every other relationship. But money is involved here. With a giant knowledge gap and money flowing in one direction that trust can quickly erode. All of us find ourselves keeping up these relationships. Niceties and codes of conducts are absolutely necessary, but those cannot fix the structural imbalances in incentives. It is easy to pick on details and specific events for when trust was eroded. But if you don’t realize the game you’re playing you can only keep juggling for so long.

In my opinion, there is one more structure we need to give to this relationship. One that alters incentives. And that is a baseline understanding of being partners with your clients. Not just a vendor.