Who defines how your business operations are performed? How does your business operate? Is it based on a definition of what is best for your business and customers, or is it because that is the process that came out of a shrink wrapped application?
Shrink Wrapped Applications vs. Custom Build
One business goes into a store and select the boxes they need from a shelf. One box is a stock management system, another is a customer relationship management system. Then they find out that they also need to buy a box for their filing system and a knowledge management package to make the relationship management system work. These Commercial Off-The-Shelf systems (COTS) packages will both inform their business processes and also constrain them. A standard COTS package will have been created to provide mass appeal, and provide capabilities that may be considered to be “industry standard”. The practices and processes in the shrink-wrapped software may not match the unique needs of the business – so either the business needs to change themselves to match the application (as it is apparently the “industry standard”), or the application needs to be customised to meet the business needs.
Another business may decide that they need to take a different approach and hire developers to custom build all their applications and services for them – to match their current “unique” business processes and practices. However, once the system has been created, the developer(s) may not have focused on documentation, or flexibility in code changes – after all, the application was developed to match the specific needs of the business. Later on, the business needs to make changes or upgrades – but the effort required to accommodate those changes is extreme, perhaps the developers are no longer available.
Who defines how your business runs?
The big question is; who defines how your business operates? Is it a big software company like Microsoft – using their terminology, structures, processes and capabilities? Or, do you create a custom solution that specifically meets your needs – or even create a solution from multiple COTS packages or apps, each one customised or tailored for your needs?
Some of the informing factors may be already decided – your financial processes may be outside of your control, or the way you integrate with suppliers or your customers could drive the technology direction of your company.
Take for example the decision to use an Apple-only product for design (such as it is the most capable solution to meet your needs) – this then
directs your other technology choices – probably either all Apple or a large mix of third party services
and applications that you will need to work on integrating.
The challenge of improvement and enhancement
The only constant is change, and of course business and technology change too. The pace of change in technology is rapid, where it imposes a constant effort to patch, upgrade and replace hardware and software. Some of the biggest and most complex projects I have been involved with are to implement upgrades and enhancements on custom built applications that often lack documentation or even code comments – the original developers are no longer available (often, retired!) or have gone out of business. Often the requirement to change is not driven by the business, it is imposed by the technology – such as a database server is no longer supported by the vendor, or hardware is now too expensive to maintain or new parts are no longer available. Custom-built applications are a real challenge as they are commonly fragile and sensitive to change.
Adding capabilities to COTS solutions
So, what is the story with adding new features and capabilities to “standard” solutions? Surely you have what you are given, and anything else requires customisation? Well, not exactly – according to Standish Research, most people only use 7% of the features of an enterprise application. So, there are a large number of features and capabilities that may already be in the COTS product you have, and you are just not leveraging them. The cost of using those features is the cost of organisational change and training. Or, you could buy a plug-in, add-on or extra module for the application or service. However, you can only activate features that exist – if you want your application to do something completely different, then it will need custom development. To do that, you can often just hire someone off the street, as there are standardised skill sets that packages require.
Custom application nightmares
On the other side, custom applications will need custom development for even the slightest change. You will either need to call upon in-house developers who have the skills and experience in the platform, or hire people who know the right languages – and then give them time to get up to speed on the system, work out how it has been put together (or if they are lucky, read the documentation), and perform some sort of an analysis on how to achieve the required outcomes. I’ve been in projects where a ‘simple’ printer change was weeks or even months of work. If you want a new feature or capability in a custom application, it’s a project that will involve development, testing, integration and perhaps if there is time and money left, a bit of documentation and training of the end users. On the positive side, the application does exactly what the business asks of it. Hopefully.
Due to the investment made into custom applications, businesses are often “locked in” and feel that they need to stay with their decision – after all, they have aligned their business practices and technology decisions to each other, and know that any change on either side is very expensive and time consuming.
Cloud to the rescue. Or is it?
Having said all that – it may be that a company may decide that it wishes to decrease risk and move to standardised software that is easy to upgrade, manage and maintain. Cloud SaaS services take all the hassles of upgrades, patching and maintenance away. Even IaaS services, whilst they still exist, take away the hassles of hardware maintenance and firmware upgrades, leaving just application maintenance and patching to the business. Who needs and IT department any more?
However, there is a big drawback here. What if the SaaS service, that you have changed you business operations to match, is changed by the provider to change or remove a feature that “few customers are using”? Apple removed the headphone jack, but have had a history of removing features that people use and love.
No-one can predict the future, but if past history is anything to go by, we need to take a very practical view of custom development, customisation and discrete enhancements. Flexibility is the key – the ability to both change technology to meet the needs of the business, and also to change the business processes when the technology changes.