You may be streaks ahead of your competitors in the market. But is your software development organization ready to start pumping out customized software at a high rate - without an increase in resources, but rather a shift in tactics?

How is that even possible?

Traditionally, custom software is expensive and takes a long time to produce, vs. commercial off-the-shelf (COTS) products, which are readily available and comparatively inexpensive.

However, by taking a look at the type of “shop” category that a software development organization falls into, and examining the future of development practices, we can see the steps that any software house can take to produce successful, customized products at pace.

Robotic assembly line with welder robots working

Types of software development shops

Like manufacturing organizations, software development organizations can be categorized into “shops”, with varying production levels and variety of products.

Consider these four:

  1. Niche Production (low volume, low product mix)
  2. Mass Production (high volume, low product mix)
  3. Job Shop (low volume, high product mix)
  4. Mass Customization (high volume, high product mix)

Types of software development shops graph showing sections  Niche Production, Mass Production, Job Shop and Mass Customization

To understand in which category an organization sits, consider the breadth of solution offerings and the volume of sales:

  • A website design consultancy generates a wide variety of sites, all with a sales volume of one. These are “Job Shops” - low volume, high product mix.
  • A COTS software vendor likely sits in the “Mass Production” category - with a limited number of packaged solutions being sold out to customers.

Within the context of Industry 4.0, the fourth industrial revolution that is now upon us, Mass Customization is a core concept within manufacturing.

“Industry 4.0 assumes preparation of a computerized, intelligent manufacturing environment, guaranteeing flexibility and high efficiency of production, integration of different activities and effective communication between a client and a producer, as well as between the producer and suppliers.” - (Smart Product Design And Production Control For Effective Mass Customization In The Industry 4.0 Concept, Management and Production Engineering Review, 2016)

This points towards highly modularized, intelligent systems, Agile practices, and both customer and supply chain modifications to the current status quo.

Taking the lead from manufacturing, as we often do in software, the future of software development is that of Mass Customization.

How is a Mass Customization software shop possible?

How can a tailored solution be sold to customers, while the organization produces those solutions at scale, and at a low cost? At first glance, it looks as though Agile software development targets this goal. Yet, in reality, Agile development means faster adaptation of Mass Production to market demands. This is a worthwhile undertaking but doesn’t get closer to Mass Customization.

Clouds forming Google Cloud Platform, Microsoft and Amazon Web Service logos

The best current precedent for Mass Customization might be the leading cloud vendors. A Google Cloud Platform (GCP) customer will utilize GCP in a way that is different from every other customer. The various service offerings (and combinations of services) can be tailored to the specific needs of the customer.

That said, for GCP, each customer’s value is diminished by the need for customers to cloud engineer their own solutions. This is why GCP has plenty of partners who help customers engineer their solutions. The large cloud providers are also known to pre-release or customize cloud services for their largest Fortune 500 enterprise customers. However, this sort of customization is inaccessible for all but the largest cloud customers. The needs of these smaller organizations, which do not fit nicely into the service offerings of a cloud provider, will go unfulfilled (or at least poorly addressed).

What might Mass Customization software development look like?

First, (and a big departure from the cloud providers) is a pull-based system for customers. Instead of pushing products, configurations, and offerings out into the market, mass customization requires customers to “pull” the solutions from providers. This could look like the customized cloud services offered to huge enterprise customers, but made widely available. For example, even startups could request a modified version of AWS Lambda which better fits their needs.

The very concept of product and service offerings degrades in this environment, with requirement specifications and tailored product platforms taking their place. Instead of architecting applications to try and mash project specifications with available products, services, and libraries, customized product platforms, the specification itself is provided to cloud vendors. The cloud vendors respond with a tailored product platform, which has module stubs for developers to customize.

This sort of custom software development already exists in 3D printing software - a hybrid manufacturing/software industry. Companies like Twikit offer 3D printing customizations across a range of different product types such as automotive, prosthetics, interior construction, and lifestyle. Instead of mapping hardware requirements to available components, the hardware requirements themselves are the trigger for a pull-based customized value chain - customizing each component. Customers provide their needs directly and receive a polished customized product.

However, this is just the beginning. Building custom software, based directly on customer needs, across distributed networks of pull-based custom product/service offerings, can be done. Now, we can imagine the delivery of ideas to “production code” taking only a matter of hours, or even minutes, as we automatically align the value chain, across organizations, with the evolving needs of each customer - fulfilling needs directly with the adaptability of an artist and the efficiency of a machine.