Archive

In today’s business climate, a lot of companies struggle. Some have difficulty getting work in, others cannot recruit enough people with the relevant skills, whilst yet more have difficulty managing cash flows when clients withhold payment or decide on new terms of business at the drop of a hat.

But what isn’t realised is that a business can also suffer through being too successful, and not spotting that the work coming in now is going to lead to serious problems in the future. One type of business in particular is vulnerable to that: the software development consultancy.

In his essay “Ramen Profitable”, Paul Graham describes the difference between a “consultancy” and a “product company”:

Startups have to be product companies, in the sense of making a single thing that everyone uses. The defining quality of startups is that they grow fast, and consulting just can’t scale the way a product can.

It’s this scalability factor that is major problem, and is best described by example. A typical consultancy follows the following business model:

A new client (or, a new requirement from an existing client) is captured and goes into the sales pipeline.

Work then starts on that client’s project, which in a smaller organisation (to ensure that cash can flow) often takes between 2 and 3 months.

Following delivery, the project then enters an initial support phase, which the company puts time aside to manage.

Once that initial phase completes (say, one month after delivery) the consultancy pushes the client towards a support contract; this contract places requirements on the consultancy to fix issues in a timely manner but also guarantees a certian level of income to support future development projects.

A savvy start-up consultancy would take a handful of these projects on over the course of a year or two, to the level where the income is sufficient to cover another developer or two working on a “product”. The “product” then starts making its own money, and the focus shifts to supporting this single product. This product can then be sold to clients many times over, with a proportion of the money taken invested partly in new features and partly in workforce benefits.

The greedy consultancy doesn’t follow this path. Instead, it sees the consultancy work – which brings in more money initially – as a process to repeat over and over again. Within a few years, you end up with ten to fifteen individual clients, each with their own support contract and software.

By most measure of success, you are on a winning streak. Income is rising, your portfolio of clients is expanding and you have a wide range of case studies. Your developers are keeping their skills up to date, and when you recruit you make sure that you bring new talents into the business to make future development even more streamlines.

Except … at some point, your bluff will be called and the support will be needed. You’ll then be faced with a number of stark truths:

Your developers, individually, have to be skilled enough to support every single one of the systems that you as a consultancy run, as well as being able to push new developments forward; it is very rare to have an entire team with this level of expertise.

With developers staying with individual employers for an average of 2 to 3 years each, the chances are constantly increasing that the last person to work on that system has now left the company.

Due to its age and your requirement to push the company forward technologically, the software uses technologies – and, sometimes – even languages – that are unfamiliar to the current development team. Therefore the support work will often land on just one or two individuals within the company.

Because of the amount of work coming into the company, any familiarisation with existing clients’ code is put to the side as being of little economical value compared with the new business being won.

A single support call can easily cost an entire man-day in time when all the above are taken into account. That’s an entire man-day gone from the project they were working on, an increase to the risk of the project delivery date slipping back, and thus a direct effect on cashflow.

This is the tipping point in a software development consultancy. If your company is following the consultancy model, then start thinking of a product. Or, if you’d prefer, work out how many support calls it would take for your company to go bust. I’m willing to bet it won’t be a big number.