April 09, 2010

7 Keys to Building and Deploying a Successful SaaS Application

Posted by Ken Wilner

Colleen in her blog post wrote about the 4 key things you want to focus on when transitioning your business to a SaaS model. She shared with you how you need to think about the pricing and packaging, about the infrastructure requirements and cost structure, about relationship with the customer that you are selling the service to and how that differs from selling them product, and lastly about the companies that with which you need to partner. And while in my experience, most Application Partners (ISV's if you prefer) that I talk to 1st think about the fundamental changes that SaaS means to their business, and secondarily about what it means to the application, there are some key areas that you are going to want to focus on relative to your application in order to have a successful and effective SaaS strategy that will stand the test of time. (I guess the mentality is… "If the biggest challenge with getting to SaaS is the application, I am in good shape!")

Now everyone may have their own list of what they think is important for building and deploying a successful SaaS application. Here at Progress we have over 250 Application Partners that have already deployed their application via SaaS. These are partners that we have work closely with to not only get their business to SaaS, but their application as well. Based on working with these partners, and lots and lots of discussions we have developed what we are calling the "The 7 Keys to Success". These are 7 areas that we think are so key and critical to all SaaS applications that everyone who is going to SaaS should consider them primary focus areas from a functional, architectural, and operational perspective for their SaaS-based application.

So what follows here is a brief introduction to the each of the 7 Keys. Over the next few weeks, entries will be posted to this blog that address each of the keys in more detail. In the mean time, think about what these "keys" mean to you, and how you are effectively addressing them within your SaaS-based application.

  1. User Interface Flexibility

    Being able to easily use the UI technologies that meet the needs of the customer. UIs are as much about flash and sizzle as they are about usability and function. What's clear is that there are a huge number of UI technologies in the market today, and more coming out all the time. How do you decide which ones to use? Does your application need to support more than one type of UI to meet the needs of different types of users? How do you architect your application to support multiple UIs including the ones that you don't even know about yet?
  2. Productivity

    Using a tool set and language that is highly productive and is focused and purposed for the type of business application that you are building.

  3. Operational Excellence

    Scalability, reliability, availability, business continuity, disaster recovery, hosting choices, etc.

  4. Security & Compliance

    Ensuring that data and applications are accessed only by those who need to know. Regulatory and other compliance requirements are putting a large amount of pressure on applications to incorporate more security capabilities. As an ISV, when you deploy your application via SaaS versus deploying on-premise it presents not only technical challenges from a security perspective, but introduces a certain amount of the FUD (fear, uncertainty, and doubt) factor from your tenants who need to be assured that their data can't accidently fall into the hands of other tenants. What are the most relevant security issues facing SaaS providers, and what are some of best approaches for addressing them?

  5. Multi-tenancy

    Going from 1 to N. Multi-tenancy is all about improving scalability and reducing costs by running multiple customers or tenants on a single instance of your application in such a way that they each believe that they are executing in isolation. It's all about sharing of resources. When you consider the infrastructure tier, database tier, and application logic tier of your application environment, there is actually more than one way of doing multi-tenancy because you may provide more sharing at one level and less sharing at another, so we can talk about degrees of multi-tenancy depending on how much sharing you do at each level. So what are some of different approaches to multi-tenancy, what benefits does each approach provide, and what are some of the ways of implementing each approach?

  6. Integration

    Ability to easily integrate to any other application by supporting all relevant standards. As more applications move to the cloud and SaaS, a way to extend the value and reach of your application is by ensuring that it is integrateable, but what are the most relevant standards and approaches to doing standards-based integration in the cloud, and what are the tradeoffs with each approach.

  7. Personalization and Customization

    Ensuring that the application looks and behaves as the tenant and the end-user want. Personalization focuses on doing that based on the user experience and past behavior whereas customization is performed by explicit settings. It may involve limiting or directing the information that a user views based on past requests, it may involve setting the skin of a screen for all users of a tenant based on company standards and regulations, etc. However, what are some of the types of information that you may want to personalize and/or customize, and what are some of the approach that you can use to manage this information?



    Ken Wilner

 

 

 

 

 

December 23, 2008

Is that quicksand in your cubicle...or are you just stuck?

Posted by Michael Boyd

"Dang, now we are in trouble..." - Taggart, Blazing Saddles (1974)

In that opening segment of Blazing Saddles, poor Bart and Charlie find themselves stuck in quicksand.

But what does a 34-year old satirical Western comedy film have to do with you and your application?

Well, you might use Taggart's line when you realize you can't give your business users what they need. Or you can imagine yourself in your cubicle, stuck in quicksand, unsure how to get started (if your imagination is not working for you, see it for real here).

But you don't have to be stuck, the Application Modernization process has three possible phases - Upgrade, Migrate and Transform.

Slide19


  • Upgrade - Loading OpenEdge 10 and deploying it without making any code changes
  • Migrate - Adding in new capabilities without making major architectural changes
  • Transform - Using new capabilities and new approaches to change the architecture

The difference between each phase is the amount of effort you put into it. The more effort you put into your application, the greater value you will get out of it.

To start climbing out of your quicksand pit, follow these steps:

  1. Define your top business priorities - what does the business need to do (or not do) to be successful - next month and in the next year(s)
  2. Research new capabilities - what is new in OpenEdge that can help you? (Hint: Search on Upgrade, Migrate and Transform on PSDN Online)
  3. Review the common Application Modernization strategies - to determine what solutions are best for you. (If you don't know what they are, then you must have missed our Modernization webinar - but you can see the replay here.) 
  4. Determine what the right level of effort is for you - just the right amount to maximize the value to your users
  5. Define an incremental plan that works for you - so you can determine the pace and priority

With this proven approach, you can get your foot on the rail and start climbing out of the quicksand.

And if anyone knows how to get quicksand out of a keyboard, please let us all know...

November 21, 2008

All I want for Christmas is "getting my application to do"...

Posted by Michael Boyd

When I speak with customers, I often hear "if we could only get our application to do"... (well, just fill in the blank for yourself and you get the idea).

The more we talk about their problem, we seem to find out that they really are just unsure of how to get started - of how to start taking the small steps to evolve their application and make it easier for them to "get their application to do" just about anything that they need to for their users.

Application Modernization is the process for systematically evolving your application so you can:

  • Preserve the OpenEdge-based business logic you have already created
  • Reduce the time and effort you need to spend maintaining your application and
  • Open your application to more capabilities and features

I'll be presenting a webinar next week entitled Application Modernization: Your Foundation for Agile Growth.

If you are unsure how to get started "getting your application to do"... well, just about anything... please come and join us. Full details (and some other great materials) can be found at www.progress.com/modernize.

And don't forget to bring your questions - we'll have a live Q&A session during the webinar.

Progress Software
Progress Software