Show Me the Money

... so went the famous line from the movie "Jerry McGuire".  And while it may be appropriate for a sports agent, it really doesn't sound as good when I hear the salepeople in our company say it (fortunately, never directly to the customer).  As a large company (C-COR has over a thousand employees), we are multi-faceted ... we have a hardware division, a software division and several mechanisms for making money via services.  In all these cases, what the sales group really means is "give me some money", with the often unspoken corollary of "and I'll give you something of equal value".  The rest of this article focuses on software businesses and what happens when a customer offers money for something you don't have.

Joel Spolsky makes a pretty good case against being a "consultingware" company in his article "Set Your Priorities", but for uISVs and sometimes for larger companies as well, there are several cases where custom development makes perfect business sense (in fact, I hope I'm not just stating the obvious).  Here are a couple of case studies that illustrate the points I'll make later in the article.

I joined my last employer shortly after a shake-up that almost killed the company.  The founder was ousted and, while the venture capitalists still wanted to make their money back, they stated clearly that the company would have to return to profitability on a cash basis.  (As an aside, this is a great way to run a business ... things went really well until we were acquired and received another capital infusion.  Now this business, which was once 87 people, is down to 13 and only operating in maintenance mode).  We had a couple problems with this;  We needed operating capital to continue to run the business and we needed to enhance our current technology and upgrade our products to continue to remain competitive.  The answer to our problem was a custom hardware/software development contract for a large trading system.  Not only did this contract pay for itself, it funded the rest of the company for two years, made us cashflow positive, profitable and provided us with intellectual Property (IP) that could be used for our main-line business (the contract specifically limited the use of the IP only within the customer's business domain).  This was a no-brainer!

The second example happened at my current employer within the last month.  A customer made a comment to one of our sales engineers about a big problem they were having and that they had ear-marked $4M to solve the problem.  Unfortunately, we don't have a product that addresses their problem ... but we did have products that were in the same problem domain and, in fact, collected some of the data that was required for the full solution.  Should we agree to provide this feature to our potential customer?  Here are several key factors;  The customer wants the problem solved, but doesn't have the domain expertise, our company has 4 or 5 of the top experts in the world in this problem domain, we were able to verify that many of our other customers have the same problem but don't know it.  This is another no-brainer!  In fact, we filed a provisional patent application on the process (Note that for uISVs, patents may not make a lot of sense, but for large corporations they're very important ... see Eric Sink's excellent article titled "Five Things Every Micro-ISV Should Know About Intellectual Property").

Here's a list of checklist of questions to ask yourself when presented with a custom development request:

  • Does this development provide features that fit into my current shrinkwrap product(s)?
  • Does this development provide IP that I can use within my current shrinkwrap product(s)?
  • Can this development be completed as a complementary product to my current shrinkwrap product(s)?
  • Can this development be completed as a product that provides a secondary line of business?
  • Does this development provide my company with new core competencies?
  • Do I have the domain knowledge to solve my customer's problem?
  • Is the money too good to pass up?
  • Can this development be completed without disturbing my core business?

In my first case study, the answer's to 2, 3, 4, 5, 7 and 8 were yes ... with the limitation that the IP created could not be used to compete against the customer in their specific market.  The first important point here is that selling the IP to a problem domain to the customer in its entirety not only limits your ability to use that IP in other problem domains, but can in some cases limit your ability to enhance your primary offering.  This leaves you analyzing every feature decision you make for any of your company's products in light of that one-time sale.  When turning over IP as part of a contract, you should always limit the ownership to the customer's market and/or specify an expiration time for the IP agreement.  The second important point is that the company gained new competencies that could be used in other parts of the business ... in fact, when the contract was completed, the engineering team that was hired and assigned to the project began work on additional products for our core business.

In the second case study, the answers to 1, 3, 6 and 7 were yes.  There's only one key point here;  If a custom development can be completed in a way that provides a new feature to a product, or a complementary product, it usually makes sense accept the money.  In essence, the customer is paying you to accelerate the delivery of a feature you will produce anyway.  In our case, we didn't recognize the need without the customer's input, but it has obviously been there for some time and would have been requested by another customer sooner or later.

Since I'm attempting to bootstrap a uISV of my own, I only have two criteria for custom development requests ... Can I reuse the code that's produced to complete my product?  Does this contract move me towards being able to work on my uISV full-time?  In fact, I'm actively looking for this type of work specifically to accelerate my launch date.

So, while I generally agree with Joel's warning about consultingware, there are instances when these projects are truly a win-win situation;  you advance the state of your business ... your customer gets something of value to them.