We've been busy provisioning a whole bunch of new customers in my role at Forcelogix.
Only now have I had time to sit back and look at what we have done in the last few years to get to where we are.
Forcelogix is not my first "foray" into Software as a Service Solutions, but when we started up Forcelogix, it was at a time where Salesforce.com was truly setting (and still is) the benchmark in this space. As such, customer expectations and knowledge were far greater than my last foray into On Demand services.
As we have been acquiring new customers, it has been a learning curve for us as an organization. We have our own Product roadmap of course but in implementing our product for these new customers it has "encouraged" us to fasttrack some of the items on this roadmap. Without successfully doing so, we would not have closed the deals that we have now and we would not have retained the customers we already have. A successful ongoing SAAS business is all about Monthly Recurring Revenue and without successful user adoption you will fail miserably in this area.
As such I decided to write up here and provide to you the list of "Must Haves" you will need to implement if you are looking at starting up a successful Software as a Service Company. Hopefully this will be useful to some of you out there.
1. Agile Development Methodology.
Your Dev Team must adopt an Agile Development Approach to delivering product.
Software as a Service Development is all about low cost, high quality and speed of delivery.
You cannot afford to adopt a bloated and slow approach to delivering features.
Users will identify features and issues that will become showstoppers unless you can resolve quickly.
The ability to deliver new features quickly will also help retain user interest in your product.
2. Dynamic Localization.
If you have any hope at all of selling your product to Multi-National Companies, you need to provide a web based mechanism for your customer to localize to their language and culture. Localization cannot be the traditional Development function. Each customer and country has their own terminology and set of idiomatic expressions. For successful user adoption of your product, you need to be able to let the customer decide how to translate your product.
3. Offline (Occasionally Connected) Module.
Without an offline module, you will not get far in the B2B On Demand Space.
Users will always want to have the option of using your product without an Internet connection.
4. Reliability.
Not much needs to be said about this. If users cannot access your system they will stop using it. Just make sure you have plenty of redundancy in your data center, and detailed recovery plans which have been tested.
5. Ease of Use and User Experience.
Users have very little patience, and if they are required to read a "book" on how to you use your product and attend 3 day training courses you will not have good user adoption. A 2-3 hour Web conference should be sufficient. User Experience goes hand in hand with this. A non intuitive application is doomed to failure. A simple UI along with good performance will go a long way in building up user adoption. AJAX can help with the "perception" of speed in your application.
6. Measure.
Provide a convenient way for the "Client" Administrator to monitor usage.
Implement a usage report in the "Admin" view of your product. You need to identify patterns of low usage and act on them quickly. You may see such things as lack of communication, "incorrect data" are the cause of some users not using the product.
7. Communication
Communicate regularly with your key contacts. Make sure you are always up to date on customer perception and what is happening in the customer organization. Personnel Changes, IT Policy changes, Business process change can all impact user adoption and you need to spot these early.
I hope you find this useful.
Wednesday, August 29, 2007
Seven Steps to successful user adoption of your Software as a Service Solution
Posted by
Troy Wing
at
3:37 PM
Labels: B2B, Monthly Recurring Revenue, On Demand, Software as a Service, User Adoption
Saturday, July 21, 2007
Tutorials on LINQ
Excellent blog with tutorials on LINQ from Scott Guthrie.
Scott Guthrie on Linq
Posted by
Troy Wing
at
5:57 AM
Friday, July 20, 2007
LINQ and useful Blog
Last few days finally had a chance to do some research, after the last few months of heavy development and deployment for new multinational customers.
I focused on LINQ the Microsoft technology as a potential answer to something which grows tiresome for me when architecting on demand applications. I don't know about you all out there, but I am getting tired of building Data Access Layers and trying multiple different ways of defining SQL statements in this layer and reviewing all sorts of frameworks which are supposed to help in this area.
After playing around with LINQ in Visual Studio.NET codename "Orcas", I can say I am extremely excited. LINQ is basically Microsoft's response to this problem. It provides a way of managing in code, relational databases as objects. Thus merging the normally disparate application code and SQL queries against the database.
Also found an excellent Blog from Wriju at Microsoft. Check it out. I found it very useful.
Wriju on LINQ
Wednesday, July 18, 2007
Microsoft Startup Zone
Check out this link. Microsoft article on Forcelogix. This Microsoft site provides excellent case studies on SAAS Startups and on what they are doing in Partnership with Microsoft. There are some excellent Blogs there also with info on startup challenges, funding etc.
Forcelogix Article in Microsoft Startup Zone
Posted by
Troy Wing
at
3:57 PM
Monday, July 16, 2007
New Stuff
Note to self: find something original to write about Silverlight, WPF, Linq and Acropolis.
This is really cool stuff to be playing round with, and there are plenty of bloggers writing about them now. Just need to find a different angle to discuss.
Posted by
Troy Wing
at
5:46 PM
Labels: Acropolis, Linq, Silverlight, WPF
Internationalization and Localization
Just spent the last 2 months, building and rolling out localized versions of our web and windows products to multiple countries including Japan, The Netherlands, UK and Ireland, Belgium and Greece.
This was a true challenge in the scheme of things as localization and translation is traditionally done at build time of applications, but in the On Demand world this is not practical as every client has different needs and we are using a single instance of the application (hence the term multi-Tenant).
Our challenge was two fold, building a localization architecture which was dynamic for both the web piece and then being able to synchronize localization information to offline clients.
What we did was move application string resources to a SQL Server datastore and still use the .NET Framework Resource Manager. This enabled us to provide an Admin module to our clients in our On Demand Web Application which allowed our clients to perform translations dynamically. The benefits for doing it this was immense, the client could see the results of their changes immediately in the front end application on the web, and the translations would synchronize down to offline users on their next synchronization.
The project is a major success and we have users all around the globe using our application localized to their culture.
Posted by
Troy Wing
at
4:07 PM
Labels: ASP.NET, Internationalization, Localization, On Demand, SAAS, Software as a Service, WinForms
Monday, May 21, 2007
Web 2.0, 3.0 or is 2.5 what we really need?
As CTO of a SAAS delivery company, I am constantly trying to keep up and research the plethora of industry trends (and hype) to identify technologies that could actually benefit our business. You have to be really careful to separate what is truly ground breaking and what is market hype.
When the term Web 2.0 became widely popular a little way back, it really encapsulated the ideas of providing a rich user experience within the browser framework thus eliminating the need for desktop applications.
And to action these ideas, the AJAX approach was widely touted as the new enabler for this, although many of the core components of Ajax have been around for a while (Microsoft Outlook for the Web being a prime example of this).
The interesting thing about web 2.0 and AJAX as that many of the early sites using AJAX were really B2C type solutions , I had not seen any real Web Based Business Applications fully using AJAX.
We use Microsoft Ajax.NET components in our products, and have looked at AJAX enabling libraries such as Scriptaculos.. All these libraries are innovative and useful in their own right in reducing dev time, but fundamentally AJAX really a whole bunch of javascript which may communicate asynchronously with the server.
Its always interesting to see other sites talk about how AJAX is true thin client, but the amount of javascript which gets downloaded can be truly immense and running as interpreted script in the browser, you can be just as susceptible to performance issues as any windows application. So there is always a balancing act of functionality vs. performance with Ajax.
Now everyone is talking about Web 3.0 and what that may entail.. Lots of posts in the blogosphere about this.
Before we even get there, I think a Web 2.5 might be more realistic for business applications.
I have been looking very carefully at 2 Microsoft technologies.
SilverLight (which is very new) and Clickonce (which has been around since .NET 2.0).
In fact as mentioned in earlier posts, we have deployed Clickonce Offline Editions, but as part of this I have also included ancillary clickonce apps which are truly multi-tenant based and utilize our web based backend via web services for functionality. Its works incredibly well and believe me the development time is signigicantly less than AJAX equivalents we have developed.
Now I am evaluating Silverlight which definitely looks like a competitor to Adobe Apollo (which packages Flex and Flash).
I am most definitely excited about Silverlight. It may be a plugin but it is cross browser capable and platform independent. It also utilizes a cutdown form of the .NET framework which will give it rich development capabilities and is compatible with Visual Studio.NET.
I can definitely see Silverlight working hand in hand with our clickonce solutions.
I think Silverlight is going to take us to that Web 2.5 Level, where we are actually using newer technology than AJAX which will enable business solution providers to deliver truly rich internet based business applications with significantly less development costs and time than the traditional AJAX solutions. Some may compare it to Active X Control development for the web, but key differences lie in cross browser capabilities,.NET Framework and security model.
I would love to hear your thoughts on this.
Posted by
Troy Wing
at
7:36 PM
Labels: Silverlight, Web 2.0, Web 3.0