For the last decade, developing & implementing Enterprise Software was/is a nightmare. The procurement life cycle was long and at most times inefficient as customers face challenges internal & external to the organization. Software Vendors for the most part were caught in this inefficient life cycle as they had to support multiple versions of their product and provide special support for those customers who could not upgrade. This approach hinders the innovation of any product. The product team had to analyze the hardware architecture and OS’ that they needed to support in the new product version. And what new features had to be leveraged and added to the product.
I survived many nightmares when I worked for a Software Vendor, which had a billing platform. The billing system was supported on at least 4 different OS’ and over 4 different Databases. In addition, you needed a supported C compiler and supported JVM version. I remember that patching was a nightmare, specially if you had customizations to the platform. But billing platforms were not the only ones – I also encountered this paradigm when I work for the 2 biggest software companies in the market with a broad range of products offerings. The support, upgrade and maintenance of the products were painful and the overall customer experience was awful. I remember a CIO telling us in a meeting that ‘the upgrade was needed to correct the mistakes of the past’. It was not her fault that the System Integrator butchered the implementation, but this was the way business was done!
In the meantime, several software companies saw the opportunity to capitalize on this mayhem. They were pioneers on finding a better way to build and maintain Software products. They built new software products with the premise that the customer experience was first. Secondly, the product had to scale without having the customer make huge capital expenditures on data-centers, hardware and human capital. I am not talking about taking existing products and putting in them in a Data Center on Virtual Machines and calling that SaaS. I am talking about building the software product from the ground up to be distributed and scalable. Where the platform is “shared” by many tenants with their own shards of meta-data and data.
The true SaaS offering provides a seamless experience. Upgrades are pushed to sandbox instances where customers can test new features and test their existing code base before going live to production. More importantly, the testing is more rigorous because the ‘customers’ participate in testing. Each customer runs their regression tests on the new version of the platform – Collaborative Testing. This collaborative approach fosters a true partnership between a vendor and a customer. Success is everyone’s priority because it’s defined together.
More to come….