Does moving to SaaS mean you should abandon your on-premise software?
Posted on April 23, 2009 by Paul Giurata
VCs are betting on SaaS
I recently attended a panel discussion "Why SaaS Makes Sense in 2009" with participants from two of the leading VC firms in the Valley, Hummer Winblad and Emergence Capilal. What was clear from the event is that VCs are betting on SaaS and Cloud Computing as the future. This is where the action will be. It mirrors what leading analyst Gartner reports as well as our own experience where more than 80% of all our engagements are now around SaaS strategy and application design.
So if you have an existing solution that uses on-premise software, do you need to replace it now with a SaaS and cloud infrastructure? Yes and No.
Big companies are not likely to re-write core applications any time soon
First lets define what what I mean when I use the term on-premise. In its most basic form this refers to desktop software that was distributed via a company servers using only company infrastructure for hosting, and delivery. Big companies have invested enormous resources in developing the necessary infrastructure and the core on-premise applications and they are not likely to rewrite these anytime soon.
Deliver new services using SaaS and the Cloud
However all companies are continually developing new applications or trying to extend the functionality of their existing services (e.g mobile). This is where they can more easily implement SaaS and take advantage of the cloud infrastructure. For some companies SaaS will supplement their current services, for others it can be the way to deliver completely new applications. On-premise software will continue to exist, but rate of development and deployment of SaaS applications will be higher.
At the point where a on-premise solution becomes technically irrelevant or simply too difficult for a new generation of customers to use or too costly for IT to maintain, companies will have the option to replace it with a cloud infrastructure-based solution and design their application user experience with the SaaS LifeCycle in mind. For some organizations the move will be fast, and for some it will be selective and incremental.
The process of buying a new car offers a good analogy. You aren't too likely to replace your 2007 Mini Cooper with a 2009 Prius. It just doesn't make economic sense. But if one of your family members now needs a car, or your Mini Cooper starts giving you problems, you buy the hybrid.
Don't abandon what works. But start now to extend existing apps.
So the real question is not whether should you abandon your on-premise solution, but rather how can you extend your current applications to take advantage of SaaS or develop new services that are designed as SaaS. Look at SaaS as way to supplement your existing solution, achieve scalability, increase productivity, broaden reach and create competitive differentiation. Just keep in mind that SaaS is more than just a technical delivery model for software; it includes a new business model oriented around service and user experience.
One interesting side-note: While the SaaS model is famously known for being hosted in the Cloud, it is not mandatory that these apps be hosted outside of the firewall. Several large companies are deploying SaaS in-house, gaining the benefits of the SaaS LifeCycle as well as a centrally managed low-power, high-efficiency infrastructure.
The imperative for modular reusable UI in SaaS
Posted on February 19, 2009 by Paul Giurata
Every VP of development knows the value of creating a shared library of commonly used functions. Modularity and reuse are standard practices for most coders and absolutely mandatory for scalable application development.
But the imperative for modularity in application user interface design (UI) is often overlooked. This is surprising because the presentation layer of any enterprise application is the most frequently updated and often one of the most time-intensive aspect of the development process.
In today’s market, services and software applications need to change as businesses and their competition evolve and shift. This is particularly true for SaaS which inherently is all about the ability to adapt quickly and come out with frequent updates. A Rich Internet Application UI with modular reusable components enables your development teams to implement changes faster and cleaner. This flexibility, simplicity, and adaptability translates to substantive ROI as well as faster time-to-market.
The alternative (and more common) approach to UI design is custom screen-by-screen production. A designer builds screens as they are planned - essentially PhotoShop comps are converted into individually-built Flash or HTML/JavaScript user screens. It certainly is faster to prototype and demo this way. But when it comes to deployment of a scalable SaaS application that can can be quickly reconfigured, it is essential to spec, user validate, coordinate and develop a component-based, modular user interface system.
Developing a modular UI obviously takes more time in the early stages. But the approach pays off very quickly both in time and dollars. A UI library of modular, reusable code, can save distributed development teams up to 85% in application front-end development cycles and makes it much easier to change directions then it would with customized screens. The added benefits include increased consistency of function across applications, a standardized look, easier adherence to regulatory compliance standards and reduced QA time.
For SasS in particular, modular reusable UI is an essential component to profitability and success.
SaaS agile application design for a Darwinian economy
Posted on February 13, 2009 by Paul Giurata
As layoffs mount, consumer confidence drops, and businesses cut back spending, the market for Software as a Service (SaaS) is becoming hyper-competitive with demands for ever shrinking release cycles. It is survival of the fittest where good products can fail as easily as bad, and rapid adaptation is the key to survival. For companies that offer a SaaS solution, this means focusing design and development on releases that add immediate and significant business value.
Innovating and optimizing user experience is one area where companies can add value without adding lengthy development cycles. SaaS application and UI design can offer enhanced performance, improved application productivity, increased customer engagement, cost savings through business process reengineering, and enhanced customer loyalty. At Catalyst we implement SaaS application and user experience design using an agile method with short time-limited sprints (weeks not months). The agile approach is especially relevant in today’s Darwinian-type economy.
What do we mean by Agile
Agile means many things to many people, but for organizations that deliver services through software, agile application design means designing, testing, and implementing iteratively and incrementally, with each stage providing a self-contained deliverable. By developing the application design incrementally, the usability, productivity and real business value of the application can be evaluated during the project rather than waiting until the very end of the project. Agile also implies a people-oriented process that requires working collaboratively with tight feedback loops.
Catalyst application design sprints
Catalyst typically works in sprints of 4-6 weeks. Each sprint enhances the software application’s market value and adds an increment (sometimes large) in functionality and improvements that can be delivered to the customer. The relative shortness of the sprints improves the transparency of the process and gives the design and development team regular and achievable goals. The shortness also enables us to respond quickly to changing needs or requests from users, stakeholders, or external conditions such as the markets.
Our agile process generally fall into four sprints:
- Sprint 1 - design core modular, reusable UI system
- Sprint 2 - code the reusable elements into a high-fidelity prototype using the selected RIA technology (e.g. Flex, AJAX, Silverlight/.Net)
- Sprint 3 - derive, design and develop all of the application views with production-ready code snippets and a catalog of reusable UI elements
- Sprint 4 - integration support and adaptive refinement
The pressure felt by our clients in today’s market is palpable. Whether a CIO, VP of development, or development manager, each needs to justify any SaaS design project with early and frequent wins. A focus on user experience design using agile techniques achieves this with substantive, incremental deliverables and continuous refinement and integration. This methodology for SaaS application design enables companies to get out releases quicker, and be confident that those releases will be well received by existing and new customers.
The progression of economic value in SaaS
Posted on February 02, 2009 by Paul Giurata
I ordered a coffee and a scone at Starbuck's the other day. As I was reading the latest dismal financial news, the barista said "That will be $5.27 please." I paid but then as I sat down, I started to think about how it is that Starbuck's can continue to charge so much for a cup of coffee, and a small pastry. It struck me as even more interesting that Starbuck's doesn't even advertise - no TV ads, no salesman. Then I realized that Starbuck's economic value isn't about the cup of coffee as a commodity, a good or even a service. Starbucks can charge a premium price because the economic value is an experience.
You can view coffee as several kinds of products.
- As a raw commodity, coffee beans are worth maybe 2 cents/cup.
- If you grind up the beans and package them as a good for sale in a store, they are worth, say 20 cents/cup.
- If you take the same coffee and brew it for a customer in a vending machine or serve it at a coffee shop, it can sell for $1/cup. Provide the service of frothing the milk and you can charge an extra 50 cents!
- Now surround that brewing process with the environment of a Starbucks, Peets or Caribou, where you can read the paper, check your Blackberry, or chat with friends, and that experience enables you to charge $3+/cup.
This progression from value based on commodity to value based on user experience is a fundamental process in today's economy.
Commodities are typically thought as raw materials - things like corn or iron. Use these raw materials to make a product and you end up with goods such as cornflakes or automobiles. But as more competitors arise in the market, goods tend to become commodities. When that happens, it no longer matters who makes them. All that people really care about is price per feature. So companies try to differentiate and beat each other up by offering more features for lesser and lesser prices. This relatively destructive approach is especially common in economically turbulent times like now.
Services delivered through software are being commoditized just like goods. The classic example is long-distance or teleconferencing services where they are sold almost exclusively on the basis of price (although see InterCall). Software as a Service (SaaS) is another example, where many companies try to compete on price once competitors enter their market space.
But there is another way. The value chain is to move from a goods and services economy, to an experience economy, where user experience is the real economic value in any offering. The easiest-to-understand example of this today is the iPhone. There is no great technological feature breakthrough in the iPhone. It is completely a commodity cell phone when you look at it from a technical perspective. What sells the iPhone and keeps it at a price premium without viable competition is the user experience.
When it comes to SaaS, there can needs to be the same progression of economic value from a service with a set of features, to a service with an innovative and compelling user experience. The features of the software are not the only goal (those can become commodities). The application needs to be designed around the user experience to provide a sustainable value proposition. This requires an understanding of agile application design, high value scenarios, usability testing, user validation, addressing the full customer lifecycle and innovative use of Rich Internet Application technologies.
Customized SaaS - not an oxymoron
Posted on January 14, 2009 by Paul Giurata
Back in 2005, I wrote an article for SIIA.net about using meta-data driven design, rather than code changes, to create highly customizable SaaS applications. Since customization continues to be a hot topic in the SaaS industry and often a stumbling block to adoption for many types of businesses, I wanted to briefly review how a SaaS can be designed to allow for easy customization and configuration.
At the most basic level, for a SaaS to be highly scalable and efficient, everyone starts with a single instance of the application. This is the concept of multi-tenant-efficiency. Client data is stored in a shared database, but authorization and security policies ensure that each client’s data is kept separate from that of other clients.
To customize a SaaS application, you don’t modify the application in the traditional sense. No one fiddles around in the database, modifies schema or creates custom code (hoping nothing breaks), Instead each client uses meta-data - “data about other data” - to configure the way the application works and how it provides a unique user experience and feature set for each client.
Customization/configuration using meta-data can run the gamut from from terminology/lexicon and branding/layout, to individualized workflows, to data model extensions, to integration from other systems, to user provisioning and even to business logic.
The challenge for the SaaS architect is to design and define the requirements for customization/configurability early in the definition cycle and then design easily-configured UI components that can manipulated in a self-service manner by non-technical clients.
Needless to say, if you are developing an enterprise SaaS solution, furnishing this type of configurability, customization, and control is a big win for your clients and your sales team.
Finding the sweet spot - when is it a perfect match between client and provider?
Posted on December 15, 2008 by Paul Giurata
'Tis the season when companies reflect on their achievements over the past year and begin setting goals for the upcoming year. Catalyst is no different. We've had a great 2008, with many successes, particularly in the SaaS market. We now have a client portfolio of almost 300 enterprise application design projects, with approximately 50 of those being SaaS.
Looking ahead to 2009, there will certainly be new challenges (and opportunities). The full impact of the economic downturn is difficult to assess, but we do know that organizations will be looking to spend wisely on user experience design projects, with a sharp focus on acquiring and keeping customers. We also know that there will continue to be new RIA and user interface design firms springing up (and fading away), all vying for business in a tighter market.
Surviving and thriving in 2009
So for Catalyst, part of our 2009 planning is to identify the type of projects where we bring the highest level of value and clearly differentiate ourselves from potential competition. In other words, where is that sweet spot where the requirements for a client's project perfectly matches our unique experience and skills.
This search for a "sweet spot" is something every service or product company should undertake. It helps to define everything from your BD and marketing, to your capital requirements and hiring.
The sweet spot for Catalyst Resources
In Catalyst's case that perfect sweet spot is when there is a intersection of three client requirements:
- user experience design of a mission critical business application
- modular, reusable UI using RIAs, typically applied across a product family or multiple applications
- a scalable SaaS implementation that is intended to optimize the bottom line
Picture this as a 3D scatter chart, where each axis represents a client requirement. The sweet spot for Catalyst is the point where each client requirement is at the maximum value along each axis.
Of course we work on other RIA and user experience design projects that fall outside of this perfect sweet spot. Any project that requires even one of our particular skills, is a project where we confidently deliver great results. The sweet spot does not necessarily limit the type of projects we undertake. Rather the sweet spot is that point where Catalyst will innovate and execute on a project better than any of our competitors - it is a niche we own.
Other companies have their own sweet spot: Apple's sweet spot, for example might be strong industrial design, integrated software/hardware, and "insanely great" user experience. Costco's sweet spot might be low price, broad selection, helpful staff. In both cases, if a customer needs this intersection of products/services, then it will difficult to find any real competitors.
Finding your own sweet spot
Discovering your company's own sweet spot can require a lot of sober and realistic examination. But the diligence is important, especially in tougher economic times. Look to where you can provide the greatest innovation, the right teams, technological relevance, and a continuing record of delivering bottom line results
.
Use multi-disciplinary teams to design enterprise RIAs and SaaS
Posted on December 03, 2008 by Paul Giurata
I've written a great deal about the intricacies of designing the user experience for an enterprise RIA or SaaS. These applications typically need to handle very large data sets, scale to service thousands of users, and address complex business logic that encompasses many functional elements and scores to hundreds of screens.
While many organizations attempt to develop their SaaS or RIA using their internal IT department, perhaps assisted by a web design or Flash creative firm, the end result will "feel" like it was built by an IT department. It may be functional, may even be visually pleasing, but it will not identify high value tasks, streamline business processes, increase user productivity, build the brand or drive adoption & use. To achieve this level of business value you need a UI engineering team of experts, each with a different focus, distinct skills and tight accountability.
Multi-disciplinary teams
Based on our experience designing over 270 pieces of software, the most successful projects follow a well-formulated process using a small, highly experienced, multi-disciplinary team comprised of an experience architect, experience designer and experience developer. This collaborative team then works with an organization's IT department to smoothly integrate the design with existing infrastructures and back-end systems.
Each of these primary team members needs to be facile in several different domains and take on different roles at different points in the project timeline. Below are brief explanations of some of these roles.
User Experience Architect
- Functional requirements definition - work with the product's stakeholder to define an initial set of key functionalities based on business drivers and value proposition
- User studies & ethnography - observe the actual users and usage environments in order to refine functional requirements and document the actual user scenarios that will drive the User experience design
- Personas - create personas from the information collected during ethnographic studies. These represent typical users and help the design team keep a clear imagine for whom they are designing
- User validation - involve real users throughout the design process to enable testing the coherence of early mockups and ensure potential usability issues are identified early on
- Business process design - look for ways to organize complex business processes into simple logical structures that can be easily communicated
- UI architecture - design consistent behaviors that apply to the User Interface throughout the application. This enable the user to quickly understand, use and predict how the application will behave
- Conceptual models - define conceptual models that help users to naturally comprehend what they are trying to accomplish with the software, the kind of data they are manipulating, how the data is organized and their goals for interaction
User Experience Designer
- Information design - synthesize user requirements into interaction use cases that define a product's usage from a user's perspective
- User interface design - begin with fast, low-fidelity prototypes and iteratively develop into interactive, high-fidelity prototypes, incorporating feedback from user validations throughout to identify how "intuitive" the application is and the value it provides from extended use
- Interaction design - optimize and test navigation, control elements and messaging for user comprehension and efficient and effective use
- Branding and visual design - define the colors, graphics, fonts, motion, polish and fluidity that create the brand experience, always testing with users
- Documentation - provide screen functionality specifications and visual design style guide
User Experience Developer
- Code clickable models - provide a full clickable model using dynamic data of exactly what that software will be like when it is released
- Presentation layer architecture - map out and validate proposed UI architecture so it is consistent with technical architecture, before writing any code
- Client side technologies - select and implement the UI using the optimal RIA for the users and IT infrastructure (e.g. AJAX, Flex, AIR, Silverlight, Java). Re-factor UI designs into a customized library of UI components, data, and actions
- Server-side technologies - translate what is going on in the back-end systems to communicate with the front-end user UI, requiring fluency in multiple languages and Web services
- Data and business logic implementation - rapidly iterate designs and systematically incorporate feedback to expose and validate that all data elements and UI components are matched to the database schema
Designing user experience for enterprise RIAs and SaaS is complex - no doubt about it. But compromises to the user experience will have a fundamental negative impact on the success of any application, so it is not something you can ignore or marginalize. To maximize business value, you should look for a multi-disciplinary team with diverse skills and tactical experience to design the application and augment the technical development work of your internal IT group.