The burst of innovation in law firm practice management is very exciting. It seems as if a new time and billing service is launched every week. Existing cloud vendors announce mind-expanding new features every month. Desktop vendors are busy trying to Cloud-Enable their software or build hooks into the cloud. When Frank Heckman lamented once that annual new releases of software was too fast for a software company to handle, he was wrong. It is in fact too slow.
In the new cloud the expectation is quarterly releases, even monthly. How is this possible? This may seem too fast if annual is too often for a desktop installation, how can monthly be just right. The answer lies in some fundamental difference between cloud software and desktop software.
Not Installed – Hosted
First, cloud software is not installed; it is hosted. Much of the support issues for software come with the installation and update process. Desktop software has to work on multiple operating systems, each with their own versions and also with different security configurations and virus and firewall protections. When you come to think of it, it is a minor miracle that most desktop software works at all.
With the exception of OS-X compatibility, most desktop software works on any hardware and any flavor of Windows-OS. Moreover, the modern desktop software must maintain compatibility with different flavor of integrated software: MS Office, WordPerfect Office, Adobe Acrobat, QuickBooks, Timeslips, PC-Law, TABS III, as well as various document management software. We have come to expect this on the desktops software, but keeping up with all these products and the integrations can lead to testing cycles that take up to several months and inevitably miss some configurations.
By contrast, hosted web providers need only concern themselves with ensuring comparability with 4 flavors of browser: Internet Explorer, Firefox, Safari and Chrome. And if you conform to HTML5 standards, generally, one codebase will work on all platforms. Further, with web-services there is no “local install”. Deploying a new firm is often a matter of provisioning a new database on an existing server, and authorizing logins. If the system is “multi-tenant”, meaning everyone shares in a common database, it is a merely a matter of provisions logins and associating them with a new “org” key. For single-tenant system, there is an added level of complexity, but since the databases are working on the same hardware, stored procedures from the central software system can be used to update multiple databases at a time.
Database At the Heart
Second, most clouds systems are, at their heart, merely databases. They may function like “applications”, but much of the changes in functionality involve the addition of new tables, new fields, updated data entry forms and updated reporting. To software, data is data. Once you establish a consistent layout or design, such work is extensible. In a desktop software environment, you work with “forms”. These are the foundation of desktop software. Forms are objects with properties; and events can be tied to changes in those properties. Such design can be very rigid, making quick change difficult and risky.
By contrast, the browser is at its core a “form-rendering tool”. Your DOM or Document Object Model of a page of HTML itself separates the DATA from the DISPLAY. Data on a page has “tags”. Those tags denote table structures, grids and cells. A separate styling file (CSS for cascading style sheet) can be either referenced in the HTML page or the instructions embedded in the page. The reality is that with browser based software, much of the heavy lifting for form rendering is done by the browser and the CSS stylesheets.
If we move up to more modern CMS (Content Management Systems) like Joomla or WordPress, the stylesheet is created dynamically as needed based on instructions in PHP, a programming language. Other system use RUBY on Rails. These master languages handle everything. What is means is that seemingly MAJOR changes can be rolled out with a change in a few lines of PHP code. As a result, cloud providers have a wealth of development tools at their fingertips for rapid deployment of updates. In working with some cloud vendors we have seen major changes to software fixed literally in the middle of a “meet the developer” session where we are giving feedback on the program.
Practically Infrastructure Free
Third, clouds systems require much less infrastructure. You can create a “virtual” cloud-based company that has no “physical office”. Since all “code” is already in the Cloud, you can have software developers distributed across the world, simultaneously making improvements, identifying and resolving bugs. You can have marketing professionals in located in each major market collaborating through a cloud-based sales and marketing system. Moreover, using VOIP (voice over internet protocol), you can have a central switchboard.
So the reality you can have a company with no physical location, no office, and very limited overhead. This makes it easy for startups to create a company with just a few individuals and be able, with that small staff to provide high quality service. This shifts the premium to “design”. With a Cloud-based service, you can cut your customer support costs dramatically, as well as reduce product testing. With all these advantages, it is actually a wonder that Cloud-based isn’t even better than it is.
Pace of Change Will Catch Up With You
One final “cloud” on the horizon is a result of the pace of change. Because the expectation is of rapid change, often updates are rolled out piecemeal and incomplete. Using Agile software development methodology means getting software out early, and letting your users refine it with their feedback.
This approach brings the user into the development cycle. Given the right users, this can produce really good software. Given the wrong users, or more accurately the wrong user requests, it can lead to expensive software development in the wrong direction, and feature creep. In the end, it is likely the vision of the chief architect that is most important.