Wednesday, November 7, 2007

Is Open Source hurting Consulting?

In an earlier blog entry entitled Is Open Source hurting Computer Science? I looked into whether the glut of Open Source code was causing problems for software developers. In the comments, Alastair Revell correctly pointed out that my arguments were biased towards shrink-wrapped software. While that represents a significant chunk of the software market, it is by no means the majority of development.

As I was pondering how to respond, I realized that the circumstances for in-house development and consulting were far more complex than for packaged software. It was a dense enough subject to make for a good solid blog entry; a chance that shouldn't be wasted.

We can start by noting that there is a trend away from in-house development. That's not a surprise. For decades the software industry has been selling companies on developing their own custom solutions, only to have the majority of the projects fail; this has left many organizations weary when it comes to development. It is expensive and prone to failure.

I believe that it was Frederick P. Brooks who predicted in the Mythical Man Month that shrink-wrapped software would replace in-house development, arguing that it would bring the costs down. While he was right about moving away from internal projects, it does seem as if consulting has been the big winner, not commercial packages.

This shouldn't come as a surprise; most companies still feel that a unique process is a competitive advantage, and since software implements that process it too must be unique. The extra costs are worth it.

With the diminishing of in-house development, the key focus for this entry is on how significant volumes of free Open Source software are effecting the consulting industry. For that we need to first go back in time a bit.

Consulting has seen significant changes in the last couple of decades. At the end of the dot-com boom, staff was so hard to find that many programmers cashed in by becoming independent consultants. Staffing big projects was extremely difficult, so the rates were incredibly high. With the bust, the jobs disappeared and left a lot of people scrambling for work, often forced to finding it outside of software. In the turmoil, most of the independents and small companies disappeared; leaving an industry dominated only by very large companies.

It is at this point that we need to examine the rise of Open Source code. In a market of only big companies, what is the effect of lots of free code?

For a typical consulting project, access to large amounts of code would appear to be a good thing. Projects take forever, so it vital to get a quick version of the system up and running. This calms the fears and makes it easy to extend the project. A glut of code means that it is far easier to whack together a fast prototype and extend it to meet the requirements.

Quality problems with the code you might assume would be bad, but in fact extending the project beyond its original tenure is the life blood of consulting. An endless need for small fixes is the perfect situation. A smart lawyer and a polite client manager are all that is needed to turn a short-term implementation contract in to a long-term cash cow, milking it for all it is worth. Low quality means more work.

All this might be fine, if it were that individuals could startup consulting companies and gradually morph them into full fledge software companies. Fresh blood entering into the market helps keep the prices under control and drives innovation.

With all of the freely available code you'd think it should be easy for a small consultant to compete? However, the industry contains many significant obstacles.

Everybody wants the latest technology, a target that is changing too fast for most programmers to keep pace with. As well, many of the newer technologies are so eccentric that you need to have experts that specialize only in them in order to get them to work. A basic development project may cover ten or twenty such technologies; too much for any one person.

This means that the glut of code lends itself to being assembled by groups of developers not individuals. Given the basic instabilities of the software, projects made up entirely of independent consultants can be quite volatile. They need significant and patient management to keep them working together.

Past experience with software management drives many firms away from that, choosing instead, the big consulting companies that can design, manage, implement and often operate their projects for them. Of course big firms always have a preference for big "suppliers", making it hard for the little guy to get an opportunity. Little firms go for shrink-wrapped systems.

You'd think companies would have learned, after all many of them are stuck with these new, fancy, sexy but highly defective systems. These have been added to their roster along side of the fragile client/server systems of the nineties, and their ever reliable, but slow and hugely expensive mainframes; the real workhorses of most corporate IT. A trifecta of defective technologies.

CIOs in big companies are drawn toward the big consulting firms for their big new shiny projects. These consulting companies promise quick development and fast turn-around, but sadly the working problems linger on forever. Dragging out the contract is standard. It is just "another" period in the software industry where the big money users -- usually large corporations -- are getting shafted. Another of many that have already occurred.

With so much money to be made, consulting firms no doubt love Open Source. It and any quality problems it has only help the bottom line. Bugs are profitable for those that make money fixing them.

