Monday, July 21, 2008

There is no such thing as "functionally complete"

I just completed revisions to our Software Development Methodology handbook. It got me thinking about how many times I have written something like this and how its changed over the years.

As would be expected from a Software as a Service company, we approach things from an incremental development and update perspective.

We look to deliver new features every 6 to 8 weeks. We have a product roadmap which is a living and breathing organism. At the beginning of each year, we sit down (representatives from Marketing, Client Services and R and D are all there).
We look at the Roadmap and work out what is needed for the following year.
Once we satisfy this objective we then proceed to work out what is needed in the first 6 to 8 week iteration. As we release each cycle, we review the roadmap and determine the requirements for the following cycle.

This is the reasoning for my post title. At no point do we ever say our product/service is functionally complete. Back in the days of on premise software, we would pursue the venerable Waterfall approach. We would map out and plan for a development project of 12 to 18 months, aiming for at most 1 release per year. Users wouldn't even get close to the new version until it was close to being "functionally complete" as a product. I would remember our customers/prospects getting all excited by some great new feature we would show them in a presentation, but a year is a long time in business, and by the time the product update was officially released, all the positive "vibes" and excitement of the initial announcements would have truly been forgotten.

By having 6 to 8 week feature updates, we are continually registering small wins with our customer and prospect base and keeping strong the goodwill of those customers. It also makes the term "functionally complete" an anachronism. A service should always be evolving and adapting. If you wait for 12 to 18 months between releases, your product will die a slow death.

Tuesday, July 1, 2008

Google building Business Apps

I read a very interesting post by software engineer Sergey Solyanik who tells his story of leaving Microsoft, going to work for Google and returning to Microsoft.

Its a balanced account of the reasons why he returned to Microsoft, What caught my eye and got me thinking was his opinions on the challenges Google has in building solutions targeted at business. Google along with its primary search products has built a series of popular "free" products. By being "free", Google enables its development teams to be more "agile" and release code to production environments frequently, however accordingly there seem to be fairly frequent introductions of new bugs and outages but by being "Free", the user base is also more accepting of these issues.

This would appear to be a major inhibitor to Business market dominance. As Google begins entering the business market, the dynamics totally change. You have to build apps which are an integral part of running a business, not just "free" nice to haves, otherwise you will need never get widespread adoptance. Businesses by their very nature are far less forgiving of problems and as such would prefer to pay to ensure adequate quality,reliability and support are in place for any products they choose to use in their business.

Technical Support for business with SLAs in place does not currently exist at Google.
This got me thinking about the Apps colloboration. This is a pretty smart move by Google. I have to think this would benefit Google more than though. Google partners with a company with huge credibility in the business world and they also get to leverage the infrastructure for training and support of customers that have in place. In a way, Google is outsourcing these functions to

This is all good for customers who are using and Google Apps, but what about the others who don't use but want to use Google Apps with agreed upon SLA's and support?

Its my guess though that Google is not going to setup huge Support and Client Service Departments, I think they will continue with outsourcing this part of the business and utilizing business partners. Data Centers are also more focused on running business apps with high percentage uptimes and SLA's in place. I am not sure how Google's distributed server farms will handle business applications at guaranteed Service levels.

Google are certainly big enough to make it in the Business Market, but its not going to be a quick win.

Sunday, June 1, 2008

Is Microsoft Silverlight ready for prime time Business SaaS Development?

There is no doubting the success of Adobe's Flex development product set in the SaaS Web 2.X world and there is no doubt with the release of Microsoft Silverlight Version 2 beta, Microsoft is attempting to head the same way.

Silverlight 1 was clearly targeted at simple website development with video streaming, animations and javascript/Ajax dev framework to enable a richer web experience, but it wasn't close to being ready for business application development.

I spent some time researching SL2 in my continuing endeavours for improving SaaS user experience. It introduces some major functionality including

