On-Demand Software – Future of Software Industry?

1. Beginning of the Dot com boom and birth of SaaS

The dot-com bubble spanning a period roughly between the late 1990s and the beginning of this century saw numerous upsets and stock market collapses. Companies in the new Internet sector and related fields noticed their value increase rapidly in a short span of time. The period was marked by the founding of numerous new Internet based companies commonly referred to as dot-coms. 

Quite a few of these dot-coms were highly successful but most that went bust, ran out of capital were acquired, or liquidated. It looked like all such companies focused to increase their valuation to consequently being funded by Venture Capitalists or being bought over. One primary reason for such companies to fail was that, most such start-ups did not focus on the end-users.

Companies that survived the dot-com bubble were those that provided value-added services to end-users by providing a unique experience or additional value that was either not possible through an offline mechanism or that made a particular job comparatively easier, when made available online.

One such category of companies was dot-coms that offered Software as a Service (SaaS). 

2. What is SaaS and on-demand software?

Software as a Service (SaaS) is a model of software delivery where a software company provides maintenance, daily technical operations, and support for the software provided to their clients. SaaS is a software delivery model and not a market segment.

The key characteristics of SaaS include:
  • Network-based access to, and management of, commercially available software. 
  • Activities that are managed from central locations rather than at each customer's site, enabling customers to access applications remotely via the Web. 
  • Application delivery is closer to a one-to-many model to comprise of architecture, pricing, technical support and partnership. 
There are two types of SaaS providers. The first has often been referred to as an Application Service Provider (ASP) wherein a customer, primarily a software company, purchases and brings to a hosting company, a copy of software.

The second type of SaaS provider offers what is often called Software On-Demand. This is where a company develops and hosts a suite of software applications to be used by multiple end-users or clients. 

One of the biggest success stories of SaaS and particularly on-demand software provider is salesforce.com, a provider of CRM solutions on the web, founded by Marc Benioff, a champion of SaaS delivery model. Today, SaaS is emerging as a preferred option for most software companies due to the inherent benefits that the model provides. Oracle, SAP, Microsoft and many others have been aligning a portion of their business to leverage the benefits.

In fact, Microsoft has launched two separate versions of online suites of applications, viz. Windows Live and Office Live. These suites are targeted towards windows users and small businesses respectively and are expected to take Microsoft the SaaS way. 

iEmployee, an On-Demand HRMS (Human Resource Management Systems) software provider in the United States started with a strong service delivery vision to corporate customers and is today amongst the top 10 HRMS provider in the US.

The focus in SaaS is more on what the customer wants rather than what the vendor could give, as was the case in an ASP.

ASP applications were hosted by third-parties that basically did not have application expertise, but were only managing servers. Owing to the fact that applications were not written as native internet applications, performance was poor and application updates were no better, either. By comparison, current native internet SaaS applications are updated at much regular intervals than traditional delivery methods. For that matter, updates are done even monthly or daily.

Rather than buying and installing software in-house, companies access the application online. On-demand software allows a business to capitalize on its existing technology investment by outsourcing its other software needs.

An on-demand software company hosts the software and all related data on its servers in a centralized location. Clients pay a monthly or annual fee to access the software, hardware, data storage and even technical support.

In fact, on-demand software providers such as iEmployee may provide several product modules through a single application and authentication system for a complete integrated solution within a domain.

For instance, iEmployee’s design is based on a Single Application Architecture (SAA) to address problems faced by organizations today – integrating separate systems and moving data between them quickly and efficiently. iEmployee was designed to seamlessly integrate multiple functions of the HRMS (Human Resource Management Systems) domain. The architecture was conceived keeping in mind that HRMS is a dynamic corporate function and hence, there will be frequent changes. 

On-demand software makes upgrading a thing of the past. All clients have the most current software, with very little or no additional cost for upgrades. The combined challenge of cost, logistics and other problems of deploying and shipping software through CDs or Floppies, on each upgrade or new release, is soon becoming a thing of the past.

There are a number of advantages for clients using on-demand software:

  • Implementation issues are eliminated from the client site. 
  • Software costs for the application are spread over a number of clients and hence, cost-effective for an individual client. 
  • Clients don’t need to keep the software system up to date, available, and managed for performance. This can be done by the experts hired by the on-demand software provider. 
  • Clients can redeploy their IT staff and tools to focus on strategic technology projects within the company that impact the enterprise's bottom line. 
  • Clients can do away with the wastage of management bandwidth in routine but non-strategic activities and instead, let the experts (SaaS Providers) deal with it at a small monthly or annual fee.
However, there are some disadvantages, including:
  • The client must generally accept the application as provided, till the time the provider schedules to change. This is because on-demand software can only afford to customize the product or solution, at planned intervals, owing to the risk involved in doing so. 
  • Continuing consolidation of on-demand software providers may cause changes in the type or level of services available. 
  • From provider to provider, integration with the client's other systems may be problematic. However, many on-demand software providers like iEmployee provide interfaces to other critical applications that their clients are using.

4. Project Management Challenges in on-demand Software Delivery

All said and done, continuous requirements pouring from clients to make changes in the application and / or develop newer application modules, introduces a whole new gamut of product management activities.

The on-demand model, where customer needs are of prime focus, sees extreme challenges to deliver client requirements, with speed and accuracy.

There is always a constant conflict between delivering what the client wants, the time-to-market and keeping the quality of the software to its best.

Since the application is already live and functioning, making changes, big or small, need good amount of planning through a rigorously monitored SDLC and Change Management Process. 

