Build, buy, or borrow? That’s the question.

irresponsibility
English poet John Dryden, once mused:

None are so busy as the fool and knave.

And while this observation was made hundreds of years ago, it still has a hip ring of truth to it– for as we all know, there are myriad busy people in any organization doing lots of stuff, yet achieving very little. In fact, because it was his bag, a wise executive once confided in me that, while he had a legion of employees doing a lot of work:

one should not confuse activity for progress.

Sadly, this truth is by no means unique to the IT industry nor does the future show any reduction in such impressions. In fact, a recently published article entitled “Building your own web server” reminded me of a broader infliction that exists of our industry; that is, the interminable question of whether or not to build or buy, which is often answered with build. (Before I go any further, let me commend the author of the aforementioned article for writing something interesting– the article is worth a read as it’ll please the inner-geek in anyone.)

This question, though, of should one build or buy and its correct answer have become, in my opinion, much easier to comprehend given the rise and validation of two key facets of our industry:

  • open source
  • and broadly speaking, validated software (and hardware!) as a service models

Note too, that the later part of the question (that is, the choice of “buy”) isn’t necessarily relevant anymore– a more hip question to ask these days is whether or not to build, buy or borrow.

By borrow, I mean “to use, appropriate, or introduce from another source” — that is, borrowing doesn’t have to imply returning and it could mean paying for such a privilege. But the option is always available to give it back– whether by providing fixes or features through source code or suggestions or by deciding to stop paying for such a service, in which case the thing borrowed is returned.

Take the seemingly mundane backbone of any web application– the web server. When beginning a project, which will ultimately result in a website for people to do interesting things, do you initially decide to:

  1. build a web server?
  2. buy a web server?
  3. or borrow a web server?

The correct answer for most businesses (and people) is, of course, choice 3. While there are numerous web servers on the market, open source and commercial, the leader, in terms of market share, is Apache. In this case, you can easily download it and use it, for free. In this borrow relationship, you are free to give something back to Apache– suggestions, feedback, source code, etc.

In fact, you can conduct the same quiz for practically the entire infrastructure of a software project and you’ll find that you can borrow every item– IDE? Database? Build system? Application sever? You can even borrow nearly every facet of a software library– encryption? Testing? Collection handling? Emailing? Would you build any of the previously listed items from scratch?

The question then becomes, why would a team choose to borrow these things (and others) rather than build them? The answer comes down to speed.

Open source software (whether it be an application server or a library or a web server) enables businesses to focus on solving a business problem, presumably which those teams are better served to solve. That is, copasetic healthcare companies, for example, (and the smart people that work for them) are probably better at dealing with and solving healthcare-related problems than they are at building, say infrastructure components.

What’s more, open source leverages a community. I once consulted for a company that maintained their own web framework. They had an entire team, which worked on a daily basis fixing defects and adding new features that essentially every other MVC framework in the world already has. Every other MVC framework was and is more mature because each one has a community of focused smart people with varying backgrounds maintaining it and usually a wealth a users providing feedback in multiple environments and situations. In essence, open source software leverages the wisdom of crowds.

Businesses in this build, buy, or borrow situation need to step back and ask themselves — as business executives/owners/stakeholders, would we rather pay people to build a web framework (or something else that we can borrow) or would we rather pay them to solve our problems by working on those problems directly (after they downloaded the myriad capable open source web frameworks maintained by a community of people that are, for the most part, smarter at building web frameworks than our people are)? Because if our teams do download and leverage that open source web framework, they’ll have more time to build our features and consequently, we’ll get those features faster.

This veritable dilemma is becoming easier and easier to solve every passing day too. Open source technologies, platforms, and applications make great business sense because they enable businesses to work more efficiently (and therefore deliver value faster) precisely because they allow the business to focus on core issues.

Next dilemma– you’ve built your application leveraging open source technologies where appropriate and built your special sauce on top– how do you deploy it? Do you analyze your infrastructure requirements and decide to:

  1. build it?
    • that is, do you assemble some servers from scratch?
  2. buy it?
    • meaning, do you go out and buy some machines?
  3. or borrow it?

Of course, the answer is increasingly option 3! That’s right, you borrow your infrastructure. Why buy a bogue machine, when you can rent some space on someone else’s? Why buy a bunch of machines for an infrastructure when you can borrow Amazon’s? Or for that matter, why not borrow Google’s?

Why borrow someone else’s infrastructure? Simple– they’re better at managing it than you. And it is most likely cheaper. Why waste time managing machines and upgrades? Why get up in the middle of the night to replace a crashed hard drive when someone else can do that for you (while you sleep)?

Speaking of infrastructure– when you started the project, you probably needed to figure out where to store your code base. You either can

You see, man, borrowing may have hurt Wall Street, but in our case, borrowing makes a world of difference that equates to speed. Speed, by the way, is everything in the IT industry. Controlled, predictable speed, baby.

It’s been said that

Efficiency is intelligent laziness.

Given the current global economic climate, businesses are going to further push to “do more with less” — if you aren’t already leveraging open source software (that is, you’re building your own web server, for example) and you aren’t looking into borrowing hardware and software services (that is, you’re spending a lot of money maintaining machines and the like) then perhaps you should, man. Can you dig it?

You can follow thediscoblog on Twitter now!