1. A cutdown .NET managed code environment as an alternative to Javascript. This will be an attractive feature for the literally millions of .NET developers out there.
2. Ability to generate and use proxies for consuming SOAP and RESTful based services (A critical requirement for Business applications who need access to hosted databases).
3. More standard controls such as listboxes and datagrid.
4. Linq to SQL

SL 2 is definitely a huge improvement over SL 1 but there are still some major pieces to the puzzle missing.

1. Certain key controls are yet to be released including a tab control. Tabs are a very common metaphor nowadays in business apps. I cannot seem to find a combobox implementation, the most basic of databound controls.
2. Linq to SQL is great for handling collections of generated proxy data objects but what about situations where the data schema is not known at compile time, for example CRM and Business Intelligence Applications
3. Third party vendors are still building their Silverlight components, vendors such as Infragistics, and Telerik having announced their intentions to release but have yet to do so.
4. Cannot merge external resource dictionaries which makes it difficult for dynamic skinning.
5. No concept of a right click. Which makes it difficult to build right click context menus. Can be done by Javascript hookups, but is not a default behavior in managed code form.

So is Silverlight ready for SaaS? Well, due to its flexible UI design foundations (XAML) which enable you to build your own controls and the new capabilities for managed code development and Service consumption, the answer is yes (if you have time to work around the controls that are lacking). But I suspect that many ISVs will wait before adopting Silverlight as their primary UI platform for delivering SaaS applications, otherwise they risk reinventing the wheel.

Tuesday, May 20, 2008

Preparing for the Business Cloud

An interesting interview with the head of Microsoft Office products, Chris Capossela provides a clear indication of a couple of things.

  1. Microsoft is investing heavily in Cloud Computing
  2. Cloud Computing is a serious player in not just the consumer space but in business also. ( And not just in Cloud CRM which leads by a country mile, but in general business applications also)

According to this interview,

Microsoft Corp (MSFT.O: Quote, Profile, Research)
sees tens of millions of corporate e-mail accounts moving to its data centers
over the next five years, shifting to a business model that may thin profit
margins but generate more revenue.

Microsoft is adding 10,000 servers a month to its Cloud focused data centers. Thats 10,000 servers a month which apparently is equivalent to the entire server count for Facebook. Pretty impressive numbers.

The company said Coca Cola Enterprises Inc (CCE.N: Quote, Profile, Research)
signed up 70,000 seats for Exchange Online, switching over from IBM's Lotus
Domino system

70,000 seats for any software business is a major win, its a true Enterprise sale, and an accurate indicator of whats happening with the business cloud.

The article does indicate however the "Fence sitting" of Microsoft. They see themselves differentiated from traditional service players such as Amazon and, because they still offer On Premise solutions.

I can see why On Premise for Enterprise, may still be preferred for some large scale multi country integration heavy type applications, but surely Microsoft must see its Email solutions heading up into the clouds? Email solutions don't differ from customer to customer which makes implementation and setup costs very low if not nil.

I know, I haven't used a locally hosted on premise email system in years, and don't see myself ever doing so again.

Its an exciting time as we see large scale vendors adapting to the presence of Cloud Computing in business.

Saturday, April 19, 2008

A Microsoft Cloud Database. Now its starting to make sense.

I apologize in advance for this fairly technical article, but I wanted to post about this to highlight that Microsoft can produce some really impressive stuff on the Development side of things, even for SaaS.

It was announced fairly recently that Microsoft was planning to release a cloud version of its SQL Server DBMS, called Microsoft Data Services, (Whitepaper found here.).

There are a number of major players in this arena, including Google, Amazon and even Intuit but that isn't the focus of this blog post.

Despite Microsoft's sometimes "perceived" less than committed approach to SaaS and Cloud Computing in general, they always seem to come up with some great additions to their development platforms.

Their latest .NET framework 3.5 Platform introduces a component called Linq or Language Integrated queries. This component which is based upon Functional Language constructs and Lambda expression building blocks essentially provides a SQL language capability embedded in the C# and VB.NET language sets used by many. It provides an abstraction layer hiding database specific language constructs from client apps.


