Runtime - The Software Outsourcing Newsletter
for Executives and Investors
from Accelerance and Steve MezakTransforming Your Software Into A Service
Portions of this issue of Runtime appeared as a posting on the Sand Hill Group blog page last week.
Today, no one really wants to buy software. Customers want the benefits that the software delivers at the lowest cost possible. The best way to achieve this is to use the software as a service (SaaS).
Software as a Service is a model in which the software vendor provides an Internet hosted version of their application (in house or at a managed 3rd party site) that is accessed by customers from the web site and paid for on a per-use, per-project or subscription basis. Salesforce.com is a leading example of the SaaS model. The SaaS model offers significant benefits to software vendors and their customers.
Some software companies design and deliver their software as a service. But many others still offer a traditional software license. They are being caught by the SaaS wave, and face dwindling sales as customers refuse to pay high license fees.
For example, a software company I know offers their product for a hefty $300K license fee. And on top of that, you have to pay another $300K for customization. Do they have customers? A few. But now the new ones are all asking for a SaaS pricing model.
As SaaS becomes more popular, time is of the essence. The rewards often go to early market entrants. Salesforce.com has broken down the barriers to the SaaS model, and many others are following. Accelerating your time-to-market is critical to your business success.
To "put your software on the web" is not as easy as it sounds. Software companies face several challenges in offering their software as a service:
(1) Delivering a new level of quality that ensures availability, scalability and security of your software and your customer’s data
(2) Determining your business model and how much each customer or user will pay for using the software so the customer gets a good value, and your company makes a healthy profit.
(3) Modifying your existing software product without disrupting the flow of new features and enhancements that your present customers expect.This complete turnaround of your software company can cost hundreds of thousands of dollars and many lost months of time in the market if you make the transformation incorrectly.
Today you can hire an offshore team that is expert at web technologies and they will transform your software into a service. You can continue using the outsourced team after the transformation is complete, or take over development with your existing internal team of engineers.
An expert outsourced team can perform these critical steps in transforming your software into a service:
- Convert your client/server application into a web application with a browser-based user interface
- Use new Rich Internet Application (RIA) technology to give your web application the look and feel and functionality of a desktop application
- Add self-provisioning of user accounts so new customers can sign up and use your service quickly and without human intervention
- Ensure customer data are kept separate and safe in the database
- Perform stress tests and tune your SaaS so it can handle the required number of users.
- Implement a configurable user interface so your users can customize your software to meet their needs
For example, one Accelerance client just completed the transformation of their Excel spreadsheet-based product into a full fledged web application using one of our teams. The client never would have created this SaaS product with their already overworked internal engineering staff and they could not afford to hire a whole new team of engineering employees.
Let's look at some of these steps in more detail...
Traditional client/server applications are single instance. Each customer must license and install their own copy or instance of the software. In addition, they require client software to be installed on each user’s computer to carry out computations and provide functionality. These clients often implement highly interactive features and enable the user to manipulate large amounts of data. This kind of complex functionality can be very difficult to implement in an HTML, request/reply web application interface that requires frequent page refreshes. The ease of migrating from your client/server to an Internet-based SaaS model is highly dependent on your specific application.
However, new Rich Internet Application (RIA) technology is available from Macromedia, Laszlo Systems and others that give web applications the look-and-feel and functionality of a desktop application or client. RIA requires little or no software be installed on the user’s client computer. The most that is needed is a small browser plug-in or Java applet. This fundamental change to the user interface converts your client/server application to a single-tenant web application.
Web applications may be single instance or multi-instance. Offering your SaaS in a single instance configuration cannot scale to a large number of customers and should be avoided.An alternative to running a dedicated server for each individual customer is to install multiple copies of your software on a single set of servers. This is called multi-instance.
Multi-instance enables you to share the cost of a server across multiple customers. Most business applications use a database and each additional copy of the software installed requires a new database instance as well.
But there is a limit to the number of instances that can be installed and eventually system resources will be consumed. System resources include shared memory, process semaphores and other internal operating system parameters. So the question becomes, “How many copies of your software can you install on a server?”Obviously, you can keep installing instances of your software until resources are exhausted. However, you must also consider the performance of the system under load by users. Typically there are a maximum number of simultaneous users your software must support and minimum performance or response time requirements that must be met to satisfy customer commitments.
An accurate answer to the “How many copies of your software can you install on a server?” question is derived by testing the software as you add additional instances. This is best done with automated testing software tools that can simulate the desired number of users placing a load on the system.
The real goal is to modify your single-tenant web application to support multiple customers or "tenants" on the same instance. Multi-tenant web applications minimize the amount of hardware needed to support multiple customers. Also, customers can self-provision their use of your software by signing up for an account and entering payment information. This minimizes, and often eliminates, the amount of support needed to set up a new customer.
Of course, if you start out to create your software as a service you would design it as a multi-tenant web application. Software companies have been implementing SaaS for ten years now. But the changes required to transform your software from a single-tenant web application to multi-tenant service are non-trivial. The tasks often exceed the engineering capacity of software companies that must also support existing customers.
That is why outsourcing these one-time changes make so much sense. You increase your chance for success and lower your costs when you use an offshore outsourcing team to accomplish your goal of transforming your software into a service.
Vision Resources
![]()
Are you wondering how you will select an expert offshore team
to develop your software?Use the Accelerance Vision Resources(sm) outsourced vendor
selection service and cut the time of your vendor selection
process by as much as 90%.Vision Resources leverages members of the Accelerance's 17
teams in 14 countries around the world.Click here to learn more about Vision Resources
Accelerance, Inc. delivers impartial & expert strategies and services
for risk-free outsourcing of your software development.
Visit our web site at www.Accelerance.com
Until next time,Steve Mezak
Accelerance, Inc.
Risk-Free Outsourcing
213 Garcia Avenue
Half Moon Bay, CA 94019
1-650-712-8990(c) 2005 Accelerance, Inc. All rights reserved. You are free to use material from the "Runtime" eZine in whole or in part, as long as you include complete attribution, including live web site link. Please also notify me where the material will appear.
The attribution should read:
"By Steve Mezak, CEO of Accelerance, Inc. Please visit the Accelerance web site at http://www.Accelerance.com for more information and resources on outsourcing and creating great software products."