It would be no surprise then that consulting companies don't want to change the circumstances. Innovation does not help. It is good right now. With no new competition, this is unlikely to change until companies wise up.

In an off way this could also explain the increasing popularity of the newer lightweight methodologies. If you want fast results and low quality, then you certainly don't want a whole lot of process slowing things down and accidentally making it better do you? A methodology designed around slapping together quick and dirty prototypes with the least amount of planning fits well into the model of "built it quick and fix it forever". It is a scary thought.

In my previous blog entry I had reached a point where I felt that the glut of code was killing innovation and making it hard for small companies to get into the market. In this entry, I feel that the same glut also makes it hard for individual consultants and small consulting companies to get into the market, thus killing any competition or innovation. Also, related or not, in-house development is dying; it is gradually being replaced by external projects. As things are profitable right now, innovation is an unnecessary obstacle. Not unsurprisingly this implies that too much free code is causing significant problems in all corners of the the software industry. Too much of a good thing is never a good thing, it seems.

4 comments:

  1. Paul

    Another interesting article!

    I find myself agreeing with you on some points and disagreeing with others, although I am not too sure on how precise you are being with the term open source, which sometimes means different things to different people.


    Alastair Revell
    Revell Research Systems

    ReplyDelete
  2. Thanks Alastair! I've really taken Open Source to have the widest possible definition, essentially anything that is open and usable by other developers. It differs somewhat between shrink-wrapped software and consulting. A consultant working on an in-house development project can utilize something that is licensed for the GPL, while would probably not be acceptable for a commercial product. Non-commercial-use licenses are probably not the majority, but they do include a substantial amount of the available source code.

    ReplyDelete
  3. Paul, while you bring up a very interesting issue, and some very interesting considerations, I don't buy all your conclusions.

    I guess the main thing I disagree with is how you view consulting. Yes, sometimes consultants do end up with low quality -- just like other developers. But good consultants strive to maintain a reputation for quality work.

    And often their role is not to replace shrinkwrap software (bad idea on economic grounds) or in-house software, but to bring a specific expertise to a project, that would be too slow, too expensive, or both, to develop in-house.

    Here, Open Source is a clear aid to consultants and companies alike. If a consultant is very familiar with a particular area, and the Open Source tools available, he can bring in a project MUCH QUICKER and also with MUCH HIGHER QUALITY than if he had to do it himself.

    If there are flaws in the software, he can fix them, possibly as part of the original contract, possibly as follow-on. If there are flaws in closed source components, all he can offer is awareness, sympathy, and maybe, if lucky, a workaround.

    I really don't think you've made your case that Open Source has a downside for small consultants or for companies who hire them.

    You're on stronger grounds regarding the competitive disadvantages that small consultants face. But I don't see this as driven by Open Source at all. I think Open Source actually helps small consultants somewhat, by giving them opportunities to consult on specific tools that otherwise wouldn't exist, and whcy fall below the radar of the big consulting houses.

    And again, it lets them tackle projects that would be beyond their resources, and achieve a quality result. The big houses often continue to charge big $$$ for these projects even if they've become vastly simpler...

    ReplyDelete
  4. Hi Bob,

    Your right, when I had finished writing the entry I realized I had left out a major point: this is probably the golden age for big consulting companies. It just couldn't get any better for them!

    When I've consulted in the past, I found that most consultants that I've worked with have less invested in the projects than employees. If you have to live with your choices for the next five to ten years, you are motivated to try a lot harder to get things in 'correctly'. If you are just visiting, your more likely to do what you are told.

    It doesn't effect all consultants, and it is far worse in the bigger companies. Individual consultants usually care about their image a lot more. It is better for business.

    Another interesting point, is that I've seen a lot more employers hire people as 'consultants' instead of employees just to save on the costs of benefits. In that case, it's not really consulting, they are just another category of employee; fully invested with a long term relationship. Specific contracts for very well defined jobs that are then billed for at an hourly rate is generally more standard consulting.

    I still suspect that too many technologies make it more likely that companies would prefer bigger consulting houses. Not sure why, it just seems to me to be one of those odd relationships we find out in the wild.

    Thanks for commenting :-)

    ReplyDelete

Thanks for the Feedback!