var query = from p in Contacts where p.LastName=="Wing" select p;

Linq can be used against all types of collections, and in fact the building blocks of Linq, Lambda Expressions and extension methods also simplifies many scenarios where you have to iterate through collections. In instances where you would traditionally write multi line code with a FOREACH statement you can replace with a single line.
string[] contacts= {"Troy","Jane","Kim"};
IEnumerable contactList= contacts.Select(p=> p += " Wing").
So back to the reason why I am blogging about this and why its "starting to make sense", these technical features which can make developer's lives a lot easier, actually have a more significant and strategic use. They will form the development platform for ISV's to build apps against Microsofts Cloud Database. Because Linq is Database agnostic, it becomes the perfect tool to use in the SaaS world when building Multi-Tenant Client apps. It removes the need to write complex database specific code anywhere in your app.

It will simplify development, and provide the ability to bring to market a SaaS product requiring a database backend a lot more cheaply and quickly and perhaps open up the SaaS market to smaller organizations who normally couldn't afford to build such an app.

It would have taken several years for such significant features to be designed and implemented by Microsoft, so although I don't know whether this was intentional or not, Microsoft has been seriously thinking about architecture for Cloud Computing for quite a while.

Monday, April 7, 2008

SaaS Vendors: Practice what you preach.

I have been quiet in March, due to my company acquiring new customers.
Writing blog posts about specialist topics such as SaaS requires a fair bit of regular reading, which was reduced to a minimum for me.
So in lieu of that I am posting on an area which was quite a significant part of what I was doing in March, Release Management and Source Control.

Like many companies, I run a distributed team of developers, some in India and some in Chicago and myself here in the East Coast. Its a major challenge communication wise but very doable if you have the correct tools in place.

True to my previous blog posts, we use lots of virtual tools to enable that communication, but one area we have stuck to traditional methods is source control.
It was an old habit that remained with me throughout the years. We have the usual on site Source Server (running Subversion on Apache) which is only accessible from inside our office VPN with regular offsite backup storage. Now this works fine, but as with all server environments this requires regular server and security support. With customer deadlines, developers were up at all hours of the night, and our internal VPN was experiencing occasional outages. Our guys in Chicago were more than helpful in getting up in the middle of the night to resolve, but this got me thinking, why are we investing in an on premise source control environment while we are trying to persuade our customers to trust us with their valuable and confidential data? We of course use a market leader in enterprise hosting for our production application and database servers which is an environment totally independent and separated from our office network and VPN.

So right now I am looking at possible outsourcing scenarios.

Option 1: Configure your own source server but leverage the infrastructure of a Rackspace or an Opsource.

Option 2: Go fully Software as a Service with your source control.
One in particular I have been looking at is Dynamsoft. If you google hosted source control, they seem to dominate. They offer a variety of hosted options including a free version for up to 5 Mb of source code and packages for Enterprise and ISVs.

It may be hard to consider putting your source code into an external environment, old habits die hard. But the same rules apply to you as a SaaS client. Simply research the SaaS Source control vendors, understand how they protect your code, look at existing customers and be comfortable with backup processes and how you can maintain a copy of the code locally.

I think its worth looking at.

Monday, March 3, 2008

Who is using

A number of prominent blogs including Renee Boucher Ferguson, Sinclair Schuller and Bob Warfield this morning wrote about the outcome of an informal straw poll conducted during a panel discussion hosted by Phil Wainewright at the OpSource SaaS summit this week.

In a show of hands, Out of 250 ISV's attending the summit,only 2 were planning to use as their Dev Platform. (40 responded yes to building their own SaaS platform and 10 to a Software plus Services approach). Bob and Sinclair discuss their viewpoint on reasons why this was the case.

Some of these points included
1. is not a neutral platform.
2. Its more of an "Extension platform" not a revolutionary one.
3. Bob adds that its too expensive an option.

