It’s exciting to land a big client. It’s not just a matter of making your numbers for that quarter – it’s also the sense you get that you’ve moved up a notch. If your typical customers are small or mid-sized businesses, it can be a nice confirmation of your application’s value in the marketplace, and a glimpse of more opportunities out there for selling to enterprises.
But in the rush to close a deal with a large client, there’s a lot of pressure to agree to coding changes, and it’s easy to underestimate the depth of coding it will take to go live. I’ve worked on software projects that were the result of taking on a big clients, and there were definitely frustrations in having to tack on lots of custom code. I remember one of our consultants (and as a consultant, he really didn’t have a dog in the game) astutely pointing out that, at the cost of the custom code and database changes we had to implement, we could have offered a vanilla version of our product at a much lower price.
A good team will be able to pull this off, but there’s an opportunity cost to writing code this way. You’ll likely push the timeline back on other important projects, and you’ll pile up some technical debt, too. Then of course, when the next big client comes along, it’s almost guaranteed that they’ll have a completely different set of requirements.
There are a few other pitfalls, too. A large client may pressure you to conform to their practices rather than ones that work for your organization. They may require you to invest in the software tools that they use, and those tools may be costly for a small software vendor. (For an enterprise, of course, those costs are negligible.) But even free tools can add an additional layer of complexity and duplication of effort to your work processes. The effort spent accommodating another set of tools or processes can become a liability as you take on new clients.
The most obvious problem with taking on an enterprise “cash cow” is that that cow could wander over to greener pastures, even if completely satisfied with your solution. Enterprises are made up of large contingents of management, often with conflicting goals and alliances. As such, don’t underestimate their ability to make a poor decision.
Even more likely, a large company that understands how dependent your organization is on them will leverage that fact when negotiating new contracts or services.
Preventing this from happening requires recognizing when one client has too much leverage over your company, and may mean saying no to some potentially lucrative relationships. But having a diversified client portfolio where no single account represents more than 20-30% of your revenues is a much more stable situation.
A survey of businesses in Alberta, Canada found that companies with a more-diverse client portfolio made more revenues and grew more consistently. “While almost seven in 10 fully diversified firms achieved high revenue and profit growth in the past three years, fewer than two in 10 firms that were not diversified managed to do the same.”
It’s not easy making that first sale to an enterprise customer (this blog gives some reasons why that is the case.) When you do, congratulations (and some beers) are in order, but after that? Be prepared for the hard work of managing the fallout.