Subscribe

To build, buy or assemble

Assembling adds a new dimension to the combination of buying plus building the relevant software for business.

Hardy Jonck
By Hardy Jonck, Heads up DVT's Mendix business unit.
Johannesburg, 10 Apr 2012

The rapid pace of change, coupled with increasing global competition, has made the build or buy question more relevant than ever. The short answer is as follows: buy or rent when seeking the solution to a commodity business process, and build when the solution touches the core differentiators of the organisation.

What's important is to choose a model-driven framework that offers checked and validated logic.

Hardy Jonck heads up DVT's Mendix business unit.

Traditionally, buy-build would be necessary to extend the functionality of commercial off-the-shelf systems (COTS) by about 30%. The ERP wars of the 90s showed that this type of “hack job” resulted in solutions that went over budget, under-delivered and caused maintenance nightmares. The lesson: do not extend off-the-shelf packages where possible; upgrades become impracticable and the buy value proposition is quickly nullified. This generally applies to COTS and open source components and systems.

The solution lies in a third option: assemble. Most people will argue the combination of buying plus building to extend what is purchased or rented is certainly not new, but the notion of assembling adds a new dimension, particularly against the backdrop of a changing industry:

* Vendors are saturating the market with general-purpose systems.
* SaaS will put legacy systems under pressure by offering software with shorter time to market, lower maintenance costs and lower costs, as SaaS typically lets customers pick and pay for functionality in modular fashion.
* The major enterprise software vendors like Oracle and SAP are moving toward component-based models.
* Traditional large-scale development with .NET and Java is as risky today as it was a few years ago.

Back to basics

The “assemble” option relies on having several basics in place:

* Proper business ownership and a formalised product owner team if more than one person has the product owner role (not ideal);
* Solid, agile development framework and software development life cycle process management;
* Knowledgeable people who understand the business and like what they do;
* Investing where the company gains incremental revenue or competitive advantage;
* An analysis of the company's legacy systems and clear identification of what still has business value; and
* Defined business processes that focus on the customer rather than inward.

Efficient system assembly requires bought components where possible, and the creation of a dynamic layer that binds these components into a coherent business delivery model by using model-driven technologies. Modern model-driven development offers quick time to market and excels at consuming integration points and then adding unique business logic, entities, validators and excellent performance, security, re-usability and maintenance.

SOA provides the technical framework to easily integrate systems. As long as legacy and component-based systems provide the correct granularity of services, new product delivery systems can quickly be assembled to leverage and extend them without hacking source systems by using model-driven assembly technologies. What's important is to choose a model-driven framework that offers checked and validated logic, and can easily consume services as well as expose its extension points as services.

Modern model-driven development specialises in producing re-usable components with extension points through a domain specific language (DSL). Developers can augment, extend and aggregate systems to produce business value quickly by using the DSL. There are currently two categories supported by commercial model-driven development vendors that provide the raw material to assemble solutions that are agile, quick and efficient.

The first category of model-driven development platforms focuses on creating new functionality from scratch and offers a compelling alternative to .NET and Java. The second category is more specialised.

Where build or buy typically included buy-extend or build-from-scratch options, the assemble option replaces buy-extend with buy-assemble. Here the emphasis is on adding the missing functionality of the purchased systems by using the most efficient technology to add business value quickly and on a platform designed to handle change. Model-driven platforms are designed with change in mind, and offer checks to validate dependent systems' service consistency with the business process, business entities and state.

Building can also be replaced with assembly, as the model-driven platform can be used to create a solution which implements only the function points and business processes required to offer tailor-made business value.

My next Industry Insight will detail the requirements of a good model-driven framework.

Share