So what is the sweetspot for Bob rightly points out that it will appeal to Internal IT departments within Enterprise already using as they are not as price sensitive. I agree with this as my experience at Dreamforce when Apex was first announced a couple of years ago, IT Department employees sitting at my dinner table were excited at the prospects of building their own modules, while the ISV's sitting at the same table were lukewarm.

I believe will find its dominant niche in areas which are CRM related. So I actually think its sweetspot will be vertical offerings of CRM.
, a Pharma CRM system built on is a prime example of this.

The challenge of gaining a significant foothold into general SaaS platforms is a far greater one for There are many SaaS solutions and ideas which are not customer centric at all. Maybe this is where Platform as a Service is heading? Specific Value Add platforms for specific business functions.

Friday, February 29, 2008

SaaS Presentation Layers exist out of the browser

In a recent blog post, SaaS Blogger Phil Wainewright made some excellent points on what defines a SaaS client.

Some purists may disagree, but my definition of a SaaS client goes outside of the browser to include a client that runs on the desktop machine so long as it’s still controlled and managed from the Web.

Phil's definition, reinforces the views I have repeatedly expressed in this blog.
Webifying Desktop
Software+Services or SaaS, the key word is Service not Software.

Phil discusses the real world examples of this happening, including RightNow who have showcased their new On Demand Release which utilizes Microsoft .NET Framework capabilities.

This is still true Software as a Service, because all the benefits of the Multi-tenant single code base exist in these flavors of SaaS client.

There are viable alternatives to pure browser based solutions, which up the ante in UI presentation and brings parity between traditional Client/Server (On premise) UI and SaaS UI.

What's next then? as per my previous posts I predict sometime in the future, Desktop and Browser will merge again. When a user boots up her computer, or utilizes their smart phone, it will be one and the same. SaaS will ensure accessibility to data in the cloud from all devices and not just via browsers. Cloud services will enable advanced deployment capabilities for SaaS client apps which will access services and data provided by a myriad of SaaS vendors.

Friday, February 8, 2008

Software+Services or SaaS, the key word is Service not Software.

Having read with interest Ben's previous post on Microsoft's Software + Services strategy, I feel like adding my 2 cents worth from a slightly different angle.

The keyword here is Service, which leads to me to think that Microsoft Office and competing disruptive products are not the best examples of SaaS. A critical strength of SaaS and where it will significantly disrupt (and already has in CRM and Project Management) is in the outsourcing of tools with a significant server side component with complex business logic, tools such as CRM, ERP and Accounting, Project Management, Business Intelligence/Performance Management, Talent Management,Sales Support, all requiring server side processing power and scalability.

The advantages of SaaS (excluding cost of ownership and pricing arguments of subscription over perpetual licensing) include eliminating needing to fund server infrastructure and support resources for maintaining your own data center, and multi-tenancy which ensures you always have up to date features without complex upgrades.

Whether your SaaS vendor chooses to provide a client side User Interface which is browser based using AJAX, Silverlight, Adobe or via a Microsoft Clickonce style (A Software+Services option) deployment is secondary to ensuring they provide a service which effectively and economically solves business problems (the Service component). The client side user experience is a key factor for user adoption but all the options above can provide that. The general user probably doesn't even care which one is used.

Microsoft certainly has its problems in the Web/Internet space and they are still playing catchup with SaaS but I don't think delivering SaaS is going to be a long term problem for them.

Thursday, January 31, 2008

Use Office Live Workspace or Google Docs, or both?

I just signed up for Microsoft's Office Live Workspace, which enables you to store office docs online and share them with whom you see fit. Currently,I use Google Docs Beta for publishing, in fact I use a lot of App Gadgets on my google page, Blog Reader, wikipedia and Linkedin and Google Analytics for Adwords and my Blog. But despite the availablity of online competitors I still use Microsoft Office for documentation writing, which still is a lot more usable than the online products.
On using the Live Workspace, its quickly apparent the Google Document Manager is more mature, its easier to share the document in less steps and the UI feels more cleaner and less cluttered.
I do like the Desktop sharing function in Office Live WorkSpace, very handy for presentations along with the ability to create Workspaces for different projects and clients. A major benefit also is the inherent offline capability of Office. Google is looking to provide that functionality at some point, but its not there yet, either way Microsoft Office will still have more functionality and usability.

