In “The Lightning Framework for Smart Client”, a book I wrote back in 2006, I alluded to the idea that Smart Client applications would present new possibilities for SaaS applications in the future. Little did I know then how long it would take for this idea to become reality. In the computer age, five years is a very long time. While Steve Jobs was reshaping the smart phone and appliance landscape enabling incredible breakthroughs in consumer level computing, the landscape for business applications changed only incrementally.
During the last five years came a massive shift to cloud computing, but one could argue that very little technological change was needed to enable it. Much of the networking infrastructure, processing power, and software to enable cloud computing either existed in it’s current form or fell far short of anything approaching a decent geometrical progression. There have been isolated exceptions, but for the most part the technology of business computing has been stagnate compared to the consumer side of the house.
We could assume the curve will remain consistent along the business/consumer tracks and the evidence shows this is the most likely scenario. Even in the absence of Steve Jobs, the likelihood that technological improvements in consumer computing will outpace those in the business world is a safe bet. Right now there is at least a perception of a bigger piece of the money pie in the consumer segment and the brightest minds are more likely to be lured in that direction.
Change on the business front may come in a surprising form. The obstacle most difficult to vault in the SaaS/LOB arena is made up of the multitude of platforms an application must run on to be considered a true enterprise solution. IT departments have settled for the ease of deployment offered by web applications and it would be easy to assume that a new technology like HTML5 would solve the platform problem as well. But that assumption runs against the fact that requirements often conflict with the assertion that good enough will do. For applications requiring high data entry speeds, direct hardware interfaces, physical security, always connected data sources, and the absolute best possible graphics experience, kernel level deployments will remain necessary.
HTML5 offers some remediation for many of the issues confronting developers of SaaS/LOB applications, but in the end, selecting a single platform for this type of business development will only fly with the minority of businesses that have limited requirements or an unhealthy reliance on decision makers with a propensity for over simplification.
In the end, the vast majority of SaaS/LOB applications will be deployed as HTML5 applications, but not as the sole application platform. Most applications will be spread across diverse platforms to support a myriad of business requirements. For applications with limited functionality, a single platform may prove to be sufficient and for these platforms, the development environment will be chosen based on supporting that limited functionality in the most cost effective manner. A greater number of applications will require more architectural input and a development platform that enables the greatest reach for the application out-of-the -box.
There are two basic architectural choices for developing these applications. The first choice, and the least attractive, is to create a single prototype application and then port that application to the remaining platforms. In this scenario, the architect will often choose to develop the most complex form of the application (perhaps the desktop version with the greatest number of interdependency’s) and then develop the remaining applications by manually copying functionality to the remaining platforms. For this scenario, a highly skilled development team will be required for each language/platform combination. It may be difficult to develop for multiple platforms in tandem given the complexity of managing these teams. It may also be difficult to recruit highly qualified development talent for the sole purpose of copying an existing application.
In the second, and most desirable scenario, the architect will choose to develop a prototype application using a platform and development environment (a tool) that allows for the greatest flexibility and reuse of assets when automatically generating sister applications for additional platforms. In this scenario, the initial prototype application may act only as a template or type of simulator, with no intention of using the application in a production environment. The tool for developing this prototype application will be required to create a great deal of meta-data that can be used later to generate the remaining variants of the application. It will also need to consume data in an application agnostic manner.
The tool that enables our second scenario, if crafted carefully and improved substantially from version-to-version, could change the face of computing and reverse the trend of technological growth dominated by the consumer market. In this new world, the vast majority of business applications will be developed using the tool or one of many intelligent code generators developed to utilize the meta data it creates. The data consumed by most of these applications will originate from a centrally managed data repository with millions of independent sources, all exposed via RIA Services. Millions of applications will be available to the masses of business users and the organizations they work for, all driven by a single tool, Visual Studio LightSwitch.
*If you would like to join us and participate in this exciting journey, watch this blog for additional information about how our new venture, LotsaApps.com will enable a new level of incredible growth for Software as a Service for line-of-business applications.
