Do companies such as Facebook, Twitter and eBay buy their software? Did they build it using heavy weight technologies?

No.

The largest, most scalable systems in the world have been custom built using open-source technologies and agile development practices.

The dominant trend in IT procurement over the past decade and a half has been to purchase commercial, off-the-shelf products. Driven by the design mantra of “buy before configure before build”, it’s a design methodology inherent throughout IT departments from government to large corporates – and encouraged by software vendors and consultants.

But why is this the case? And more importantly, is this model still as relevant today as it was 10 or 15 years ago?

Can business do the same thing themselves?

The off-the-shelf method is based on the logic that systems support functions that are generic across a wide number of businesses. So it must be cost-effective to purchase a product based on a “best practice” manner, tested and then proven in certain conditions, than to build it yourself.

After all, you wouldn’t build a word processing program when Word is sitting on the shelf, would you?

So from this perspective, buying off the shelf makes sense. But most businesses aren’t as generic as you might think. And commercial development systems designed to solve multiple problems in a single system aren’t always effective. There’s a high chance others are going to require at least some sort of customisation.

Now, this is fine if you’re happy to change your process and incorporate some change which doesn’t diminish a competitive advantage. But generally, customisation is fraught with cost and risk. Often small changes blow out into projects worth tens of millions, or even hundreds of millions of dollars. They require extensive testing programs to ensure any defects haven’t hurt the core product.

Agile, open-source development

“But wait”, I hear you say – this has always been the case, right? So what could possibly make custom software builds a viable option now?

The answer lines in the Agile open-source software development movement.

The last decade has witnessed two significant evolutions in the software development landscape, both of which have immensely improved the quality, relevance and cost of developing bespoke software.

The first is Agile Software development processes and engineering practices.

Agile is a little bit of a buzzword, but fundamentally, it encourages a collaborative approach to design, building and testing in short iterations, incorporating feedback between users and the actual developers.

 

This results in software that delivers the bare minimum of what users need. The agile approach is made practical by the application of test-driven development and continuous integration, which provide the basis for the development team to adapt to and embrace the change and feedback that is key to an agile approach.

The second development is the continued acceptance of open-source technology for use in enterprise-grade software. The driving trend behind this is the adoption of smaller, lighter and faster systems, again with the aim to improve productivity through faster build and deployment times.

This is in stark contrast to traditional heavyweight stacks provided by commercial vendors such as IBM and Oracle.

When to buy, and when to build

So if bespoke software development is a cost-effective potion, and able to deliver quality, reliable enterprise-grade solutions – when should you buy, and when should you build?

There are a couple of factors to consider:

Competitive advantage

If the problem you’re trying to solve is important to how you gain or maintain a competitive advantage, then build should be the first choice. There is no point implementing the same system as your competitors – but for most businesses, standard functions such as human resources, accounts payable/receivable can and should be delivered through commercial off-the-shelf (COTS) solutions.

Fit to requirements

If available COTS don’t have a very high fit to the functional requirements, (note – > 85%), then the benefits of the solution are greatly diminished.

Customisation of COTS software is a very expansive process, and generally results in a fragile system as the software does not provide a development environment that supports quality software development practices.


Brenton Worley is a former director in PwC Australia’s Experience Centre.

 

Contributor Placeholder

Guest Contributor

Brenton Worley