I will continue to use Google Docs for sharing, but as Office Live Workspace continues to evolve I will probably use that when appropriate also.

Thats the beauty of Utility Computing, you can pick and choose who and what you use, you can choose to switch or you can decide that both offer benefits and you will utilize both when appropriate.

Tuesday, January 29, 2008

My favorite Google App is now a Windows Desktop App

I am a very heavy user of Instant Messaging tools.
At any one time I may have Skype open for voice and chatting to 2 or 3 people in New Zealand, Windows Live Messenger chatting with our offshore team in India, the implementation team in Chicago and Live Video call with my nephew, I also have been using Google Chat embedded in Gmail.

I can now add another to this list. I installed Google Talk Beta for the web (on my igoogle dashboard which is pretty cool way to chat) and the Windows version onto the desktop.

I am a little disappointed with the web based version as it appears to be a little sluggish and obviously lacks the voice call features of the windows version, but I am most impressed with the desktop version. Because its beta, functionality is not quite up there when compared to its more mature competitors. But the user experience is very intuitive, it looks pretty without too much clutter, responds well and it has a cool VoiceMail feature!!

Google has done a good job outside of the browser with this app. Their simple,uncrowded approach inside of the browser translates well to the desktop, but now with the superior response and accessibility of a desktop application.

I still believe the desktop will continue to be a major player even in the dominant arena of SaaS and Utility Computing. Perhaps there's something to Software + Services.

Sunday, January 27, 2008

Complex Software Licensing drives companies to SaaS

I've blogged previously about how SaaS pricing should be as simple as possible and that SaaS is generally associated with a simple and easy to understand subscription based pricing model. There is good reason for this.

I've heard talk of including annual maintenance, upgrades and server hosting as invoice line items in customer billing. Which just adds unneeded confusion to something which is elegant in its simplicity.

Why should you keep it simple? Because you gain a primary competitive advantage over traditional software licensing.

A recent article in InformationWeek , titled "Software Licenses Are Too Costly And Complex, Survey Says",

provides evidence from a Forrester report, that customers are frustrated by traditional software vendor's licensing policies.

The article writes that

Forrester recently surveyed 25 customers of large software companies and 215 business and IT professionals. Eleven of the 25 big software customers complained that license agreements are too complex and maintenance fees are too high, according to the report by analysts Ray Wang and Elisse Gaynor

and finishes with

But Forrester is optimistic about the future. Growing interest in software as a service will force providers of traditionally licensed software to change their ways. The pay-as-you-go SaaS model "will give business owners a taste of streamlined, more easily consumed licensing," Forrester predicts, noting that SaaS also typically comes with a bundled license, maintenance, and upgrade package. Customers will "gain more interest in and grow more vocal for simplistic and holistic approaches to usage-based pricing agreements," the analysts predict.

As a SaaS vendor, it may be tempting to try to pass on costs of server hosting and R and D to the customer but ultimately that is unnecessary. In fact you dramatically increase the risk of driving customers away and increasing your "churn".

As more customers sign up and renew the following year,the SaaS Multi-Tenancy benefits that we are all familiar with, ease of upgrading software, efficient server utilization, reduced support requirements, reduced cost of ownership, all eventually drive marginal costs of new customer provisioning right down to an insignificant amount.

The Forrester Report is proof that customers want the simplified approach of SaaS pricing.

Wednesday, January 23, 2008

Microsoft, a Social Network giant

Computerworld reports today that Microsoft is to join the Web 2.0 data portability group whose members already include representatives from Google, Facebook and LinkedIn and Yahoo.

