"I will build a car for the great multitude. [...]. But it will be so low in price that no man making a good salary will be unable to own one -- and enjoy with his family the blessing of hours of pleasure in God's great open spaces." ~ Henry Ford, 1908
The main advantage of an ideal multi-tenant application is that all the code is in one place. This makes it cheaper to maintain, update and back up -- think of it as industrialized software. This concept is obviously very attractive to anyone who has gone through the pain of a large software implementation. That being said, software developers have unfortunately not done very well at industrializing their process.
Along the evolution of the automotive industry and the advent of linear production in the 1930's, the Toyota Production System brought another evolution to the industry over the second half of the century. First, everyone could afford a car. And then, everyone could afford the car they wanted. Let's take a lesson from history: why should everyone get the same software? There are cloud-based technologies today that can provide much more value than "one stop shop" multi-tenant solutions. This new generation of software can adapt to your needs, is easy to install and relatively cheap to maintain.
Let's stop doing mass production and let's do smart production -- or Lean Production. How many software company can claim to have a "Lean Production System"? Which software provider actually has internal Kaizen initiatives? Just because there isn't "physical inventory" doesn't mean the rules can't apply. If any other industry generated more defects than software? What would happen if a car or a plane had 5% of the bugs that IE 9 has? That company would go down in a big way. Here are some tips reduce costs and improve software quality standards:
- A better production environment: providing a rewarding environment where the developers get incentives to produced better code, rewarding initiatives to improve code development standards and installing the QA in all stage of the production chain, not at the end!
- Using new technologies to cut costs: leveraging cloud environments at every stage of the "supply-chain," during the code development, during the quality and audits phases, during the sales/pre-sales processes, and of course for the delivery to our clients and partners. Internally, the use of open source technologies and collaborative tools such as Google apps helps reduce significantly the cost the production costs.
- Leveraging a community of partners: 15-25% of mid-size software company revenue is spent in marketing and sales. Up to 1/5 of the license or subscription you just bought is pure smoke. An alternative is to build a strong community of partners who provide value to the clients without increasing the costs.
- Pierre M. Rallu, Director of Operations at b-pack