application development

Last year I researched the impact of cloud computing proliferation on business. I know it sounds like a dry topic but if you are a CIO or an application development manager, the results can have serious meaning. In our study (Esteban Kolsky was my partner) we discovered that cloud computing has deeply penetrated the enterprise and SMB ranks and 46.3% of respondents said they had 4 or more cloud applications in use. Some have dozens.

So that’s great for the cloud because it validates what Kolsky and I (and many others) have been saying for more than a decade. The cloud is just flat out a better way to deliver application functionality at a reasonable price to a growing universe of companies.

Of course, there was an underside side to the results as well. With so many cloud apps in use, many IT departments found that one of their major responsibilities had become developing and maintaining integrations between many separate clouds. Of course the integration technology available today is quite good making cloud integration straightforward but it’s not free of effort. When something changes in one cloud app IT staff are often compelled to understand how the change ripples through the rest of the company’s cloud infrastructure.

Apps built on the same platform have an advantage because a common platform provides standards that make communicating between them easier; nonetheless, developers still need to patrol the interfaces. Additionally, while the population of cloud apps on many platforms is large and growing (they’re referred to as ecosystems), it is still finite and their granularity or fitness for a particular business purpose is variable. But also, at the very smallest level, an off the shelf app will still need some editing, tweaking, or customization, if you can find an app that’s close to your need, that is. When all else fails, lines of business have resorted to spreadsheet apps, which often bring more trouble than they are worth.

One of the inescapable conclusions I draw from all this is that we need better ways to ride herd on all our cloud apps with far less effort. But by extension businesses also need more than individual cloud apps, more than integration services, and even more than high-level standards or advanced development tools. If you’re a business today and you are trying to keep up with user requests for new or revised cloud apps, you really need a standardized app platform with tools that you can standardize on and that works well with the rest of cloud-land.

Ideally, there should also be a universe or library of app specifications that you can download and trade so that every development project, no matter how small, doesn’t have to start from scratch. Notice the use of specifications because code should be generated, not written. We’ve seen this before with code libraries but I’m thinking that code won’t work if you’re trying to address the needs of line of business users, many of whom don’t write code. Those users need a simple facility that lets them describe in a non-procedural way the apps that support real world business processes. Having an accessible library of apps also means that there are potentially no app requirements that are too small for IT meaning that we can seriously consider eliminating spreadsheet apps.

Now, you might think that this has always been the case and that we’ve always been striving to have enough useful software to run our businesses, so what’s the big deal? There are two simple points. First, not having enough of the right software that’s easy to use and maintain has been a drag on business historically but all businesses grew together more or less so the drag was a relative burden and not absolute.

When there was no CRM we got along with a variety of paper files, faulty memory, and spreadsheets. But once CRM became available it was such a step forward that virtually every business simply had to have it. The second point is this: the so-called digital disruption has entered a new phase in which businesses will need all kinds of software functionality to advance. But there isn’t enough software on the shelf to satisfy the demand and old-fashion approaches to developing and maintaining it are already insufficient and that situation is only going to get worse.

To net this out, what Esteban and I saw in cloud computing last year is really just the beginning of a strain that will rupture the current software paradigm. What comes next has to be better, faster, and cheaper and no, you can’t pick just two out of three.