The interesting quotes from this article include

Microsoft is a stealth social networking giant, with more than 400 million users with accounts at Hotmail, Windows Live Messenger or both, according to an interview late last week with Adam Sohn, a director in Microsoft's online services business.


According to Nielsen Online, visit statistics from last August, 2 Windows Live Spaces and MSN Groups together make Microsoft the second-largest social networking provider, behind MySpace but ahead of Facebook and Classmates Online as well as Google and Yahoo's efforts.

We don't normally associate Microsoft with Web 2.0, but these statistics and Microsoft's B2B SaaS initiatives (Or using MS speak "Software + Services") indicate that Microsoft is still a force to be reckoned with and should not be underestimated in the Web 2.0 and SaaS arena.

Monday, January 14, 2008

SaaS meets Social Networks

Last last year,The Unreasonable Men wrote a short series of posts discussing the convergence of SaaS and Social Networks and whether they are actually becoming the same thing. An interesting article was published today in Infoworld which announced that SuccessFactors, a Talent Management SaaS company which recently IPO'ed

is using Facebook to allow a richer employee profile that goes beyond the structured data that is typically captured in a HCM (human capital management) service, according to Jim Holinchek, a senior analyst with Gartner.

I also believe Microsoft is planning to do a similar thing with CRM 4.0.

It will be interesting to see how things pan out here. I know myself and colleagues I have discussed this with like to keep a distinct barrier between personal and work networks. Sometimes they happen to overlap but that is by choice not by default.
I am not sure if employees will want their facebook information used in a business context. Even if there is an "opt out" option there could still be pressure to permit the link to occur from your employer.

Will this type of convergence be common in 2008 and will it be a success? We shall see.

Sunday, January 13, 2008

Technical Support for SaaS Applications?

Jeff Kaplan just posted on the changes required for the sales and support models for On Demand Applications. I previously posted on how Selling to SMBs requires a lower cost approach, which supports what Jeff writes on Sales Strategies in the on demand world.

What piqued in my interest further in Jeff's post was his valid points about supporting an On Demand application.

Jeff writes

Similarly, the support function also changes in the on-demand world. Rather than rely on technical support to react to problems implementing and maintaining software, customers expect their on-demand solutions to be easy to deploy and administer.

In a previous lifetime, I was involved in a non SaaS organization where there were 3 levels of technical support all directly visible to the customer.

1. End User phone help desk
2. 2nd Tier support for Customer Administrators and for the data
3. 3rd Tier support handling Software problems and deploying emergency patches to all customers.

Major investment in Phone, Call Distribution, Server Access, remote control software (Webex/Goto Meeting subscriptions), People for multiple support shifts, and intensive training add significantly to the cost of running a traditional software business.

Add to this problems of high staff turnover, miscommunications, local language requirements (especially if outsourcing help desk functions) and Technical Support is a significant burden for both the ISV and the customer.

This extremely high cost and human resource intensive approach to support while necessary for a Non-SaaS ISV is deprecated in the SaaS and Web 2.0 world.

With a SaaS Single instance approach to the application with availability over the internet, direct phone support for day to day users is essentially eliminated due to the following

  1. Hardware compatibility, software installation, database corruptions, Versioning problems are non issues in the SaaS world.
  2. A consistent User interface reduces training costs and on the phone training support.
  3. Because of the multi-tenant nature of SaaS, a user supported forum and Wiki is more likely to provide a solution to any problems a user may have.

You could also add a "Self Service web portal" which takes a user through a set of diagnostic steps for the most common problems a user may experience for example it could run diagnostics on your browser and check for security settings. If your business is such that you require person to person contact, a Chat function in your application is a more efficient mechanism,

This non-intrusive approach results in lower operating costs for the vendor which leads to maintainable low subscription costs for the customer. It also reduces the likelihood of customer dissatisfaction caused by communication issues with a Help desk and the inconvenience of having to call a help desk number numerous times and trying to talk to the person who was helping you previously.