Thursday, June 12, 2014

Product versus Custom in a Digital World

When contemplating this topic I kept considering an alternate title 'risk versus reward in a Digital World'. Certainly in the Cloud era it's increasingly unpopular to tout customised, coded solutions. And rightly so as for many business processes and associated systems there is a long standing maturity. Consider a few well known examples:
  • Human Resources
  • Customer Relationship Management
  • Purchase to Pay 
Additionally with a lot of well-known Back Office internal facing processes like Accounts Receivable, Accounts Payable, and Customer Service (to name a few). These dependable workhorses are often put out to pasture in offshore fields.

I'm certainly not going to suggest that standardisation is a bad thing for business. Repeatable, measurable process is a key to efficiency. Likewise however innovation is a cornerstone to competitiveness. Unfortunately it's much easier to produce a clear business case for standardisation than it is for innovation. This might drive many organisations seeking to compete on price to reduce costs and forget the importance of innovation. Seen as a risk mitigation strategy, generally it's politically popular to promote a buy not build mantra for IT projects.

When contemplating digital, mobile, and consumer facing solutions the expectation is increasingly bleeding edge. This of course is at loggerheads with the “buy not build” message. None the less a certain degree of differentiation can be achieved by branding and with advances in user centric design. When it comes to enterprise and distributed solutions the challenge is that the entire stack needs to support the demands of the requirement/s.

Here's a rather simplistic look at some of the high level strategies and associated pros and cons:

Buy not build
  • Fit for purpose: low
  • Cost: low
  • Support-ability: high
  • Innovation enabler: low 
Platform technology
  • Fit for purpose: med
  • Cost: med
  • Support-ability: med
  • Innovation enabler: med 
Custom build
  • Fit for purpose: high
  • Cost: high
  • Support-ability: low
  • Innovation enabler: high 

Of course there are methods and sub strategies to mitigate all of the cons of every path. Many COTS packages allow a large degree of configuration. Many platforms come with accelerators or pre-packaged examples. Custom build can be successfully implemented with good process.

A couple of popular mitigations to enable innovation when selecting COTS packages include:
  • Selecting an innovative and/or collaborative vendor
  • Introducing an empowered innovation or process improvement team. 

So how does one choose a particular strategy and mitigate the risks that come with it. If you've ever read my blogs before you know I'm going to bang on about the requirements. Understanding and documenting the requirements will enable selecting an appropriate strategy. These should include broader considerations than just single project’s needs. Think architectural standards, existing assets, ability to execute, and appropriate risk assessments.

When the requirements are not core to differentiation, and there is a good fitting (meets your strategy, standards, business needs) COTS package available it makes sense to buy it. When the requirements are targeting differentiation there will likely be no COTS package that cuts the mustard. The middle road of leveraging a platform can help split the difference.

On the surface a custom built solution may initially seem cheaper. But ensure to compare apples with apples. In reality, for most integrated complex applications, custom built will cost more than buying a prebuilt solution. A popular approach to mitigate the cost is to find the cheapest developers and/or offshore party. This is often successful for well specified, non-integrated and fairly simple applications.

As mentioned in Enterprise Mobile Tips and Tricks an Enterprise Mobile project is unique in its complexity. Combine this with innovation and chances are you will be writing custom code. Digital applications are commonly becoming throwaway items with an ever decreasing shelf life. Components of the digital application are expected to be regularly replaced and enhanced. Therefore for these applications this extra element must be considered when balancing cost, quality, and timeframe.

For digital enterprise mobility ongoing change is the standard. To enable this ongoing flexibility on a complex distributed system requires more than just a series of independent software components and associated business cases and projects. To be successful a planned foundation needs to be laid. The foundation in this case should include a vision of how the ongoing change goals are going to be met along with processes, tools, and appropriate resources. More than just the standard project management there are some key aspects that can assist to ensure ongoing cost effective success:
  • Architectural guidance
  • Documentation & Trace-ability approach
  • Development, Testing & Release management approach
  • Skills (& Vendor) management
  • Ongoing Research & Development 
In human terms the ideal enterprise mobile application is a mix of looks, brains, and personality – perhaps a combination of high profile celebrity, Olympic athlete, and Nobel Prize winner. Digital Enterprise Mobile Projects are expected to have the best of all worlds. A great user experience, bleeding edge features, robust, high performance, seamless integration to complex back end system, and all for a low cost.

In the digital world innovative differentiation when done correctly is a key to success.