It is very much like fuelling a plane while its flying and the passengers not feel the difference.

iEmployee follows a PDLC (Product Development Life Cycle) developed through its constant Business Process Reengineering (BPR) Exercises.

The idea of having a PDLC instead of an SDLC is primarily to keep the integrity of the product intact, when there are thousands of users already accessing the application. 

Within the ambit of Rational Unified Process (RUP), the Initiation and Elaboration Phases are much longer in a PDLC, as compared to other industry-recognized SDLCs. In Figure 1, you will notice that most number of peaks lie within the Inception and Elaboration Phases. This means that milestones with initial peaks are being carried out during these Phases. 



A PDLC is based on a postulation that the product is the primary client and end-users are secondary clients. 

Therefore, these Phases have to be driven by Product experts. The team of product experts, at iEmployee, is called the definition team and comprises of highly technical people with domain expertise and client-interaction exposure. 

The definition team is responsible to ensure that while addressing client requests the sanctity of the primary application is not compromised. 

Santosh Verma, Development Manager at iEmployee, is of the view that the biggest point of failure in this kind of a scenario and many others, is the communication between what the client wants, whether that can be integrated in the product and whether the developer has understood the client requirement, as is. 

Hence, all requirements need to be drawn to the minutest detail as possible and mapped to the project through detailed specification documents that result from client requirements, product research, ROI to the client and the company, design and architectural implications, performance of the application as a whole, security implications, dependencies and integration repercussions on existing code, etc.

5. Development Challenges 

Imagine you have to develop a new module and integrate that with an already existing one, which is huge in size and complexity. The chances of missing dependencies are very high. 

“Most of the times, the risk is so high that it can not only affect the product with un-wanted functionality and affect thousands of clients but also bring the whole application to a grinding halt and perhaps, even crash the servers”, says Senior Developer Amit Biswas. 

In such cases, the challenges for a developer are tremendous. 

Remaining focused and consistent with module specialization is the key. Experience and knowledge of writing high-performance code both at the back-end and front-end, following of coding standards, strong knowledge of Object Oriented Concepts, ability to identify and capture security vulnerabilities within the code, are of prime importance. 

The chances of writing bad code and creating security holes are certainly one of the biggest concerns for on-demand software provider and its clients. Incorporation of strong security algorithms and standards as a part of the coding guidelines is essential for the development team.

With the application code already deployed and running, each developer working on an existing or new code must strictly adhere to Software Configuration Management (SCM) processes as well as appropriately use the available SCM tools as defined by the process.

While change management can be very tricky, Abhishek Jain, Senior Developer at iEmployee opines that development of new modules becomes all the more challenging, since the developers need to think, and adhere to all standards, guidelines and requirements from bottom-up. 

However, the better part of on-demand software delivery mechanism is that customers get to use the product or new module almost instantly after it is deployed or integrated with the main application. And, hence, instant customer feedback is available much sooner as compared to other delivery methods. This increases the confidence level of developers working on the product. 

6. Testing and Quality Assurance


Multiple enhancements being developed at any point of time, poses a huge risk on the application integrity and quality. To avoid a direct conflict with the working application, all modifications and changes are therefore required to be deployed in a phased manner. Consequently, more than one stage-server, hosting the mirror copy of the live environment is made available.

One method is to then test the application enhancements on each stage server, as if they are being tested on a live environment. In many cases there are more than 2 or 3 such environments and application testing is undertaken on each of these servers in a sequential manner.

Another advantage of doing this is to be able to demonstrate the enhanced functionality or a complete new module to a potential or existing customer even before the final application is deployed on Live. And receive immediate and real-time feedback before release, without a need to invest time, resources and money in alpha and beta stages.

Having the flexibility to be able to change the application faster than other models, the dynamic business environment forces the engineering team to continuously innovate and keep pace with the increasing needs from clients. Consequently, there is a need to regularly manage, control and audit quality of processes, at all stages in the PDLC. 

iEmployee, therefore, follows the Deming Cycle or the Plan-Do-Study-Act (PDSA) Cycle as a part of its regular BPR activities. The Deming Cycle forces the entire engineering team and in many cases the whole organization to revisit its existing processes, study the loop-holes and bottle-necks to efficiency, and finally, act upon these findings to improve further. In other words, Quality improvement is not a one time exercise but a continuous cycle of Plan, Do, Study and Act.

Hence, for an on-demand software provider, Quality Assurance is all about continuous improvement. It is not a good-to-have paradigm. It’s a necessity. 

With more and more companies realizing the benefits of Software as a service (SaaS) -- or on-demand software model – it is coming on fast as the Next Big Thing, delivering pay-as-you-use applications over the Internet.

Research firm IDC estimates that spending in the SaaS market will reach US$10.7 billion worldwide by 2009. 

So, is this the future of the software industry? It’s anybody’s guess!

[Akash Dave is the Operations Manager of Engineering at iEmployee, a provider of on-demand workforce management software solutions.]

About iEmployee 

iEmployee is a leading provider of on-demand workforce management solutions, enabling companies to eliminate paperwork and dramatically reduce employee administration time from hours to minutes. iEmployee’s full suite of web-hosted Time and Attendance, HR/Benefit, Pay Stubs/W2 and Self-Service applications offer cost-effective solutions, requiring no IT investment or overhead. Endorsed by leading payroll providers, iEmployee is the solution of choice for over 2000 companies in the US. To Learn more, visit iEmployee at www.iemployee.com.




Added on August 13, 2008 Comment

Comments

Post a comment