Hiring Out Development

Occasionally an opportunity arises to strike a business arrangement with
another company C, of the form "C will pay our development costs to make
product P".
The question is, when does it make sense for us, as a company working on
developing products for some marketplace, to hire ourselves out in this
way?

The underlying mathematics of the situation are that all the revenue of
a software company springs initially from a small percentage of its
employees, the developers. Let's say the developers account for 10% of the
company's costs. Since all products start in development, in a sense every
project that development takes on must produce a 10x profit, since the
products from development have to support the entire company mechanism.

Suppose that development hired out to do some unrelated
product P, at cost. This costs the company greatly, since development is
not using that time to develop things with the necessary breakeven 10x
market potential. The rule here is that "at cost" is not the same as
breakeven where development is concerned, at least in the typical
highly-leveraged software development arrangement.

So how can we make 10x on our costs just to break even? One way is in
developing something we'd develop anyway. Then the payment of "costs" is
pure gravy. But in most cases, hired-out development turns toward something
slightly different than the company's original goals. With the 10x leverage
factor in mind, one can see that it wouldn't take much of a turn away from
the company's strategy to derail development entirely.

The bottom line is that hiring out part of one's core development team can
make sense, but it must be examined very carefully. The costs are much
higher than they might seem.